338 lines
10 KiB
Python
338 lines
10 KiB
Python
# PolyWeather City Registry
|
|
# A unified "Source of Truth" for all tracked cities, coordinates, ICAO codes, and risk profiles.
|
|
|
|
CITY_REGISTRY = {
|
|
"ankara": {
|
|
"name": "Ankara",
|
|
"lat": 40.1281,
|
|
"lon": 32.9951,
|
|
"icao": "LTAC",
|
|
"tz_offset": 10800,
|
|
"use_fahrenheit": False,
|
|
"is_major": False,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "Esenboğa 机场",
|
|
"distance_km": 24.5,
|
|
"warning": "内陆高原城市,昼夜温差大(可达15°C+); 激进取整效应明显。",
|
|
},
|
|
"london": {
|
|
"name": "London",
|
|
"lat": 51.5048,
|
|
"lon": 0.0522,
|
|
"icao": "EGLC",
|
|
"tz_offset": 0,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "London City 机场",
|
|
"distance_km": 12.7,
|
|
"warning": "泰晤士河局部微气候影响。",
|
|
},
|
|
"paris": {
|
|
"name": "Paris",
|
|
"lat": 49.0097,
|
|
"lon": 2.5480,
|
|
"icao": "LFPG",
|
|
"tz_offset": 3600,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "Charles de Gaulle 机场",
|
|
"distance_km": 25.2,
|
|
"warning": "城市热岛效应:市区比机场偏暖1-2°C。",
|
|
},
|
|
"seoul": {
|
|
"name": "Seoul",
|
|
"lat": 37.4602,
|
|
"lon": 126.4407,
|
|
"icao": "RKSI",
|
|
"tz_offset": 32400,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "high",
|
|
"risk_emoji": "🔴",
|
|
"airport_name": "仁川国际机场",
|
|
"distance_km": 48.8,
|
|
"warning": "距离太远,海洋性vs大陆性气候差异大。",
|
|
},
|
|
"hong kong": {
|
|
"name": "Hong Kong",
|
|
"lat": 22.3080,
|
|
"lon": 113.9185,
|
|
"icao": "VHHH",
|
|
"tz_offset": 28800,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "Hong Kong 国际机场",
|
|
"distance_km": 31.0,
|
|
"warning": "海风与地形共同作用,午后对流触发后温度回落可能偏快。",
|
|
},
|
|
"shanghai": {
|
|
"name": "Shanghai",
|
|
"lat": 31.1434,
|
|
"lon": 121.8052,
|
|
"icao": "ZSPD",
|
|
"tz_offset": 28800,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "浦东国际机场",
|
|
"distance_km": 33.0,
|
|
"warning": "沿海平流与城市热岛叠加,午后最高温落点易出现1-2°C偏差。",
|
|
},
|
|
"singapore": {
|
|
"name": "Singapore",
|
|
"lat": 1.3644,
|
|
"lon": 103.9915,
|
|
"icao": "WSSS",
|
|
"tz_offset": 28800,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "樟宜机场",
|
|
"distance_km": 17.5,
|
|
"warning": "全年温度振幅较小,主要受午后阵雨时段影响。",
|
|
},
|
|
"tokyo": {
|
|
"name": "Tokyo",
|
|
"lat": 35.5523,
|
|
"lon": 139.7798,
|
|
"icao": "RJTT",
|
|
"tz_offset": 32400,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "羽田机场",
|
|
"distance_km": 15.0,
|
|
"warning": "湾风与热岛效应并存,日最高温时点有时会后移。",
|
|
},
|
|
"tel aviv": {
|
|
"name": "Tel Aviv",
|
|
"lat": 32.0114,
|
|
"lon": 34.8867,
|
|
"icao": "LLBG",
|
|
"tz_offset": 7200,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "Ben Gurion 机场",
|
|
"distance_km": 14.8,
|
|
"warning": "海陆风转换明显,午后海风可压制升温,最高温时点可能后移。",
|
|
},
|
|
"toronto": {
|
|
"name": "Toronto",
|
|
"lat": 43.6777,
|
|
"lon": -79.6248,
|
|
"icao": "CYYZ",
|
|
"tz_offset": -18000,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "Pearson 国际机场",
|
|
"distance_km": 19.6,
|
|
"warning": "冬季湖效应偶尔导致局部强降温。",
|
|
},
|
|
"buenos aires": {
|
|
"name": "Buenos Aires",
|
|
"lat": -34.8222,
|
|
"lon": -58.5358,
|
|
"icao": "SAEZ",
|
|
"tz_offset": -10800,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "Ezeiza 国际机场",
|
|
"distance_km": 28.1,
|
|
"warning": "夏天城区可比郊区高2-3°C。",
|
|
},
|
|
"wellington": {
|
|
"name": "Wellington",
|
|
"lat": -41.3272,
|
|
"lon": 174.8053,
|
|
"icao": "NZWN",
|
|
"tz_offset": 46800,
|
|
"use_fahrenheit": False,
|
|
"is_major": False,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "惠灵顿国际机场",
|
|
"distance_km": 5.5,
|
|
"warning": "风大影响体感,但温度测量偏差小。",
|
|
},
|
|
"new york": {
|
|
"name": "New York",
|
|
"lat": 40.7769,
|
|
"lon": -73.8740,
|
|
"icao": "KLGA",
|
|
"tz_offset": -18000,
|
|
"use_fahrenheit": True,
|
|
"is_major": True,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "LaGuardia 机场",
|
|
"distance_km": 14.5,
|
|
"warning": "东河水汽可能在春季产生温差。",
|
|
},
|
|
"chicago": {
|
|
"name": "Chicago",
|
|
"lat": 41.9742,
|
|
"lon": -87.9073,
|
|
"icao": "KORD",
|
|
"tz_offset": -21600,
|
|
"use_fahrenheit": True,
|
|
"is_major": False,
|
|
"risk_level": "high",
|
|
"risk_emoji": "🔴",
|
|
"airport_name": "O'Hare 国际机场",
|
|
"distance_km": 25.3,
|
|
"warning": "密歇根湖效应:湖边vs内陆可差10°F+。",
|
|
},
|
|
"dallas": {
|
|
"name": "Dallas",
|
|
"lat": 32.8471,
|
|
"lon": -96.8518,
|
|
"icao": "KDAL",
|
|
"tz_offset": -21600,
|
|
"use_fahrenheit": True,
|
|
"is_major": False,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "Dallas Love Field 机场",
|
|
"distance_km": 11.2,
|
|
"warning": "城市热岛效应在夏季午后会使温度略高于郊区。",
|
|
},
|
|
"miami": {
|
|
"name": "Miami",
|
|
"lat": 25.7959,
|
|
"lon": -80.2870,
|
|
"icao": "KMIA",
|
|
"tz_offset": -18000,
|
|
"use_fahrenheit": True,
|
|
"is_major": False,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "Miami 国际机场",
|
|
"distance_km": 10.3,
|
|
"warning": "温差较小,数据稳定。",
|
|
},
|
|
"atlanta": {
|
|
"name": "Atlanta",
|
|
"lat": 33.6407,
|
|
"lon": -84.4277,
|
|
"icao": "KATL",
|
|
"tz_offset": -18000,
|
|
"use_fahrenheit": True,
|
|
"is_major": False,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "Hartsfield-Jackson 机场",
|
|
"distance_km": 12.6,
|
|
"warning": "数据较准。",
|
|
},
|
|
"seattle": {
|
|
"name": "Seattle",
|
|
"lat": 47.4502,
|
|
"lon": -122.3088,
|
|
"icao": "KSEA",
|
|
"tz_offset": -28800,
|
|
"use_fahrenheit": True,
|
|
"is_major": False,
|
|
"risk_level": "low",
|
|
"risk_emoji": "🟢",
|
|
"airport_name": "Sea-Tac 国际机场",
|
|
"distance_km": 17.4,
|
|
"warning": "微气候差异存在但较小。",
|
|
},
|
|
"lucknow": {
|
|
"name": "Lucknow",
|
|
"lat": 26.7606,
|
|
"lon": 80.8893,
|
|
"icao": "VILK",
|
|
"tz_offset": 19800,
|
|
"use_fahrenheit": False,
|
|
"is_major": False,
|
|
"risk_level": "medium",
|
|
"risk_emoji": "🟡",
|
|
"airport_name": "Chaudhary Charan Singh 国际机场",
|
|
"distance_km": 14.0,
|
|
"warning": "印度北方热岛效应,夏季午后机场反馈略低于市区。",
|
|
},
|
|
"sao paulo": {
|
|
"name": "São Paulo",
|
|
"lat": -23.4356,
|
|
"lon": -46.4731,
|
|
"icao": "SBGR",
|
|
"tz_offset": -10800,
|
|
"use_fahrenheit": False,
|
|
"is_major": True,
|
|
"risk_level": "high",
|
|
"risk_emoji": "🔴",
|
|
"airport_name": "São Paulo/Guarulhos 机场",
|
|
"distance_km": 25.0,
|
|
"warning": "距离远且海拔有差异,局部降雨温差极大。",
|
|
},
|
|
"munich": {
|
|
"name": "Munich",
|
|
"lat": 48.3538,
|
|
"lon": 11.7861,
|
|
"icao": "EDDM",
|
|
"tz_offset": 3600,
|
|
"use_fahrenheit": False,
|
|
"is_major": False,
|
|
"risk_level": "high",
|
|
"risk_emoji": "🔴",
|
|
"airport_name": "Munich 机场",
|
|
"distance_km": 28.5,
|
|
"warning": "距离非常远,空旷机场夜间降温快,冬季易生大雾压制气温。",
|
|
},
|
|
}
|
|
|
|
ALIASES = {
|
|
# English shortcuts
|
|
"ank": "ankara", "lon": "london", "par": "paris",
|
|
"nyc": "new york", "ny": "new york", "chi": "chicago",
|
|
"dal": "dallas", "mia": "miami", "atl": "atlanta",
|
|
"sea": "seattle", "tor": "toronto", "sel": "seoul",
|
|
"seo": "seoul", "hkg": "hong kong", "hk": "hong kong",
|
|
"sha": "shanghai", "sh": "shanghai", "sin": "singapore",
|
|
"sg": "singapore", "tok": "tokyo", "tyo": "tokyo",
|
|
"tlv": "tel aviv", "telaviv": "tel aviv",
|
|
"ba": "buenos aires", "wel": "wellington",
|
|
"luc": "lucknow", "sp": "sao paulo", "mun": "munich",
|
|
|
|
# Chinese names
|
|
"安卡拉": "ankara",
|
|
"伦敦": "london",
|
|
"巴黎": "paris",
|
|
"纽约": "new york",
|
|
"芝加哥": "chicago",
|
|
"达拉斯": "dallas",
|
|
"迈阿密": "miami",
|
|
"亚特兰大": "atlanta",
|
|
"西雅图": "seattle",
|
|
"多伦多": "toronto",
|
|
"首尔": "seoul",
|
|
"香港": "hong kong",
|
|
"上海": "shanghai",
|
|
"新加坡": "singapore",
|
|
"东京": "tokyo",
|
|
"東京": "tokyo",
|
|
"特拉维夫": "tel aviv",
|
|
"布宜诺斯艾利斯": "buenos aires",
|
|
"惠灵顿": "wellington",
|
|
"勒克瑙": "lucknow",
|
|
"圣保罗": "sao paulo",
|
|
"慕尼黑": "munich",
|
|
}
|