{
  "generatedAt": "2026-09-17T08:22:24.201Z",
  "status": "prototype",
  "id": "ballygunge",
  "name": "Ballygunge",
  "zone": "Urban Core · Ward 68",
  "body": "Kolkata Municipal Corporation, Ward 68",
  "centre": {
    "lat": 22.528,
    "lon": 88.3659
  },
  "footprintM": 1400,
  "bbox": [
    88.35909234609716,
    22.52166745069658,
    88.37270765390284,
    22.534332549303418
  ],
  "crs": "EPSG:4326",
  "analysisCrs": "EPSG:32645",
  "quantity": {
    "measured": "land surface temperature (LST) — the radiometric temperature of the ground and roof surfaces, as an infrared satellite sees it",
    "units": "K (error bands) / °C (displayed values)",
    "isNot": [
      "air temperature",
      "human thermal comfort",
      "UTCI or any comfort index",
      "indoor temperature"
    ],
    "note": "Surface temperature can diverge from air temperature by many degrees in daytime sun; at night the two track closely. Comfort additionally depends on humidity, wind and radiant exchange, none of which this model resolves. Do not read these values as what a person feels."
  },
  "confidence": {
    "night": {
      "tier": "quantitative",
      "bandK": 3.5,
      "n": 50,
      "modelRmseK": 2.93,
      "ceilingRmseK": 2.233
    },
    "peak": {
      "tier": "indicative",
      "bandK": 4.5,
      "n": 29,
      "modelRmseK": 4.42,
      "ceilingRmseK": 3.338
    },
    "spatial": {
      "n": 87,
      "rModel": 0.297,
      "rVegOnly": 0.313,
      "note": "Ward-level temperature is calibrated against ECOSTRESS. The pattern WITHIN a ward is not: block by block it scores r = 0.30, still below the r = 0.31 of a vegetation map given the same treatment, and coarsening the comparison does not close that gap at any scale. At neighbourhood scale (~300-500 m) it reaches r = 0.5. The colour range inside a ward is also about 1.2x wider than the satellite measures, so read contrasts as exaggerated. Ward figures are measured, neighbourhood contrast is indicative, block-by-block detail is illustrative."
    },
    "heights": {
      "verdict": "underpowered",
      "nBuildings": 28,
      "minBuildings": 30
    }
  },
  "provenance": {
    "footprints": {
      "source": "Overture Maps Foundation (ODbL) -- OSM + Google + Microsoft, GERS-deduplicated",
      "count": 3527,
      "byDataset": [
        {
          "dataset": "OpenStreetMap",
          "count": 2252,
          "traced": true
        },
        {
          "dataset": "Google Open Buildings",
          "count": 1065,
          "traced": false
        },
        {
          "dataset": "Microsoft ML Buildings",
          "count": 210,
          "traced": false
        }
      ]
    },
    "layers": [
      {
        "layer": "building footprints",
        "dataset": "OpenStreetMap",
        "sourceLicence": "ODbL-1.0",
        "holder": "OpenStreetMap contributors",
        "url": "https://www.openstreetmap.org/copyright",
        "governingLicence": "ODbL-1.0",
        "via": "Overture Maps buildings theme"
      },
      {
        "layer": "building footprints",
        "dataset": "Google Open Buildings",
        "sourceLicence": "CC-BY-4.0 OR ODbL-1.0",
        "holder": "Google Research",
        "url": "https://sites.research.google/gr/open-buildings/",
        "governingLicence": "ODbL-1.0",
        "via": "Overture Maps buildings theme"
      },
      {
        "layer": "building footprints",
        "dataset": "Microsoft ML Buildings",
        "sourceLicence": "CDLA-Permissive-2.0",
        "holder": "Microsoft",
        "url": "https://github.com/microsoft/GlobalMLBuildingFootprints",
        "governingLicence": "ODbL-1.0",
        "via": "Overture Maps buildings theme"
      },
      {
        "layer": "building heights",
        "dataset": "Google Open Buildings",
        "sourceLicence": "CC-BY-4.0 OR ODbL-1.0",
        "holder": "Google Research",
        "url": "https://sites.research.google/gr/open-buildings/",
        "governingLicence": "CC-BY-4.0",
        "elected": "source offers a choice (CC-BY-4.0 OR ODbL-1.0); we use it under CC-BY-4.0"
      },
      {
        "layer": "surface: vegetation + albedo",
        "dataset": "Sentinel-2 L2A",
        "sourceLicence": "Copernicus Sentinel data terms",
        "holder": "European Union / ESA",
        "url": "https://sentinels.copernicus.eu/documents/247904/690755/Sentinel_Data_Legal_Notice",
        "governingLicence": "Copernicus Sentinel data terms"
      },
      {
        "layer": "canopy / trees",
        "dataset": "Meta / WRI Canopy Height Map",
        "sourceLicence": "CC-BY-4.0",
        "holder": "Meta AI / World Resources Institute",
        "url": "https://registry.opendata.aws/dataforgood-fb-forests/",
        "governingLicence": "CC-BY-4.0"
      },
      {
        "layer": "meteorological forcing",
        "dataset": "NASA POWER",
        "sourceLicence": "NASA data policy (open, attribution recommended)",
        "holder": "NASA LaRC",
        "url": "https://power.larc.nasa.gov/",
        "governingLicence": "NASA data policy (open, attribution recommended)"
      },
      {
        "layer": "live ambient readout",
        "dataset": "Met Norway",
        "sourceLicence": "NLOD-2.0 / CC-BY-4.0",
        "holder": "Norwegian Meteorological Institute",
        "url": "https://api.met.no/doc/License",
        "governingLicence": "NLOD-2.0 / CC-BY-4.0"
      },
      {
        "layer": "thermal validation",
        "dataset": "ECOSTRESS L2T LSTE v002",
        "sourceLicence": "NASA data policy (open)",
        "holder": "NASA JPL / LP DAAC",
        "url": "https://lpdaac.usgs.gov/products/eco_l2t_lstev002/",
        "governingLicence": "NASA data policy (open)"
      },
      {
        "layer": "height validation",
        "dataset": "ICESat-2",
        "sourceLicence": "NASA data policy (open)",
        "holder": "NASA / NSIDC",
        "url": "https://nsidc.org/data/icesat-2",
        "governingLicence": "NASA data policy (open)"
      }
    ]
  }
}