India state-level NTL with Bhuvan

Live data were not downloaded when this vignette was built, so its examples were not run. Run this vignette locally to see the output.

ISRO’s Bhuvan NTL portal provides pre-aggregated mean radiance for all Indian states from 2012 to 2024, and WMS raster tiles for any custom region, with no authentication required.

All states, all years

library(lightson)

df <- bhuvan_stats()
dim(df)
head(df)

Single state time series

bihar <- bhuvan_stats(state = "BIHAR")
bihar
library(ggplot2)
plot_ntl_trend(bihar,
  region = "Bihar",
  caption = "Source: ISRO Bhuvan NTL portal"
)

Radiance nearly 10x from 2012 to 2024.

Compare states

states <- c("Bihar", "Maharashtra", "Tamil Nadu", "Uttar Pradesh", "Kerala")
plot_ntl_trend(
  df[df$state %in% states, ],
  region   = states,
  subtitle = "Bhuvan state mean radiance (nW/cm^2/sr)",
  caption  = "Source: ISRO Bhuvan NTL portal"
)

Nighttime India from space, 2012 to 2024

states_sf <- get_india_admin("state")

years_sel <- c(2012, 2015, 2018, 2021, 2024)
rasters <- tryCatch(
  bhuvan_raster("IND", years = years_sel, bbox_pad = c(0, 0, 0, 3.5)),
  error = function(e) list()
)
plot_ntl_panel(
  rasters,
  polygons = states_sf,
  title    = "India at night, 2012 to 2024",
  subtitle = "Bhuvan NTL radiance classes. Boundaries: LGD/SoI.",
  caption  = "Source: ISRO Bhuvan NTL portal",
  ncol     = 3L
)

All panels are drawn at the same radiance scale (reference zero). The sharpest gains are in Bihar, UP, and Odisha after 2015, broadly tracking the Saubhagya electrification scheme (2017-2019).

Filter by year range

post_2015 <- bhuvan_stats(years = 2015:2024)
nrow(post_2015)