feat: Add multi-source weather data collector supporting OpenWeatherMap, Visual Crossing, and NOAA METAR.
This commit is contained in:
@@ -392,11 +392,11 @@ class WeatherDataCollector:
|
|||||||
"_t": int(time.time()), # 禁用缓存,强制刷新
|
"_t": int(time.time()), # 禁用缓存,强制刷新
|
||||||
}
|
}
|
||||||
|
|
||||||
# 对于美国市场,使用华氏度
|
# 显式指定单位,防止 API 默认行为漂移
|
||||||
if use_fahrenheit:
|
if use_fahrenheit:
|
||||||
params["temperature_unit"] = "fahrenheit"
|
params["temperature_unit"] = "fahrenheit"
|
||||||
# 不使用 models 参数,让 Open-Meteo 用默认最优模型
|
else:
|
||||||
# NWS 已提供官方预报对比,无需 HRRR
|
params["temperature_unit"] = "celsius"
|
||||||
|
|
||||||
response = self.session.get(
|
response = self.session.get(
|
||||||
url,
|
url,
|
||||||
@@ -628,10 +628,8 @@ class WeatherDataCollector:
|
|||||||
"st. louis",
|
"st. louis",
|
||||||
}
|
}
|
||||||
city_lower = city.lower().strip()
|
city_lower = city.lower().strip()
|
||||||
# 检查城市名是否在美国城市列表中(支持完全匹配或包含关系)
|
# 严格判断是否为美国市场(必须完全匹配列表或缩写)
|
||||||
use_fahrenheit = city_lower in us_cities or any(
|
use_fahrenheit = city_lower in us_cities
|
||||||
us_city in city_lower for us_city in us_cities
|
|
||||||
)
|
|
||||||
|
|
||||||
if use_fahrenheit:
|
if use_fahrenheit:
|
||||||
logger.info(f"🌡️ {city} 使用华氏度 (°F)")
|
logger.info(f"🌡️ {city} 使用华氏度 (°F)")
|
||||||
|
|||||||
Reference in New Issue
Block a user