首页 › weekly › 天气自己测:8个开源气象神器

民间气象局养成计划:8件开源神器,把天气预报攥在自己手里

概述

前几轮我们一直在地上挖宝——终端、服务器、家庭机房,这轮抬头看天。天气是人类最早的开放数据,但绝大多数人跟天气的关系,止步于某个塞满开屏广告的App。实际上,从阳台上的传感器焊接、气象站数据采集、国家级开放数据的API化,到手机App和多普勒雷达的科学计算,一整条「民间气象局」技术栈在GitHub上早已齐备。本期8个仓库横跨硬件固件、站点软件、数据服务、移动应用和科研工具,其中6个Star不足2000,是典型的冷门硬核款;而压轴的开源天气API服务,则是「开源核心+托管变现」的完整商业样本。


1. open-meteo/open-meteo | Star:1.5万上下(估算)| 活跃高频更新

一句话定位:把全球主要气象机构的数值预报模型揉成一个统一JSON API的开源服务。它解决的问题是——商业天气API按量收费贵得肉疼,免费源又往往只有单一数据。

核心拆解:Open-Meteo聚合了德国气象局ICON、欧洲ECMWF、美国GFS等数十个数值预报模型,统一坐标、统一变量格式对外输出;除了逐小时预报,还有ERA5历史再分析(回溯到上世纪40年代)、空气质量、洪水、海洋等多个API族。最舒服的一点是非商用完全免费、不用注册API Key,一个GET请求就能用。整套服务端开源,Docker可以自托管——后端用Swift写成,自研二进制格式存储气象数据,性能是它反复强调的卖点。商业模式也很直白:托管API非商用免费、商用按调用量订阅,是「开源引擎+数据服务」的样板工程。

上手难度:调用⭐,自托管⭐⭐⭐⭐(模型原始数据动辄数百GB,先备好硬盘)

适用人群:独立开发者、做农业/户外/光伏类App的团队。变现思路:直接学它的模式,或站在它肩膀上做垂直场景——登山天气窗、航海风浪、光伏发电量预测,都是现成的付费需求。

2. weewx/weewx | Star:1.3千上下(估算)| 十余年老牌,持续维护

一句话定位:家用气象站数据采集系统的事实标准,2012年跑到现在,树莓派玩家圈的人手一件。它解决的问题是——你花钱买的气象站,厂商App又烂又闭源,数据锁死在别人云上。

核心拆解:WeeWX是清晰的三层架构:驱动层适配主流硬件(Davis Vantage、Ecowitt等品牌靠驱动插件全覆盖);归档层把观测写进SQLite或MySQL;报告层用「皮肤」模板把数据渲染成静态网页,扔到任何Web服务器就能看。扩展生态里MQTT推送、第三方看板一应俱全。v5起支持pip一键安装,树莓派几瓦功耗常年挂机,一代数据攒下来就是自家的「气候年鉴」。

上手难度:⭐⭐(装包、改配置文件、填串口,一个下午搞定)

适用人群:硬件玩家、园丁、农庄主。变现思路:给本地气象站用户做「数据解放」安装与托管服务,或打包成品镜像卖给不想碰命令行的人。

3. BreezyWeather/breezy-weather | Star:数千星级别(估算)| 社区活跃接棒

一句话定位:安卓上最干净的开源天气App,老牌应用Geometric Weather停更后由社区接棒延续的分支。它解决的问题是——天气App的 开屏广告、新闻流和「资讯」推送。

核心拆解:Breezy Weather沿用原作精致的Material Design视觉,支持Material You动态取色,桌面小部件是公认好看的一档。真正硬核的是数据源架构:一个App同时适配Open-Meteo、挪威气象局MET Norway、德国Bright Sky等多家免费源,进阶源可自行提供密钥切换,数据源适配层的接口抽象做得很干净,是学习「一套代码接N家数据」的活教材。雷达降水图、分钟级降水提醒都有,F-Droid直接安装。

上手难度:⭐(装上就用)

适用人群:所有安卓用户。变现思路:GPL授权不适合闭源套壳,但数据源适配、企业定制ROM内置这类外包活是真实存在的需求。

4. pimoroni/enviro | Star:五百上下(估算)| Pimoroni官方维护

一句话定位:树莓派Pico家族的环境监测固件全家桶,MicroPython写的「开箱即刷」框架。它解决的问题是——想在阳台、温室、工位放几个传感器,结果每块板子都要从零撸固件。

核心拆解:Enviro的设计哲学是「growing kit」:weather、air、urban、camera等多种板型共享同一套固件框架,改改配置文件就能上线,数据通过HTTP或MQTT直接发往你自己的服务器或智能家居中枢。温度、湿度、气压、颗粒物、挥发性气体,常用传感器全部覆盖。背后的英国厂商Pimoroni是开源硬件圈的老公仆——固件全开源当卖点,靠卖板子赚钱,这个「开源固件+硬件生意」的组合拳本身值得研究。

上手难度:⭐⭐(刷固件、填WiFi密码,无需写代码)

适用人群:想低成本给家里布传感器点的创客。变现思路:面向养殖场、仓库、机房的行业环境监测定制,硬件套件+固件定制+数据看板,一套打包收钱。

5. opendata-stuttgart/airrohr-firmware | Star:七百上下(估算)| 多年稳定迭代

一句话定位:Sensor.Community众包空气监测网络的官方固件——一块ESP8266开发板加一颗SDS011颗粒物传感器,几十欧的成本,你家就成了全球开放空气地图上的一个节点。它解决的问题是——官方空气监测站一个城市就那么几个,数据粗得像马赛克。

