🌍 EarthBench · 每日环境风险预警

Decision > Prediction — AI 地球决策智能基准测试框架
今日发布 RSS订阅 · GitHub
分享今日报告:
-
监测区域
-
有风险
-
安全
-
平均风险
-
7天准确率
🗺️ 全局风险总览
有风险 接近阈值 安全 点击标记跳转到详情
📅 历史报告核查 点击日期查看该日完整决策记录
🎯 预测精度验证
-累计验证
-准确率
-精确率
-召回率
-F1 分数
验证数据在预测发布 T+2 后自动生成, 使用 NASA FIRMS 卫星火点 + QWeather 历史天气独立验证
📋 今日监测结果(点击行展开详细证据和推理过程)
地点 类型 状态 风险 关键信号 验证
📍 当前选中区域
点击左侧行查看地图

📊 历史 7 天战绩

今日命中详情:

⚠️ 风险等级说明

🔴 高风险 (≥85%):需要立即关注,建议启动应急预案
🟡 中风险 (75%-84%):需持续监控,建议加强巡查
🟢 低风险 (<75%):暂时无需特殊措施

🛰️ 数据来源

🛰️
NASA MODIS 卫星
地表温度、植被指数(NDVI)
🌬️
ECMWF 数值预报
火险指数(FWI)、气象预报
🏭
中国气象局(CMA)
降水量、SPI/Palmer干旱指数
📡
地面气象站
湿度、风速、温度、湿球温度
💧
水文传感器
水位、土壤含水率实时监测

💡 快速了解

这是什么?
AI 帮您提前知道哪里可能有火灾、洪水、干旱或高温热浪。
怎么判断的?
多源数据融合:卫星+气象站+传感器,AI 综合分析各指标是否超过国标阈值。
为什么只显示部分区域?
默认只展示有风险的预警;安全区域可点下方按钮展开查看全部监测状态。
准不准?
过去7天平均准确率见右侧战绩面板,每条预警都标注是否命中。

📬 关于与联系

EarthBench — 基于 AI 的自然灾害预警系统,每天自动分析全国 20+ 监测区域的火灾、洪涝、干旱和高温热浪风险。
如有数据合作、技术咨询或问题反馈,欢迎通过以上方式联系。

🌐 关于 EarthBench

🎯

决策优先

传统气象系统回答"明天降雨多少毫米",EarthBench 回答"今天是否应该启动洪水应急预案"。我们不预测数字,我们做决策。

🔬

多源融合

卫星遥感(NASA MODIS)、数值预报(ECMWF)、气象站(和风天气 API)、水文传感器——四类数据源交叉验证,单一来源的偏差被系统性修正。

🧠

AI 推理透明

每条预警不是黑箱输出。系统记录从数据采集到阈值对比、加权评分、最终决策的完整推理链,用户可以逐条审查 AI 的判断依据。

每日验证

每条决策都标注是否与 Ground Truth(基于国标阈值推导的标准答案)一致。命中、误报、漏报一目了然,准确率持续追踪。

EarthBench vs 传统天气预报

维度传统天气预报EarthBench
核心问题明天温度 35 度吗?今天该启动高温应急预案吗?
输出形态数值预测(温度、降水量)二元决策(预警 / 不预警)+ 置信度 + 推理链
数据来源单一气象模型卫星 + 气象站 + 传感器多源融合
验证方式预测值 vs 实际值决策结果 vs Ground Truth(命中/误报/漏报)
可解释性低(数值输出,无推理过程)高(完整推理链 + 证据卡片 + 阈值标注)

🔥🌊🏜️☀️ 四大灾种监测

🔥 森林火险

基于加拿大 FWI(火险天气指数)体系,综合风速、湿度、温度和降雨量评估火灾风险。FWI 大于 40 即进入高风险区间。

核心指标FWI 火险指数
预警阈值FWI 大于等于 40
辅助指标湿度、风速、温度、降雨
数据来源ECMWF + 地面站 + NASA MODIS
🌊 洪涝灾害

对标《国家防汛抗旱应急预案》暴雨标准。24 小时降雨达 100mm 或 6 小时达 50mm 即触发预警,同时监测土壤饱和度和水位趋势。

核心指标24h 累计降雨量
预警阈值24h 大于等于 100mm
辅助指标6h 降雨、土壤湿度、水位
数据来源QWeather 逐小时预报 + 水文站
🏜️ 干旱监测

基于 SPI(标准化降水指数)和 Palmer 干旱指数双指标体系。SPI 小于 -1.5 或 Palmer 小于 -1.0 即为严重干旱,同时考虑月降雨亏缺和植被状态。

核心指标SPI + Palmer 指数
预警阈值SPI 小于 -1.5 或 Palmer 小于 -1.0
辅助指标湿度、月降雨量、NDVI
数据来源QWeather + ECMWF + MODIS NDVI
☀️ 高温热浪

对标中央气象台高温预警信号。湿球温度大于 27 度为危险阈值,持续 3 天最高温大于等于 35 度即构成典型热浪环境。湿热组合比单纯高温更危险。

核心指标湿球温度 + 持续天数
预警阈值湿球温度大于 27 度
辅助指标最高温、湿度、持续天数
数据来源QWeather 实时 + 逐日预报

⚙️ 工作原理

每天 UTC 00:00 和 12:00(北京时间 08:00 和 20:00),系统自动执行四阶段流水线:

1

📡 数据采集

