上一篇文章中,我们谈到了历史气象数据的获取。在很多环境建模场景中,比如洪涝风险评估、生态系统模拟、未来情景预测等,你还需要未来天气预报数据来驱动模型:
- 短期降雨预报(影响洪峰和水资源)
- 温度/湿度预报(影响蒸散发、生态响应)
- 风速/风向预报(影响颗粒物和扩散过程)
天气预报数据通常由气象数值模式/NWP 模型提供,主流天气 API 可以提供这些数据。
一、和风天气 API
和风天气是国内知名气象服务提供商,提供了包括:
- 实况天气
- 逐日/逐小时天气预报
- 空气质量 AQI 和预报
- 气象预警
- 生活指数
其中天气预报 API 支持获取未来3 天到 30 天的天气预报。默认免费用户(凭 API Key)可以获取3 天预报。 (和风天气开发服务)
1️⃣ 获取 API Key
要调用和风天气接口,你需要:
- 注册账号(控制台)
- 新建应用并获取API Key
这个 Key 会用于所有 API 请求。 (和风天气开发服务)
二、调用和风天气 API:Python 示例(福州未来 3 天预报)
下面示例代码展示了:
- 如何构建请求
- 如何解析基本的天气预报结果
- 以福州经纬度为例(26.08, 119.3)
⚠️ 注意:你需要替换示例中的YOUR_API_KEY为实际的和风天气 Key。
importrequests# ==== 配置部分 ====API_KEY="YOUR_API_KEY"# 替换成你的和风天气 API Keylat,lon=26.08,119.3# 福州经纬度days="3d"# 未来 3 天预报# 构造请求 URLurl=(f"https://devapi.qweather.com/v7/weather/{days}"f"?location={lon},{lat}"f"&key={API_KEY}""&unit=m"# 单位:公制)# 发送请求response=requests.get(url)data=response.json()# 检查响应状态if"daily"indata:print("未来3天预报数据(福州):")fordayindata["daily"]:date=day["fxDate"]text_day=day["textDay"]text_night=day["textNight"]temp_max=day["tempMax"]temp_min=day["tempMin"]pop=day["pop"]# 降水概率print(f"{date}| 白天:{text_day}, 夜间:{text_night}, "f"最高:{temp_max}, 最低:{temp_min}, 降水概率:{pop}%")else:print("无法获取预报,请检查 API Key 或参数")📌 运行后,你会得到类似以下结构的数据:
2026-01-18 | 白天:多云, 夜间:晴, 最高:18, 最低:10, 降水概率:20% 2026-01-19 | ... ...Open-Meteo
如果你希望有替代方案或者不想使用 Key,Open-Meteo也是不错的选择:
Open-Meteo 提供免费的全球天气预报 API:
- 不需要 API Key
- 支持当前天气、未来多天预报
- JSON 结构清晰,适合自动化拉取数据 (Open Meteo)
示例(未来预报):
importrequests lat,lon=26.08,119.3# 福州坐标url=("https://api.open-meteo.com/v1/forecast?"f"latitude={lat}&longitude={lon}""&hourly=temperature_2m,precipitation""&daily=temperature_2m_max,temperature_2m_min,precipitation_sum""&forecast_days=3""&timezone=Asia/Shanghai")resp=requests.get(url)forecast=resp.json()print(forecast["daily"])这个 API 支持未来多天预报,并且不需要 Key,非常适合科研项目快速实验。 (Open Meteo)
[!tip]
如有帮助,请收藏、点赞、评论、转发一条龙~
微信公众号:环境猫 er
CSDN : 细节处有神明
个人博客:https://maoyu92.github.io/