Open-Meteo 免费天气预報 API:无需 API 密钥获取 16 天逐小时预报
2026/9/24 16:36:42 网站建设 项目流程

Open-Meteo 免费天气预報 API:无需 API 密钥获取 16 天逐小时预报

【免费下载链接】open-meteoFree Weather Forecast API for non-commercial use项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo

给应用加一个天气页面,或者做研究时想拉一段历史温度曲线,可商业气象 API 总要先注册账号、申请密钥、对照价格表。Open-Meteo(open-meteo)是一个开源且免费的气象数据 API,直接把经纬度发给它的接口,就能拿到逐小时的预报 JSON,不用账号、不用密钥,非商业用途不收费。

它也不只是一个人在维护的项目。Home Assistant、Breezy Weather 等智能家居和天气应用都在用它的数据,从下载原始数据到提供 HTTP 服务,整条管线全部开源(AGPLv3 协议),理论上你可以在自己环境里跑一套。

🌦 用一条 curl 拿到第一份 16 天预报

不用任何配置,一条请求就能验证效果:

curl "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41&hourly=temperature_2m"

返回的 JSON 以小时为单位,每个时次都有温度。在 URL 上继续加参数,就能顺带要湿度、降水、风速。示例里的经纬度指向柏林,换成任意坐标即可。注意一点:非商业用途免费,但展示数据时需按 CC BY 4.0 协议标注来源。

除了查明天天气,它还能做什么

接口按数据域拆分成几个独立端点,各管一类需求:

场景能拿到什么典型用途
短期预报最长 16 天的逐小时数据:温度、降水、风、紫外线等应用里的天气模块、出行安排
历史天气回溯到 1940 年的观测与再分析数据,约 80 年气候趋势分析、回测验证
空气质量PM2.5、臭氧等污染物浓度空气质量监测、健康提醒
海洋预报浪高、海表温度等参数冲浪、沿海活动安排
辅助接口海拔、地理编码(地名换坐标)、洪水数据为天气接口准备坐标和背景数据

同一位置还可以用models参数切换数据来源:全球性的 GFS,或分辨率更高的区域模型 ICON 等,方便横向比较不同模式对同一场天气的预报差异。

⚙️ 幕后:这些预报数据从哪来

Open-Meteo 自己不运营气象站,预报数据来自各国气象机构公开发布的模式产品:美国 NOAA 的 GFS(含更精细的 HRRR)、德国 DWD 的 ICON、ECMWF IFS,以及挪威、日本、加拿大等机构的区域模式。

真正的工作量在中间环节。这些原始数据是 GRIB、NetCDF 一类的格式,各家模式还有自己的网格和投影。Open-Meteo 每天下载并处理超过 5TB 数据,统一转换进一种自研的压缩时序文件格式,专门优化"单点、单时段"这类读取。服务端是一个 Swift 写的单一二进制,处理请求时只取需要的那一小片数据;服务器分布在欧洲和北美,由 GeoDNS 就近路由,平均响应时间可以压到 10 毫秒以内。

翻源码能看到同样的分工:每个气象模式都有自己的下载器和解析器(Sources/App下按 Gfs、Icon、Ecmwf 分目录),上层再统一写入文件格式,所以对外接口才能保持同一套形态。

📦 自建部署、SDK 与配套文档

  • 自建 API:一条 Docker 命令即可启动,Ubuntu 22.04 也有预构建安装包。实例可以直接从官方公共数据库取数据并本地缓存,不必自己下载全套模式:
docker run -d -p 127.0.0.1:8080:8080 \ -v open-meteo-data:/app/data \ ghcr.io/open-meteo/open-meteo
  • 仓库内文档:快速开始与自建指南、下载模式数据、多节点同步、定时任务配置。
  • 客户端 SDK:社区维护 Python、TypeScript、Go、Rust、C#、PHP、Dart/Flutter、Kotlin、R 等语言的客户端,提供带类型的调用封装。
  • 社区:Issue 报 Bug,Discussion 讨论想法,为冷门语言补一个 SDK 也是被欢迎的贡献方式。

自建有一点要心里有数:一次预报请求要从大量文件里读压缩数据的小片段,缓存冷的时候首次调用偏慢,重复请求会明显变快,更适合有稳定请求量的场景。

对个人项目和日常使用来说,Open-Meteo 把"注册、申钥、付费、解析"四步压缩成了一次 GET 请求,整条数据管线还随时可以打开来验证。

【免费下载链接】open-meteoFree Weather Forecast API for non-commercial use项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询