"""Major world cities dataset for population exposure analysis.
~120 cities with metro population > 2M. Approximate UN 2024 estimates.
Used for exposure estimation near conflict/disaster zones, not precise demographics.
"""
from __future__ import annotations
MAJOR_CITIES: list[dict] = [
# East Asia
{"name": "Tokyo", "country": "JPN", "lat": 35.68, "lon": 139.69, "pop": 37400000},
{"name": "Shanghai", "country": "CHN", "lat": 31.23, "lon": 121.47, "pop": 29200000},
{"name": "Beijing", "country": "CHN", "lat": 39.91, "lon": 116.40, "pop": 21500000},
{"name": "Chongqing", "country": "CHN", "lat": 29.56, "lon": 106.55, "pop": 17600000},
{"name": "Guangzhou", "country": "CHN", "lat": 23.13, "lon": 113.26, "pop": 14000000},
{"name": "Tianjin", "country": "CHN", "lat": 39.14, "lon": 117.18, "pop": 13900000},
{"name": "Shenzhen", "country": "CHN", "lat": 22.54, "lon": 114.06, "pop": 13400000},
{"name": "Wuhan", "country": "CHN", "lat": 30.59, "lon": 114.31, "pop": 11100000},
{"name": "Chengdu", "country": "CHN", "lat": 30.57, "lon": 104.07, "pop": 10900000},
{"name": "Nanjing", "country": "CHN", "lat": 32.06, "lon": 118.80, "pop": 9400000},
{"name": "Hangzhou", "country": "CHN", "lat": 30.27, "lon": 120.15, "pop": 8300000},
{"name": "Xi'an", "country": "CHN", "lat": 34.26, "lon": 108.94, "pop": 7700000},
{"name": "Shenyang", "country": "CHN", "lat": 41.80, "lon": 123.43, "pop": 7200000},
{"name": "Hong Kong", "country": "CHN", "lat": 22.32, "lon": 114.17, "pop": 7500000},
{"name": "Osaka", "country": "JPN", "lat": 34.69, "lon": 135.50, "pop": 19100000},
{"name": "Seoul", "country": "KOR", "lat": 37.57, "lon": 126.98, "pop": 9800000},
{"name": "Busan", "country": "KOR", "lat": 35.18, "lon": 129.08, "pop": 3400000},
{"name": "Taipei", "country": "TWN", "lat": 25.03, "lon": 121.57, "pop": 7000000},
{"name": "Pyongyang", "country": "PRK", "lat": 39.02, "lon": 125.75, "pop": 3200000},
# South Asia
{"name": "Delhi", "country": "IND", "lat": 28.64, "lon": 77.22, "pop": 32900000},
{"name": "Mumbai", "country": "IND", "lat": 19.08, "lon": 72.88, "pop": 21700000},
{"name": "Kolkata", "country": "IND", "lat": 22.57, "lon": 88.36, "pop": 15100000},
{"name": "Bangalore", "country": "IND", "lat": 12.97, "lon": 77.59, "pop": 13200000},
{"name": "Chennai", "country": "IND", "lat": 13.08, "lon": 80.27, "pop": 11500000},
{"name": "Hyderabad", "country": "IND", "lat": 17.38, "lon": 78.49, "pop": 10500000},
{"name": "Ahmedabad", "country": "IND", "lat": 23.02, "lon": 72.57, "pop": 8600000},
{"name": "Pune", "country": "IND", "lat": 18.52, "lon": 73.86, "pop": 7800000},
{"name": "Dhaka", "country": "BGD", "lat": 23.81, "lon": 90.41, "pop": 23900000},
{"name": "Karachi", "country": "PAK", "lat": 24.86, "lon": 67.01, "pop": 17100000},
{"name": "Lahore", "country": "PAK", "lat": 31.55, "lon": 74.35, "pop": 13500000},
{"name": "Islamabad", "country": "PAK", "lat": 33.69, "lon": 73.04, "pop": 3600000},
{"name": "Colombo", "country": "LKA", "lat": 6.93, "lon": 79.85, "pop": 2800000},
{"name": "Kabul", "country": "AFG", "lat": 34.53, "lon": 69.17, "pop": 4600000},
# Southeast Asia
{"name": "Manila", "country": "PHL", "lat": 14.60, "lon": 120.98, "pop": 14400000},
{"name": "Jakarta", "country": "IDN", "lat": -6.21, "lon": 106.85, "pop": 11200000},
{"name": "Bangkok", "country": "THA", "lat": 13.76, "lon": 100.50, "pop": 11000000},
{"name": "Ho Chi Minh City", "country": "VNM", "lat": 10.82, "lon": 106.63, "pop": 9300000},
{"name": "Hanoi", "country": "VNM", "lat": 21.03, "lon": 105.85, "pop": 5100000},
{"name": "Yangon", "country": "MMR", "lat": 16.87, "lon": 96.20, "pop": 5800000},
{"name": "Singapore", "country": "SGP", "lat": 1.35, "lon": 103.82, "pop": 6000000},
{"name": "Kuala Lumpur", "country": "MYS", "lat": 3.14, "lon": 101.69, "pop": 8400000},
# Middle East
{"name": "Cairo", "country": "EGY", "lat": 30.04, "lon": 31.24, "pop": 22600000},
{"name": "Istanbul", "country": "TUR", "lat": 41.01, "lon": 28.98, "pop": 16000000},
{"name": "Tehran", "country": "IRN", "lat": 35.69, "lon": 51.39, "pop": 9400000},
{"name": "Baghdad", "country": "IRQ", "lat": 33.31, "lon": 44.37, "pop": 7500000},
{"name": "Riyadh", "country": "SAU", "lat": 24.69, "lon": 46.72, "pop": 7700000},
{"name": "Jeddah", "country": "SAU", "lat": 21.49, "lon": 39.19, "pop": 4700000},
{"name": "Ankara", "country": "TUR", "lat": 39.93, "lon": 32.85, "pop": 5700000},
{"name": "Tel Aviv", "country": "ISR", "lat": 32.09, "lon": 34.78, "pop": 4300000},
{"name": "Amman", "country": "JOR", "lat": 31.95, "lon": 35.93, "pop": 4200000},
{"name": "Beirut", "country": "LBN", "lat": 33.89, "lon": 35.50, "pop": 2400000},
{"name": "Damascus", "country": "SYR", "lat": 33.51, "lon": 36.29, "pop": 2600000},
{"name": "Aleppo", "country": "SYR", "lat": 36.20, "lon": 37.16, "pop": 2100000},
{"name": "Sanaa", "country": "YEM", "lat": 15.37, "lon": 44.19, "pop": 3200000},
{"name": "Dubai", "country": "ARE", "lat": 25.20, "lon": 55.27, "pop": 3600000},
{"name": "Doha", "country": "QAT", "lat": 25.29, "lon": 51.53, "pop": 2400000},
{"name": "Kuwait City", "country": "KWT", "lat": 29.38, "lon": 47.99, "pop": 3100000},
# Africa
{"name": "Lagos", "country": "NGA", "lat": 6.52, "lon": 3.38, "pop": 15900000},
{"name": "Kinshasa", "country": "COD", "lat": -4.32, "lon": 15.31, "pop": 17000000},
{"name": "Luanda", "country": "AGO", "lat": -8.84, "lon": 13.23, "pop": 9000000},
{"name": "Dar es Salaam", "country": "TZA", "lat": -6.79, "lon": 39.28, "pop": 7400000},
{"name": "Nairobi", "country": "KEN", "lat": -1.29, "lon": 36.82, "pop": 5100000},
{"name": "Addis Ababa", "country": "ETH", "lat": 9.02, "lon": 38.75, "pop": 5500000},
{"name": "Abidjan", "country": "CIV", "lat": 5.36, "lon": -4.01, "pop": 5600000},
{"name": "Khartoum", "country": "SDN", "lat": 15.59, "lon": 32.53, "pop": 6200000},
{"name": "Johannesburg", "country": "ZAF", "lat": -26.20, "lon": 28.05, "pop": 6100000},
{"name": "Cape Town", "country": "ZAF", "lat": -33.93, "lon": 18.42, "pop": 4800000},
{"name": "Accra", "country": "GHA", "lat": 5.56, "lon": -0.19, "pop": 4500000},
{"name": "Casablanca", "country": "MAR", "lat": 33.57, "lon": -7.59, "pop": 3800000},
{"name": "Algiers", "country": "DZA", "lat": 36.75, "lon": 3.04, "pop": 3900000},
{"name": "Mogadishu", "country": "SOM", "lat": 2.05, "lon": 45.32, "pop": 2600000},
{"name": "Kampala", "country": "UGA", "lat": 0.31, "lon": 32.58, "pop": 3700000},
{"name": "Dakar", "country": "SEN", "lat": 14.69, "lon": -17.44, "pop": 3900000},
{"name": "Bamako", "country": "MLI", "lat": 12.64, "lon": -8.00, "pop": 2800000},
{"name": "Ouagadougou", "country": "BFA", "lat": 12.37, "lon": -1.52, "pop": 3000000},
# Europe
{"name": "Moscow", "country": "RUS", "lat": 55.76, "lon": 37.62, "pop": 12700000},
{"name": "London", "country": "GBR", "lat": 51.51, "lon": -0.13, "pop": 9500000},
{"name": "Paris", "country": "FRA", "lat": 48.86, "lon": 2.35, "pop": 11200000},
{"name": "Berlin", "country": "DEU", "lat": 52.52, "lon": 13.41, "pop": 3700000},
{"name": "Madrid", "country": "ESP", "lat": 40.42, "lon": -3.70, "pop": 6800000},
{"name": "Rome", "country": "ITA", "lat": 41.90, "lon": 12.50, "pop": 4300000},
{"name": "Kyiv", "country": "UKR", "lat": 50.45, "lon": 30.52, "pop": 3000000},
{"name": "Kharkiv", "country": "UKR", "lat": 49.99, "lon": 36.23, "pop": 1400000},
{"name": "Warsaw", "country": "POL", "lat": 52.23, "lon": 21.01, "pop": 3100000},
{"name": "Bucharest", "country": "ROU", "lat": 44.43, "lon": 26.10, "pop": 2200000},
{"name": "St. Petersburg", "country": "RUS", "lat": 59.93, "lon": 30.32, "pop": 5600000},
# Americas
{"name": "Mexico City", "country": "MEX", "lat": 19.43, "lon": -99.13, "pop": 22300000},
{"name": "São Paulo", "country": "BRA", "lat": -23.55, "lon": -46.63, "pop": 22200000},
{"name": "Buenos Aires", "country": "ARG", "lat": -34.60, "lon": -58.38, "pop": 15500000},
{"name": "Rio de Janeiro", "country": "BRA", "lat": -22.91, "lon": -43.17, "pop": 13600000},
{"name": "Bogotá", "country": "COL", "lat": 4.71, "lon": -74.07, "pop": 11400000},
{"name": "Lima", "country": "PER", "lat": -12.05, "lon": -77.04, "pop": 11200000},
{"name": "Santiago", "country": "CHL", "lat": -33.45, "lon": -70.67, "pop": 7000000},
{"name": "New York", "country": "USA", "lat": 40.71, "lon": -74.01, "pop": 18800000},
{"name": "Los Angeles", "country": "USA", "lat": 34.05, "lon": -118.24, "pop": 12500000},
{"name": "Chicago", "country": "USA", "lat": 41.88, "lon": -87.63, "pop": 8600000},
{"name": "Houston", "country": "USA", "lat": 29.76, "lon": -95.37, "pop": 7100000},
{"name": "Washington DC", "country": "USA", "lat": 38.91, "lon": -77.04, "pop": 6300000},
{"name": "Toronto", "country": "CAN", "lat": 43.65, "lon": -79.38, "pop": 6700000},
{"name": "Caracas", "country": "VEN", "lat": 10.49, "lon": -66.88, "pop": 3000000},
{"name": "Havana", "country": "CUB", "lat": 23.11, "lon": -82.37, "pop": 2100000},
{"name": "Quito", "country": "ECU", "lat": -0.18, "lon": -78.47, "pop": 2800000},
{"name": "Guadalajara", "country": "MEX", "lat": 20.67, "lon": -103.35, "pop": 5300000},
# Oceania
{"name": "Sydney", "country": "AUS", "lat": -33.87, "lon": 151.21, "pop": 5400000},
{"name": "Melbourne", "country": "AUS", "lat": -37.81, "lon": 144.96, "pop": 5200000},
]