{
 "updated": "2026-11-04",
 "from": "2023-11",
 "to": "2026-10",
 "seconds": 187,
 "selection": "Tracked projects with coordinates whose public stage is completed, or whose promised handover year (field done in /data/bali-cases.json) is before 2026.",
 "source": {
  "name": "NASA Black Marble VNP46A2 (VIIRS/NPP Gap-Filled Lunar BRDF-Adjusted Nighttime Lights, daily), via NASA GIBS WMS layer VIIRS_SNPP_GapFilled_BRDF_Corrected_DayNightBand_Radiance",
  "url": "https://ladsweb.modaps.eosdis.nasa.gov/missions-and-measurements/products/VNP46A2/",
  "license": "NASA data, no restrictions on use (NASA Earth Science Data and Information Policy). Please cite Roman et al. 2018, Remote Sensing of Environment.",
  "query": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?SERVICE=WMS&REQUEST=GetMap&VERSION=1.3.0&LAYERS=VIIRS_SNPP_GapFilled_BRDF_Corrected_DayNightBand_Radiance&CRS=EPSG:4326&BBOX=<25 x 25 pixel window>&WIDTH=25&HEIGHT=25&FORMAT=image/png&TIME=<day>",
  "colormap": "https://gibs.earthdata.nasa.gov/colormaps/v1.3/VIIRS_DayNightBand_At_Sensor_Radiance.xml"
 },
 "method": "Days 1,8,15,22 of each month for 36 months. Window of 25 x 25 pixels of 15 arc-seconds (about 460 m) on the pin, aligned to the native grid. Pin: mean of the 3 x 3 pixels around the pin. Ring: median of the pixels 4 to 12 pixels away (about 1.9 to 5.5 km). Month: median of its days. Radiance in nW/(cm2 sr) as the midpoint of the GIBS colour bin (0.1 wide at the low end, wider above 2, saturating at 38.2). change_pct: median of the last 12 months against the 12 before, rounded to 5%, only when the earlier level is at least 0.5. pin_vs_ring: last 12 months, only when the ring is at least 0.3. trend_per_year: Theil-Sen slope of the monthly series. Readings: dark if the pin is under 0.5; darker than its surroundings if pin_vs_ring is under 0.5; brighter or dimmer if change_pct is +20% or more, or -20% or less.",
 "limits": "Light is a proxy, not proof of occupancy: a finished but empty building can keep its common areas and street lights on, a lived-in villa among trees can look dark, and a construction site with floodlights can look busy. One pixel is about 460 m across, wider than most projects, so neighbours count too. Values are colour bins, not the raw radiance. Gap-filled days repeat the last clear night when it is cloudy. Coordinates are those found in public sources, about 100 m.",
 "projects": {
  "RMY-003": {
   "group": "completed",
   "months": 36,
   "months_with_data": 36,
   "days_read": 139,
   "requests_failed": 0,
   "pin_last12": 13.1,
   "pin_prev12": 11.8,
   "ring_last12": 1.9,
   "change_pct": 10,
   "pin_vs_ring": 6.8,
   "trend_per_year": 1.7,
   "saturated_months": 0,
   "quarters": [
    8.8,
    10.6,
    9.5,
    8.7,
    10.3,
    11.1,
    14.8,
    12.0,
    11.5,
    12.8,
    13.2,
    13.3
   ],
   "reading": "lit, about as bright as a year earlier"
  },
  "MNE-003": {
   "group": "completed",
   "months": 36,
   "months_with_data": 36,
   "days_read": 140,
   "requests_failed": 0,
   "pin_last12": 30.5,
   "pin_prev12": 29.6,
   "ring_last12": 3.1,
   "change_pct": 5,
   "pin_vs_ring": 9.7,
   "trend_per_year": 0.6,
   "saturated_months": 0,
   "quarters": [
    29.3,
    31.6,
    26.7,
    27.9,
    29.8,
    30.4,
    29.4,
    29.7,
    31.3,
    32.3,
    30.0,
    30.4
   ],
   "reading": "lit, about as bright as a year earlier"
  },
  "HRV-001": {
   "group": "completed",
   "months": 36,
   "months_with_data": 36,
   "days_read": 140,
   "requests_failed": 0,
   "pin_last12": 11.4,
   "pin_prev12": 10.2,
   "ring_last12": 0.7,
   "change_pct": 10,
   "pin_vs_ring": 16.3,
   "trend_per_year": 1.2,
   "saturated_months": 0,
   "quarters": [
    9.4,
    7.6,
    8.8,
    9.5,
    9.3,
    10.4,
    10.1,
    10.6,
    9.8,
    11.1,
    12.0,
    11.7
   ],
   "reading": "lit, about as bright as a year earlier"
  },
  "URY-002": {
   "group": "handover year passed",
   "months": 36,
   "months_with_data": 36,
   "days_read": 139,
   "requests_failed": 0,
   "pin_last12": 9.5,
   "pin_prev12": 9.1,
   "ring_last12": 17.2,
   "change_pct": 5,
   "pin_vs_ring": 0.6,
   "trend_per_year": -0.1,
   "saturated_months": 0,
   "quarters": [
    11.2,
    10.0,
    8.0,
    8.7,
    10.6,
    8.4,
    8.6,
    8.7,
    7.7,
    11.2,
    9.5,
    8.3
   ],
   "reading": "lit, about as bright as a year earlier"
  },
  "BZE-003": {
   "group": "handover year passed",
   "months": 36,
   "months_with_data": 36,
   "days_read": 139,
   "requests_failed": 0,
   "pin_last12": 13.3,
   "pin_prev12": 14.9,
   "ring_last12": 0.3,
   "change_pct": -10,
   "pin_vs_ring": null,
   "trend_per_year": 0.1,
   "saturated_months": 0,
   "quarters": [
    13.7,
    12.7,
    10.3,
    14.7,
    15.3,
    15.0,
    14.1,
    14.5,
    16.3,
    13.3,
    13.2,
    13.0
   ],
   "reading": "lit, about as bright as a year earlier"
  }
 }
}