{
  "slug": "dhaka",
  "name": "Dhaka",
  "country": "Bangladesh",
  "blurb": "Bangladesh's capital, built in the Ganges-Brahmaputra delta and among the most flood- and cyclone-exposed capital cities in the world.",
  "generated_at": "2026-08-22T15:00:59+00:00",
  "city": {
    "population": 28825771,
    "ucdb_population": 37307159,
    "area_km2": 6580.9,
    "ucdb_name": "Dhaka",
    "center": [
      23.8103,
      90.4125
    ],
    "bounds": [
      22.7878,
      90.2094,
      24.3514,
      91.4612
    ],
    "h3_resolution": 8,
    "cells": 8150
  },
  "score": {
    "overall": 65.2,
    "band": "High"
  },
  "indicators": [
    {
      "key": "flood",
      "label": "Flood",
      "description": "Expected annual inundation depth from river and coastal flooding combined, population-weighted across the city. From JRC CEMS-GloFAS river maps at 90 m (seven return periods) and WRI Aqueduct coastal maps (six). Both models are undefended: they simulate water without levees, sea walls or pumping.",
      "unit": "m/year",
      "icon": "droplets",
      "raw_value": 0.0873742946615621,
      "score": 84.37020319322427,
      "weight": 1.0,
      "detail": {
        "population_in_100y_floodplain_pct": 50.9,
        "river_100y_share_pct": 49.68,
        "river_10y_share_pct": 30.95,
        "coastal_100y_share_pct": 11.9,
        "population_in_100y_floodplain": 14665193,
        "population_in_severe_100y_flood_pct": 50.8,
        "severe_depth_threshold_m": 0.5,
        "max_100y_depth_m": 9.4,
        "river_expected_annual_depth_m": 0.086489,
        "coastal_expected_annual_depth_m": 0.009791,
        "dominant_source": "river",
        "coastal_included": true,
        "undefended": true,
        "river_resolution_m": 90,
        "river_return_periods": [
          10,
          20,
          50,
          75,
          100,
          200,
          500
        ],
        "coastal_return_periods": [
          10,
          25,
          50,
          100,
          250,
          500
        ]
      },
      "unavailable_reason": null
    },
    {
      "key": "earthquake",
      "label": "Earthquake",
      "description": "Distance-decayed, magnitude-weighted rate of observed earthquakes around the city, from the USGS ANSS catalogue.",
      "unit": "index/year",
      "icon": "waves",
      "raw_value": 0.537821268660945,
      "score": 43.26594932052919,
      "weight": 1.0,
      "detail": {
        "events": 955,
        "catalogue_years": 56,
        "catalogue_from": 1970,
        "min_magnitude": 4.5,
        "search_radius_km": 500.0,
        "largest_magnitude": 7.3,
        "events_m6_within_100km": 0,
        "events_within_100km": 10
      },
      "unavailable_reason": null
    },
    {
      "key": "cyclone",
      "label": "Cyclone",
      "description": "Annual rate of tropical cyclone passages near the city, weighted by the sustained wind speed at closest approach. From NOAA IBTrACS, 1980 onwards.",
      "unit": "events/year",
      "icon": "tornado",
      "raw_value": 0.5364801625938564,
      "score": 64.08198923774862,
      "weight": 1.0,
      "detail": {
        "storms": 21,
        "storms_per_year": 0.46,
        "typhoon_strength_storms": 4,
        "strongest_wind_kt": 115,
        "strongest_storm": "Unnamed",
        "record_years": 46,
        "record_from": 1980,
        "influence_radius_km": 200.0
      },
      "unavailable_reason": null
    },
    {
      "key": "wildfire",
      "label": "Wildfire",
      "description": "Annual satellite fire-detection density in the vegetated ring around the city, from NASA FIRMS VIIRS 375 m.",
      "unit": "detections/1000km2/year",
      "icon": "flame",
      "raw_value": 8.517435466529422,
      "score": 55.514568240695986,
      "weight": 1.0,
      "detail": {
        "detections_in_ring": 8012,
        "detections_per_year": 667.7,
        "record_years": 12,
        "record_from": 2013,
        "buffer_km": 20.0,
        "sensor": "VIIRS S-NPP 375 m",
        "max_cell_density": 47.02
      },
      "unavailable_reason": null
    },
    {
      "key": "heat",
      "label": "Extreme heat",
      "description": "Maximum temperature of the warmest month (BIO5, 1981-2010), averaged across the city. An absolute measure, comparable between climate zones. It does not account for humidity, so it understates the danger of humid tropical heat.",
      "unit": "°C",
      "icon": "thermometer-sun",
      "raw_value": 32.41974938911079,
      "score": 49.678997556443164,
      "weight": 1.0,
      "detail": {
        "warmest_month_max_c": 32.4,
        "hottest_cell_c": 32.8,
        "period": "1981-2010",
        "variable": "BIO5, maximum temperature of the warmest month",
        "humidity_included": false,
        "warm_days_now_pct": 7.0,
        "warm_days_1970s_pct": 8.7,
        "warm_days_change_pp": -1.7,
        "warm_days_history": [
          [
            "1970s",
            8.7
          ],
          [
            "1980s",
            12.2
          ],
          [
            "1990s",
            8.0
          ],
          [
            "2000s",
            6.6
          ],
          [
            "2010s",
            7.0
          ]
        ],
        "warm_days_projections": [
          [
            "SSP1-2.6, 2030s",
            9.7
          ],
          [
            "SSP5-8.5, 2030s",
            9.3
          ]
        ],
        "warm_days_note": "TX90p, the share of days above this city's own 1961-1990 90th percentile. A warming trend, not a heat level - shown for context and deliberately excluded from the score."
      },
      "unavailable_reason": null
    },
    {
      "key": "air_quality",
      "label": "Air quality",
      "description": "Population-weighted annual mean PM2.5 concentration. A chronic hazard rather than an episodic one - it harms through years of exposure, not in a single event - but by mortality it is the largest hazard on this site.",
      "unit": "µg/m³",
      "icon": "wind",
      "raw_value": 84.0,
      "score": 94.17994095520648,
      "weight": 1.0,
      "detail": {
        "pm25_ugm3": 84.0,
        "who_guideline_ugm3": 5.0,
        "times_who_guideline": 16.8,
        "premature_deaths_per_year": 31493,
        "history": [
          [
            "2000",
            55.0
          ],
          [
            "2005",
            63.0
          ],
          [
            "2010",
            68.0
          ],
          [
            "2015",
            76.0
          ],
          [
            "2020",
            84.0
          ]
        ],
        "chronic": true,
        "spatially_uniform": true
      },
      "unavailable_reason": null
    }
  ],
  "missing_indicators": [],
  "profile": [
    {
      "key": "solar",
      "label": "Solar potential",
      "value": 3.9,
      "unit": "kWh/kWp per day",
      "note": "Photovoltaic output for a standard panel. A resource, not a hazard.",
      "source": "World Bank Global Solar Atlas 2.0",
      "icon": "sun"
    },
    {
      "key": "mean_temperature",
      "label": "Mean temperature",
      "value": 26.0,
      "unit": "°C",
      "note": "Annual mean, 2010s. Shown for context; the heat score measures departure from local normal, not absolute warmth.",
      "source": "GHS-UCDB climate reanalysis",
      "icon": "thermometer"
    },
    {
      "key": "greenness",
      "label": "Greenness",
      "value": 0.59,
      "unit": "NDVI",
      "note": "Mean vegetation index across the built-up area. Higher values moderate urban heat.",
      "source": "Landsat via GHS-UCDB",
      "icon": "trees"
    },
    {
      "key": "hospitals",
      "label": "Hospitals",
      "value": 0.4,
      "unit": "per 100,000 people",
      "note": "Mapped health facilities per head. A rough proxy for capacity to respond, and dependent on how completely the country is mapped.",
      "source": "healthsites.io via GHS-UCDB",
      "icon": "hospital"
    },
    {
      "key": "elevation",
      "label": "Average elevation",
      "value": 7.0,
      "unit": "m",
      "note": "Mean ground height across the urban centre.",
      "source": "Copernicus GLO-90",
      "icon": "mountain"
    }
  ],
  "validation": {
    "reference": "GHS-UCDB R2024A published statistics",
    "passed": true,
    "failures": 0,
    "warnings": 1,
    "checks": [
      {
        "key": "urban_area",
        "label": "Urban centre area",
        "ours": 6580.9,
        "reference": 6611.0,
        "unit": "km²",
        "reference_attribute": "GC_UCA_KM2_2025",
        "reference_source": "GHS-UCDB",
        "warn_at": 0.02,
        "fail_at": 0.05,
        "note": "Same polygon measured twice. Disagreement means our projection or area arithmetic is wrong.",
        "informational": false,
        "comparable": true,
        "absolute_floor": null,
        "relative_difference": 0.005,
        "status": "ok"
      },
      {
        "key": "population",
        "label": "Population",
        "ours": 28825771,
        "reference": 37307159.73,
        "unit": "people",
        "reference_attribute": "GC_POP_TOT_2020",
        "reference_source": "GHS-POP via GHS-UCDB",
        "warn_at": 0.25,
        "fail_at": 0.6,
        "note": "Two different global population products (WorldPop against GHS-POP). They routinely differ by 10-20% for the same city.",
        "informational": false,
        "comparable": true,
        "absolute_floor": null,
        "relative_difference": 0.227,
        "status": "ok"
      },
      {
        "key": "river_flood_rp100",
        "label": "Population in the 1-in-100-year river flood plain",
        "ours": 49.68,
        "reference": 57.78,
        "unit": "%",
        "reference_attribute": "EX_100_SHP_2020",
        "reference_source": "Baugh et al. (2024) via GHS-UCDB",
        "warn_at": 0.25,
        "fail_at": 0.5,
        "note": "Same flood model, independently aggregated. This is the check that would have caught the 90 m/1 km resolution bug.",
        "informational": false,
        "comparable": true,
        "absolute_floor": 1.5,
        "relative_difference": 0.14,
        "status": "ok"
      },
      {
        "key": "river_flood_rp10",
        "label": "Population in the 1-in-10-year river flood plain",
        "ours": 30.95,
        "reference": 28.1,
        "unit": "%",
        "reference_attribute": "EX_010_SHP_2020",
        "reference_source": "Baugh et al. (2024) via GHS-UCDB",
        "warn_at": 0.25,
        "fail_at": 0.5,
        "note": "Same flood model, independently aggregated. This is the check that would have caught the 90 m/1 km resolution bug.",
        "informational": false,
        "comparable": true,
        "absolute_floor": 1.5,
        "relative_difference": 0.101,
        "status": "ok"
      },
      {
        "key": "coastal_flood",
        "label": "Population exposed to coastal flood",
        "ours": 11.9,
        "reference": 0.0,
        "unit": "%",
        "reference_attribute": "EX_CF2_SHP_2020",
        "reference_source": "Vousdoukas et al. (2018) via GHS-UCDB",
        "warn_at": 0.35,
        "fail_at": null,
        "note": "Investigated 2026-08-22: this gap is a model difference, not an aggregation bug. Aqueduct's historical coastal layer puts almost no water over Tokyo Bay (101 pixels above 1 cm in the whole city window), while UCDB's two coastal scenarios track the low-elevation coastal zone closely (CF2 8.9% against 8.2% of population below 5 m; CF1 21.0% against 17.2% below 10 m). Aqueduct appears to understate enclosed bays. Aqueduct is kept because it ships rasters and UCDB publishes only city totals, but a better coastal source is an open task.",
        "informational": true,
        "comparable": true,
        "absolute_floor": null,
        "relative_difference": Infinity,
        "status": "warn"
      },
      {
        "key": "cyclone_wind",
        "label": "Cyclone wind exposure",
        "ours": 4,
        "reference": 0.0,
        "unit": "storms within 200 km / % of population in category-1 wind",
        "reference_attribute": "EX_100_S1P_2020",
        "reference_source": "GHS-UCDB cyclone wind exposure",
        "warn_at": null,
        "fail_at": null,
        "note": "Not the same quantity, so no ratio is computed: we count storm passages within 200 km, UCDB models whether category-1 wind actually reaches the built-up area. Tokyo reads 24 near-passages against 0% population in category-1 wind, which is consistent - typhoons pass close often, and hurricane-force wind rarely lands on the city. Shown side by side so a qualitative contradiction would be visible.",
        "informational": true,
        "comparable": false,
        "absolute_floor": null,
        "relative_difference": null,
        "status": "ok"
      }
    ]
  }
}