ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

15分钟自托管天气API:Open-Meteo部署与调用指南

15分钟自托管天气API:Open-Meteo部署与调用指南 15分钟自托管天气APIOpen-Meteo部署与调用指南【免费下载链接】open-meteoFree Weather Forecast API for non-commercial use项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo如果你的应用需要展示温度与降水又不想申请 API Key、不想按次付费Open-Meteo 值得看一下这是一个可用 Docker 部署的开源天气 API聚合 ECMWF、NOAA 等官方气象机构的预报数据无需密钥即可调用适合非商业项目与个人开发者。一个免密钥的免费天气 API它击中哪三个痛点Open-Meteo 是一个开源的天气 API 服务只做一件事把各国气象机构发布的数值天气预报变成你能直接调用的 REST 接口。源码以 AGPLv3 发布数据以 CC BY 4.0 发布需要署名非商业用途免费无需注册。它击中的是三个具体痛点费用与配额非商业用途免费不按请求计费无需注册即可获取 Key集成门槛一条 curl 直接拿数据原生支持 CORS无广告、无跟踪数据不透明模型来源公开标注处理流程完整可审查可自行部署接管能拿到什么从 16 天预报到 80 年历史功能与数据覆盖面有多广16 天逐小时预报temperature_2m、降水、风速等小时变量另有 daily、weekly、monthly 聚合接口80 年历史数据历史天气 API 可回溯约 80 年的观测与再分析资料双档模型分辨率全球模型 11 公里区域模型细至 1.5 公里权威模型来源NOAA GFS 与 HRRR、DWD ICON、MeteoFrance AromeArpege、ECMWF IFS、JMA、GEM HRDPS、MET Norway周边 API仓库 openapi/ 目录同时定义 Marine、空气质量、地理编码、高程、洪水等接口性能响应快不快低于 10 毫秒官方公开 API 的响应时间逐小时更新欧洲与北美地区的模型每小时刷新一次每天 5 TB每天从多家气象机构下载并处理超过 5 TB 数据双区部署服务器位于欧洲与北美用 GeoDNS按访问者位置路由的 DNS 服务就近接入成本与使用条款非商业免费全部端点免费开放无隐藏付费档仅要求合理使用用量阈值应用超过 10,000 次/天时先联系官方即可默认不限制请求无跟踪无广告、无 Cookie、无第三方分析不收集个人数据 3 步用 Docker 跑起来拿到第一份预报Docker 是最快的路径。硬件门槛不低CPU 需带 AVX2 这类 SIMD 指令内存 8 GB 起步建议 16 GB存储约 100 GB。想省麻烦Ubuntu 22.04 有预编译的 APT 包细节见部署指南。第 1 步创建数据卷并启动容器。指定远程数据目录与缓存大小后服务监听 8080 端口docker volume create --name open-meteo-data docker run -d --rm --name open-meteo \ -v open-meteo-data:/app/data \ -e REMOTE_DATA_DIRECTORYhttps://openmeteo.s3.amazonaws.com/data/ \ -e CACHE_SIZE8GB -p 8080:8080 ghcr.io/open-meteo/open-meteo第 2 步发起一次真实调用。首次请求要等几秒从 S3 拉数据并写入本地缓存之后就是毫秒级响应curl http://127.0.0.1:8080/v1/forecast?latitude47.1longitude8.4modelsecmwf_ifs025hourlytemperature_2m第 3 步可选建本地气象数据库。不想依赖远程数据源时用内置 sync 命令直接从气象机构下载模型见模型下载文档docker run -it --rm -v open-meteo-data:/app/data ghcr.io/open-meteo/open-meteo sync ecmwf_ifs025 temperature_2m谁已经在用 Open-Meteo 的数据项目 README 里列了几十个下游应用按人群分一下移动端天气应用Breezy Weather、Cirrus、Rain 等开源天气 App 都把它作为数据源。对 App 开发者来说天气功能的成本是零也不用替用户处理按量计费。智能家居与物联网Home Assistant 提供官方 Open-Meteo 集成配置几行即可把实时天气接进自动化场景OpenKNX 模块还能把气象数据直接发布到 KNX 智能家居总线。垂直行业工具无人机飞手用 DroneWeather 查 KP 指数与飞行条件solXpect 预测家用太阳能发电量Heat Rules 用温度湿度计算职业高温作业的工休安排。这些场景的共同点是数据够准而且免费。学术研究与数据分析80 年历史数据加 CC BY 4.0 授权让它可以直接充当气候分析的免费底座Open-Meteo 天气数据库还通过 AWS Open Data 计划重新分发研究者无需经过 API 就能取数。架构一览Swift、Vapor 与 OM 二进制格式整个服务用 Swift 编写基于 Vapor 框架一个 Swift 的 Web 服务器框架编译为单个二进制。代码大致分三层下载器源码目录下按机构划分Gfs/、Icon/、Ecmwf/、Era5/ 等各机构一个子目录负责抓取 GRIB、NetCDF 等原始文件处理层把源格式转成自研的 OM 二进制格式该格式为单点位置的时间序列压缩读取优化取一个地点的几天温度只需读取很小的数据切片服务层Controllers/ 下的 API 解析查询、做网格插值输出 JSON 等格式性能上release 构建开启 -Ounchecked 与跨模块优化x86 默认 -marchskylake 以吃满 SIMD 指令单条指令并行处理多个数值。分布式也支持一台服务器下载模型多台 API 节点通过 HTTP 定期拉取数据库保持同步见多节点同步文档。内置 /metrics 端点仅对 localhost 开放可看请求计数与缓存命中统计。部署成功后的 5 条优化建议按需调大 CACHE_SIZE默认 8 GB变量多或历史跨度长时调大官方支持多 TB 级缓存与数据源同区部署公开数据位于 AWS us-west-2自托管实例放在同区域冷缓存时的读取延迟才可控利用请求局部性重复请求与邻近坐标请求会命中缓存多个点位尽量合并成一次批量调用接上监控/metrics 只对 localhost 响应可经反向代理暴露给 Prometheus 抓取前置反向代理Ubuntu 包默认只绑 127.0.0.1:8080生产环境用 nginx 补上 TLS 与访问控制4 种参与方式代码、文档、SDK 与案例提交代码bug 走 issue改动提 PR源码在 Sources/测试在 Tests/完善文档docs/ 目录覆盖部署、下载、同步等 5 个主题补上缺口也是贡献开发 SDKREADME 已列出 Python、TypeScript、Go、Rust、PHP 等十余种语言的社区客户端更多语言受欢迎分享案例用 Open-Meteo 做了应用或网站README 有专门清单提 PR 加入即可项目后续方向仍是持续接入新的气象模型并扩展分布式部署商业使用与企业级支持可邮件联系 infoopen-meteo.com官方明确不提供小规模部署支持。回到开头的场景你只需要一个稳定的天气数据源不必再评估商业 API。把仓库拉下来、按上面 3 步启动容器、用 curl 验证响应再在客户端加一层缓存策略天气功能就算跑通了。【免费下载链接】open-meteoFree Weather Forecast API for non-commercial use项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表