核心拆解:固件负责颗粒物与温湿度采样、WiFi组网上传到sensor.community平台,所有数据以开放许可发布,API随便调用。项目从斯图加特的市民环保运动起家,据Sensor.Community官网,如今全球有数千个市民传感器持续上报,构成一张完全开放的空气质量网络——德国不少城市研究与报道都拿这套众包数据当底料。这是「开源硬件+众包数据」最有社会价值的示范之一。

上手难度:⭐⭐(浏览器里刷固件,接线只有两根)

适用人群:关注空气质量的社区、学校、创客空间。变现思路:城市级空气质量众包数据服务、学校科普监测套件,环保主题的项目申请经费也顺理成章。

6. metpy/MetPy | Star:1.3千上下(估算)| 美国Unidata出品,长期活跃

一句话定位:气象科学的Python工具箱,大气系学生的标配库。它解决的问题是——气象数据全是单位坑:摄氏度开尔文混算、毫巴帕斯卡不分,一个换算错误就是灾难级bug。

核心拆解:MetPy把pint单位系统贯穿进所有API,单位不对直接报错,从根上杜绝「差了一个数量级」的事故。能力覆盖Skew-T探空图、气象站点填图、METAR航空气象报文解析、配合xarray做网格数据处理,出图 directly 可达教科书水准。项目由美国国家科学基金会资助Unidata维护,文档详尽到可以当教材读,配套教程网上成套。它不替你预报天气,它保证你不算错——科研和工程的地基型工具。

上手难度:⭐⭐⭐(需要一点气象学常识)

适用人群:大气科学学生、能源与农业方向的数据工程师。变现思路:风光功率预测、农业气象、保险气象定损,这些细分赛道的第一块敲门砖就是这套技能。

7. ARM-DOE/pyart | Star:1千以内(估算)| 科研社区持续维护

一句话定位:天气雷达数据处理工具箱,本期最冷门硬核的一件。它解决的问题是——雷达基数据格式(NEXRAD、CF/Radial)出了名的难啃,商业处理软件死贵。

核心拆解:Py-ART由美国能源部大气辐射观测计划(ARM)孵化,是雷达科研圈的事实标准之一。它能读写主流雷达数据格式,做多普勒速度退模糊、衰减订正、把雷达回波网格化成三维场——电视气象节目背后那套数据处理,用Python就能完整复现。更妙的是原料免费:美国NEXRAD雷达基数据实时公开在AWS开放数据计划(据AWS官方注册页),拉取S3就能算。全世界的雷达数据摊在桌上,工具也摊在桌上,缺的只是懂行的人。

上手难度:⭐⭐⭐⭐(雷达气象领域知识是真正的门槛)

适用人群:气象科研人员、短临降水创业团队。变现思路:分钟级短临降水、风场反演这类利基数据服务,甲方是航空、物流和大型赛事运营方。

8. jvalue/brightsky | Star:1千上下(估算)| 稳定维护

一句话定位:把德国气象局(DWD)的开放数据包成现代JSON API的开源项目。它解决的问题是——气象局的开放数据往往是XML和GRIB天书,普通开发者只想fetch一个干净的JSON。

核心拆解:Bright Sky用Python解析DWD多路数据源,PostgreSQL存储,对外提供设计干净的JSON接口、完整文档和brightsky.dev上的托管实例,也可以自己Docker拉起来。德国区的开源天气应用普遍拿它当数据源,上文的Breezy Weather就内置了对它的支持。但这个项目最值钱的不是代码,是模式本身:任何国家的气象开放数据都可以照方抓药——官方数据免费拿,加工成开发者友好的API,就是一门可验证的小生意。

上手难度:⭐⭐(用托管API)/ ⭐⭐⭐(自托管)

适用人群:想做天气类产品又不想碰底层数据格式的开发者。变现思路:「国家气象数据API化」的套利模式,德语区已有现成示范,照着做之前先核对清楚本国数据许可条款。


横向对比

仓库 类型 Star(估算) 上手难度 典型场景
open-meteo 天气API服务 ~1.5万 ⭐调用/⭐⭐⭐⭐自托管 App与网站的天气数据底座
weewx 站点采集软件 ~1.3千 ⭐⭐ 家用气象站数据解放
Breezy Weather 安卓应用 ~数千 ⭐ 无广告天气App
pimoroni/enviro 硬件固件 ~五百 ⭐⭐ 阳台温室工位监测
airrohr-firmware 硬件固件 ~七百 ⭐⭐ 众包空气地图节点
MetPy 科学工具箱 ~1.3千 ⭐⭐⭐ 气象数据的正确打开方式
Py-ART 雷达工具箱 ~1千内 ⭐⭐⭐⭐ 雷达基数据分析
brightsky 数据API ~1千 ⭐⭐ 官方开放数据API化

注:Star数为截至发稿的量级估算,精确值以各仓库页面实时数据为准;上述仓库均为多年活跃、持续维护的项目。

本期生态位一图流

mindmap
  root((民间气象自建栈))
    硬件感知层
      pimoroni enviro
      airrohr 众包固件
    站点采集层
      weewx
    数据服务层
      open-meteo
      brightsky
    应用层
      Breezy Weather
    科学计算层
      MetPy
      Py-ART

本期之最


参考来源

  1. Open-Meteo 官网 及 GitHub 仓库 — API能力、数据源与免费策略说明
  2. WeeWX 官网 及 GitHub 仓库 — 架构、硬件适配与皮肤系统
  3. Sensor.Community — 众包空气监测网络与开放数据说明
  4. Bright Sky 及 GitHub 仓库 — 德国气象开放数据API化
  5. Py-ART 文档 — 雷达工具箱能力清单
  6. NEXRAD 开放数据集(AWS Registry of Open Data) — 美国气象雷达公开数据说明

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入