从 QWeather API 获取 20 个监测区域的实时天气数据(温度、湿度、风速、降雨量),同时拉取逐小时和逐日预报用于趋势分析。QWeather 不可用时自动降级到内置场景数据。

QWeather API实时观测逐小时预报逐日预报
2

🧠 AI 决策

规则引擎首先基于国标阈值计算风险评分(动态权重归一化),然后将完整证据链传递给 LLM(Qwen3 14B via Ollama)做二次判断。LLM 可升级规则引擎的决策,但不能降级。

规则引擎动态权重Qwen3 14BOllama
3

📝 报告生成

为每个监测区域生成结构化决策记录,包含详细证据卡片(阈值对比 + 状态判定)、推理链条(从数据到决策的完整步骤)和 Ground Truth 验证结果。最终输出 Markdown 报告 + JSON 数据 + Atom Feed。

MarkdownJSONAtom RSS证据卡片
4

📡 分发部署

报告自动部署到 GitHub Pages(gh-pages 分支),通过 Cloudflare CDN 加速到 earth-ai.fun。Atom Feed 供 RSS 阅读器订阅,JSON API 供第三方系统消费,微信公众号草稿待人工审核后发布。

GitHub PagesCloudflare CDNRSS FeedJSON API

📊 难度体系

20 个测试场景按 L1-L4 四级难度递进,每级考验 AI 不同层面的决策能力:

L1

简单 — 明确极端值

观测值远超或远低于阈值,决策方向明确无歧义。如 FWI=70(远超 40 阈值)或 24h 降雨=0mm。

考验:阈值判断基础能力
L2

中等 — 边界值 + 次要因素

主要指标接近阈值,次要因素成为决定性变量。如 FWI=49 但降雨 25mm 抑制了火险——降雨是否足够抑制?

考验:多变量综合权衡能力
L3

困难 — 信号冲突

不同指标给出矛盾信号。如 SPI 正常但 Palmer 显示干旱,或沿海高湿但 FWI 中等——哪个指标优先?

考验:冲突解决与优先级判断
L4

超越 — 边缘案例

需要从时序趋势推断隐含信号,或处理极端组合场景。如连续升温趋势是否构成热浪?水位持续上涨是否即将超警?

考验:时序推理与趋势预判

🗺️ 监测区域

覆盖全国 20 个代表性区域,横跨 4 大灾种、4 级难度:

🔥 火险(5 区域)

北京·香山L1
杭州·西湖L1
长白山L2
深圳·海岸L3
大兴安岭L4

🌊 洪涝(5 区域)

武汉·长江L1
拉萨·西藏L1
广州·珠江L2
桂林·广西L3
南京·长江L4

🏜️ 干旱(5 区域)

昆明·云南L1
杭州·浙江L1
哈尔滨·黑龙江L2
乌鲁木齐·新疆L3
太原·山西L4

☀️ 热浪(5 区域)

重庆L1
昆明·春城L1
乌鲁木齐·新疆L2
南京L3
武汉·长江L4

📦 开放数据与 API

所有数据以 CC BY 4.0 许可开放,欢迎研究者、开发者和防灾减灾机构自由使用。

📊

JSON API

今日全部 20 个区域的决策数据,包含每个场景的详细证据、推理链和验证结果。

GET https://earth-ai.fun/latest.json
published_at total_scenarios alert_count average_confidence decisions[]
📡

RSS / Atom Feed

每日预警 Atom 格式订阅源,支持 RSS 阅读器(如 Feedly、Inoreader)自动推送。

GET https://earth-ai.fun/feed.xml
atom:entry category region confidence summary
📈

历史数据

过去 7 天的决策历史和准确率统计,含每日命中/误报/漏报明细。

GET https://earth-ai.fun/history.json
date total alerts hits misses accuracy details[]
💻

GitHub 开源

完整源代码、测试用例、CI/CD 配置、场景定义和 Ground Truth 推导函数全部开源。

github.com/showkeyjar/earth-bench
earthbench/ tests/ .github/workflows/ scenarios.py agents.py

快速接入示例

# Python 获取今日决策
import requests
data = requests.get("https://earth-ai.fun/latest.json").json()
alerts = [d for d in data["decisions"] if d["llm_decision"]]
print(f"今日 {data['total_scenarios']} 区域,{len(alerts)} 条预警")

# curl 获取 JSON
curl -s https://earth-ai.fun/latest.json | jq '.alert_count'

# RSS 订阅(Feedly 等阅读器直接添加)
https://earth-ai.fun/feed.xml

🔧 技术栈

🐍
Python 3.12
核心框架,12 个模块覆盖数据采集、推理引擎、评测系统和发布流水线
🌤️
QWeather API
和风天气商业 API,提供实时气象观测、逐小时和逐日预报数据
🦙
Ollama + Qwen3
本地部署 Qwen3 14B 大模型,执行自然语言推理和二次决策升级
🛰️
NASA FIRMS + MODIS
卫星火点检测和植被指数(NDVI),补充地面站无法覆盖的遥感数据
🔄
GitHub Actions CI/CD
每日自动流水线:数据采集 → AI 决策 → 报告生成 → 部署发布,全程无人值守
🌐
Cloudflare CDN
全球 CDN 加速,自定义域名 earth-ai.fun,自动 HTTPS 和边缘缓存
📄
GitHub Pages
gh-pages 分支托管 JSON API、Atom Feed 和静态资源,配合 CDN 实现高可用
🗺️
Leaflet + 高德地图
前端地图引擎,支持区域定位、影响范围多边形渲染和交互式标注