云海预测 — 输入「云海」即可预测16峰云海概率。自动抓取气象数据、计算雾底雾顶、生成完整报告。无需手动配置,零门槛使用。【强制触发关键词】云海、云海预测、云海概率、雾海、山地云海、日出云海、云海报告、妙峰山云海、雾灵山云海、海坨山云海、东灵山云海、白石山云海、百花山云海、云蒙山云海、日出质量。功能:多源气象数据、三重核实、12因子评分、雾底计算、雾型诊断、HTML可视化报告。山地预测逻辑修正。
☁️ 云海预测 — 零门槛快速开始是一项面向实际任务的技能,主要用于只需说一句话,自动完成全部流程;无需配置、无需指定山峰、无需调用工具;
「云海概率」;同上,简洁摘要版;「日出云海」;专项分析日出时段云海质量;「妙峰山云海」;精细分析指定山峰;⚠️ 注意;
默认16峰不含三香山/佛爷顶/玉渡山/凤凰坟/煤山等非官。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
只需说一句话,自动完成全部流程。 无需配置、无需指定山峰、无需调用工具。
| 你说什么 | 我做什么 |
|---|---|
| 「云海预测」 | 自动抓取北京16峰最新气象数据 → 计算概率 → 展示完整报告 |
| 「云海概率」 | 同上,简洁摘要版 |
| 「日出云海」 | 专项分析日出时段云海质量 |
| 「妙峰山云海」 | 精细分析指定山峰 |
| ⚠️ 注意 | 默认16峰不含三香山/佛爷顶/玉渡山/凤凰坟/煤山等非官方山峰 |
Step 1 判断任务类型(默认16峰 / 指定山峰 / 日出专项) ↓ Step 2 自动抓取 Open-Meteo 气象数据(含露点温度 dew_point_2m) ↓ Step 3 12因子综合评分 + 通透度评估 ↓ Step 4 生成完整 Markdown 报告并展示 ↓ Step 5 生成 HTML 可视化报告(可选)
雾顶 = 气象站海拔 + 雾底高度(LCL) + 100mreferences/peaks.json ← 16峰官方坐标(自动引用,无需配置) references/report-template.md ← 报告模板 scripts/weather_fetch.py ← 数据获取 scripts/analyzer.py ← 评分计算 scripts/report_gen.py ← HTML 生成
以下规则是云海预测的生死线,每次执行必须遵守。
| # | 规则 | 说明 |
|---|---|---|
| 1 | dew_point_2m 生死线 | 必须从 Open-Meteo API 实测获取,绝不假设。假设 Td=7°C 曾导致云底估算错误 1200m |
| 2 | 雾顶公式 | fog_top_msl = station_elev + LCL_ag + 100m(固定雾厚100m,不用 summit_elev) |
| 3 | LCL V2.0 三层融合 | ECMWF Layer1 + CMA Layer2 + ENS Layer3 自动融合,已取代旧版三重核实 |
| 4 | 通透度阈值 | 评分 ≤4.0 时必须显示灰霾警告;PM2.5>75 标注"灰白为主";AOD>0.5 标注"远景不可见" |
| 5 | 任务分流 | 日出任务(关键词"云顶高度"/"高云"/"AQI"/"日出质量")→ 直接跳到 Step 3.5 |
| 6 | JSON 峰名编码 | weather_data_*.json 中峰名 key 可能乱码,遍历 peaks 取 .peak 字段匹配 |
| 7 | 数据复制检测 | 多文件气象数据相同时,对比 hourly[9+] 验证真实性 |
| 8 | 日出评分修正 | above_fog=True + lcl>1500m + RH<65% → 扣-15分(干燥气团中LCL虚高,above_fog为假阳性) |
| 9 | 主会话报告格式 | 主会话 Markdown 输出强制使用 references/report-template.md 模板,不得省略模块。每次输出前必须先 read 模板文件。 |
| 10 | 【强制步骤】主会话显示完整报告 | 每次云海预测完成后,必须使用 read 工具读取保存的报告文件,然后将文件内容直接写入 AI 回复中。read 工具的结果显示在工具调用结果中,但必须将内容复制到 AI 的回复文本中。 |
| 11 | 执行检查清单(每步必须打勾) | 见下方检查清单,每完成一步标记✅,全部✅才能结束 |
| 12 | 【强制】仅用官方16峰 | 报告只能包含 references/peaks.json 中的16座官方山峰。禁止添加任何非官方山峰(如三香山、佛爷顶、玉渡山、凤凰坟、煤山等)。用户指定非官方山峰时单独处理,不混入16峰排名表 |
这是防止跳步骤的核心机制。每次云海预测必须逐项打勾,全部✅才能结束任务。
□ Step 1: 判断任务类型(云海预测/日出专项/对比/核实/原理/雾型)
□ Step 2-Step 2: LCL V2.0 三层融合(ECMWF Layer1 + CMA Layer2 + ENS Layer3)
□
Step 3: 12因子评分计算 + 通透度评估
□ Step 4-1: read references/report-template.md(不读模板=零分)
□ Step 4-2: 按模板逐节填充(16峰排名+雾型+气象+TOP3逐时+行程+装备+结论+速查)
□ Step 4-3: 保存到 cloud-sea-{date}.md
□ Step 4-4: read 保存的报告文件 → 完整写入 AI 回复
□ Step 5: 生成 HTML 可视化报告
| 用户需求 | 触发关键词 | 输出 |
|---|---|---|
| 预测某天云海概率 | "云海"、"云海概率"、"本周云海" | Markdown 报告 + HTML 可视化报告 |
| 预测日出云海质量 | "日出"、"日出质量"、"云顶高度"、"高云/中云/低云"、"AQI 日出"、"雾凇日出" | 日出专项报告(含云层高度分类、高/中/低云型分析、大气通透度、雾层日出序列) |
| 对比多个观测点 | 多地点对比分析(含各站雾底/雾顶精确值) | |
| 更新已知预测 | 对比新旧数据,说明变化及修正原因 | |
| 核实数据可靠性 | 三重核实专项报告 | |
| 解释云海原理 | 气象学知识问答 | |
| 判断雾/云海类型 | 辐射雾/上坡雾/平流雾/谷雾/锋面雾诊断 |
LCL V2.0 将三重核实内化为三层融合,自动完成多源交叉验证,不再需要手动执行三轮核实。 每次预测自动调用
weather_fetch.py,内部完成全部三层融合逻辑。
| 层级 | 数据源 | 方式 | 说明 |
|---|---|---|---|
| Layer 1 | ECMWF IFS 0.25° | Open-Meteo API (models=ecmwf_ifs025) |
欧洲中期天气预报中心,Windy 默认数据源,高精度数值模型 |
| Layer 2 | CMA 中国气象局 | Open-Meteo API(默认模型) | 国内权威实测数据,与 ECMWF 自动交叉验证 |
| Layer 3 | ENS 集合预报 | ECMWF 5成员采样 (ecmwf_ensemble) |
概率分布估算不确定性,减少单点预测偏差 |
注意:
ecmwf_ifs04(0.4°) 返回空数据,必须使用ecmwf_ifs025(0.25°)。山峰坐标详见
references/peaks.json(官方16峰,无需手动配置)。
对每个山峰坐标调用 ECMWF 模型,必须包含 dew_point_2m:
GET https://api.open-meteo.com/v1/forecast
?latitude=<山峰纬>&longitude=<山峰经>
&models=ecmwf_ifs025
&hourly=temperature_2m,dew_point_2m,relative_humidity_2m,
precipitation_probability,precipitation,
wind_speed_10m,wind_direction_10m,cloud_cover,
weather_code,surface_pressure
&daily=temperature_2m_max,temperature_2m_min
&timezone=Asia/Shanghai&forecast_days=7
⚠️ dew_point_2m 是必取字段:这是 ECMWF 直接测量的露点温度。当 RH=100% 且 T≈Td 时,LCL_ag≈0(雾在地面)。
CMA 数据通过 Open-Meteo 默认模型获取,与 ECMWF Layer 1 自动交叉验证。 禁止使用城区站作为山地观测点的核实数据——城区在逆温层上方,数据与山地存在系统性偏差。
通过 Open-Meteo 默认模型(综合多数据源)获取,与 Layer 1 并行执行:
GET https://api.open-meteo.com/v1/forecast
?latitude=<山峰纬>&longitude=<山峰经>
&hourly=temperature_2m,dew_point_2m,relative_humidity_2m,
wind_speed_10m,wind_direction_10m,cloud_cover
&timezone=Asia/Shanghai&forecast_days=7
ENS(Ensemble)集合预报提供 5 个成员采样,自动量化 LCL 预测的不确定性。 当 ENS 标准差较大时,置信度降低,需在报告中标注不确定性。
ENS 融合逻辑:
ecmwf_ensemble 获取 5 个成员Layer1 × 0.5 + Layer2 × 0.3 + ENS_mean × 0.2(加权融合)GET https://api.open-meteo.com/v1/forecast ?latitude=<山峰纬>&longitude=<山峰经> &models=ecmwf_ensemble &hourly=temperature_2m,dew_point_2m &timezone=Asia/Shanghai&forecast_days=7
Magnus 公式在所有层级通用,用于校验融合结果的物理合理性。
核心公式:
LCL_ag(m) = 125 × (T − dew_point_2m实测)fog_top_msl = station_elev + LCL_ag + 100m山顶 vs 雾顶判定:
> 200m → ✅ 远高于雾顶(可见云海)0~200m → ⚠️ 接近雾层边缘< 0m → ❌ 在雾中(看不见云海)⚠️ 禁止跳峰:每个山峰必须独立获取数据,不得共用或假设。
使用 12 因子综合评分模型。
完整评分模型、因子权重、计算公式详见
references/scoring-standards.md
为什么需要通透度:云海是否"好看"不仅取决于有没有雾,还取决于大气是否通透。 灰霾天气下即使有云海,视觉也是白茫茫一片,无层次、无色彩,拍摄效果差。
数据来源(全部免费,无需 API Key):
| 指标 | 数据源 API | 字段 | 权重 |
|---|---|---|---|
| PM2.5 | air-quality-api.open-meteo.com/v1/air-quality |
pm2_5 (μg/m³) |
30% |
| 能见度 | api.open-meteo.com/v1/forecast |
visibility (m) |
25% |
| US AQI | air-quality-api.open-meteo.com/v1/air-quality |
us_aqi |
20% |
| PM10 | air-quality-api.open-meteo.com/v1/air-quality |
pm10 (μg/m³) |
10% |
| AOD | air-quality-api.open-meteo.com/v1/air-quality |
aerosol_optical_depth |
10% |
| NO₂ | air-quality-api.open-meteo.com/v1/air-quality |
nitrogen_dioxide (μg/m³) |
5% |
通透度等级与云海概率修正:
| 评分 | 等级 | 视觉描述 | 云海概率修正 |
|---|---|---|---|
| ≥ 8.0 | ★★★★★ 极通透 | 雪山级通透,远山轮廓分明,云海色彩饱满 | +5% |
| 6.0-8.0 | ★★★★☆ 通透 | 云海白色纯净,层次清晰,城市轮廓可辨 | ±0% |
| 4.0-6.0 | ★★★☆☆ 一般 | 云海偏灰,远景模糊,色彩饱和度下降 | -5% |
| 2.0-4.0 | ★★☆☆☆ 灰霾 | 云海灰白,城市不可见,无层次感 | -15% |
| < 2.0 | ★☆☆☆☆ 严重雾霾 | 白茫茫一片,雾和霾混为一体,完全无层次 | -25% |
城区 vs 山峰:
API 调用示例:
# 空气质量(独立端点,非天气 API) GET https://air-quality-api.open-meteo.com/v1/air-quality ?latitude=39.92&longitude=116.40 &hourly=pm10,pm2_5,nitrogen_dioxide,ozone,aerosol_optical_depth,us_aqi &timezone=Asia/Shanghai&forecast_days=7 # 能见度(天气 API 的 visibility 字段) GET https://api.open-meteo.com/v1/forecast ?latitude=39.92&longitude=116.40 &hourly=visibility &timezone=Asia/Shanghai&forecast_days=7
当用户询问日出云海质量、云层类型(高云/中云/低云)、日出视觉预测时,执行此步骤。 此步骤基于 Step 2 已获取的逐时气象数据,无需额外 API 调用。
北京4月日出约 05:30-05:50,取以下三个关键时次分析:
| 时次 | Open-Meteo index | 含义 |
|---|---|---|
| 05:00(index 5) | 日出前30分钟 | 雾层最终状态 |
| 06:00(index 6) | 日出时刻 | 核心判定 |
| 07:00(index 7) | 日出后1小时 | 雾散过程/云量变化 |
| 云层级别 | 底高范围 | 典型云种 | 日出视觉效果 | 判定条件 |
|---|---|---|---|---|
| 高云 | > 6000m AGL | 卷云(Ci)、卷层云(Cs)、卷积云(Cc) | 薄纱状金色、红色染色日出,极罕见 | weather_code=0 且 cloud_cover<20% + 无雾 |
| 中云 | 2000–6000m AGL | 高积云(Ac)、高层云(As) | 部分遮挡日出,色彩偏平淡 | weather_code=2-3 且 LCL>2000m |
| 低云 | < 2000m AGL | 积云(Cu)、层积云(Sc) | 可能形成云海,或完全遮蔽 | weather_code=2-3 且 LCL<2000m |
| 辐射雾/层云 | 0–500m AGL | 雾、层云(St) | 山谷淹没、峰顶穿云而出,最壮观 | weather_code∈[0,45,48] 且 LCL<500m 且 RH>80% |
| 无云 | — | 晴空 | 纯净金色日出,色彩最饱和 | weather_code=0 且 cloud_cover=0% 且 above_fog=True |
LCL 快速判定(无需 Magnus 公式):
LCL_ag(m) ≈ 125 × (T − dew_point_2m)
当 LCL < 300m 时为极低雾层(辐射雾),日出景观最佳。
综合五个维度:
| 维度 | 权重 | 判定规则 |
|---|---|---|
| ① 云量遮挡 | 40% | 0%=40分,每+10%云量扣4分;>80%=5分 |
| ② 云层类型 | 25% | 无云=25分,高云=20分,中云=12分,低云=5分 |
| ③ 雾层位置 vs 山峰 | 20% | 山顶在雾中=15分;雾顶<500m=20分;超出>500m=20分;无雾=5分 |
| ④ 风速 | 10% | <5km/h=10分,5-15=5分,>20=-5分 |
| ⑤ 大气通透度 | 5% | 沿用 Step 3 通透度评分,≥8.0=5分,≥6=3分,<4=0分 |
对每个目标山峰,输出日出前后 3 小时(04:00-08:00)的逐时数据:
| 时间 | 云量% | 天气 | 雾层状态 | 风速 | 降水概率% | |------|:-----:|------|---------|-----:|--------:| | 04:00 | 100% | Overcast | 在雾中 | 2.9km/h | 0% | | 05:00 | 100% | Overcast | 在雾中 | 2.9km/h | 0% | | 06:00 | 81% | PartlyCloudy | 在雾中 | 2.4km/h | 0% | | 07:00 | 83% | PartlyCloudy | 在雾中 | 2.5km/h | 0% | | 08:00 | 90% | Overcast | 高于雾顶 | 3.9km/h | 0% |
日出序列需包含以下判定:
⚠️ 硬性规则:主会话云海预测输出必须使用
references/report-template.md模板格式。 不得自行编造格式、省略模块、或使用其他结构。每次输出前,先读模板再填数据。
执行步骤(必须按序执行,不可跳过任何步骤):
read references/report-template.mdcloud-sea-{date}.md(单日)或 cloud-sea-weekly-{date}.md(周报)read 工具读取刚保存的文件,然后将文件内容直接写入 AI 回复中read 工具的结果显示在工具调用结果中,但必须将内容复制到 AI 的回复文本中read 工具读取刚保存的文件,然后将文件内容复制粘贴到 AI 回复中常见错误(禁止):
HTML 模板路径:
assets/report-template.html(v2 动态占位符版本)模板使用
{{PLACEHOLDER}}语法,由scripts/report_gen.py(推荐,含雾型诊断引擎)或assets/_build_html_v3.py填充数据。 完整占位符清单见模板文件顶部 HTML 注释中的 DATA CONTRACT。必含模块:Header、概率仪表盘、三重核实结论卡片、雾底/雾顶 vs 山顶对比表、逐小时概率曲线(SVG柱状图)、五维评分、大气通透度、雾型分类、时间线、行程规划、优先级矩阵、装备清单、结论、图例。
配色规则:>= 45% 绿色 / >= 30% 蓝色 / >= 15% 黄色 / < 15% 深灰
标准工作流(v2):
python scripts/analyzer.py --date 2026-04-25 --all # 获取数据 + 生成 config python scripts/report_gen.py scripts/report_config.json cloud-sea-2026-04-25.html python scripts/html_to_image.py cloud-sea-2026-04-25.html cloud-sea-2026-04-25.png
完整山峰坐标、天气网编码、区域信息详见
references/peaks.md
| 排名 | 地点 | 海拔 | 观测特征 |
|---|---|---|---|
| 🥇 | 海坨山(延庆) | 2198m | 云海最壮观,冬奥主赛场 |
| 🥈 | 东灵山(门头沟) | 2303m | 北京最高峰,云层最厚 |
| 🥉 | 雾灵山(密云) | 2116m | 日出评级⭐⭐⭐⭐⭐,视野最佳 |
| 4 | 妙峰山(门头沟) | 1291m | 城市+云海双景(⚠️ 实测险差+211m,非+624m,俯视视角;见 scoring-standards.md 因子6) |
| 5 | 白石山(涞源) | 2099m | 云海+佛光双绝,大理岩峰林 |
| 6 | 云蒙山(怀柔) | 1414m | LCL 极低,湿度汇聚佳 |
| — | 长城段:箭扣长城(~900m)、金山岭长城(~1100m) | — | 浓雾锁峰(需注意:山顶在雾中,无云海可见) |
注意:实际概率需根据当日气象数据计算,上表仅作历史参考。
fog_top_msl = station_elev + LCL_ag + 100m(不得用 summit_elev − station_elev 作雾厚)完整诊断标准、物理机制、判定条件、快速诊断流程、各峰雾型偏好详见
references/fog-types.md
| 类型 | 形成机制 | 最佳观测时段 | 典型地点 |
|---|---|---|---|
| 辐射雾型 | 夜间辐射冷却,晴夜+微风+高湿度 | 日出前后 | 海坨山、雾灵山 |
| 平流雾型 | 暖湿空气流经冷地面 | 全天可持续 | 白石山 |
| 上坡雾型 | 暖湿空气沿山坡上升 | 风向稳定时段 | 雾灵山、百花山 |
| 蒸发雾型 | 冷空气流经暖水面 | 清晨或夜间 | 长峪城、东指壶 |
| 锋面雾型 | 锋面过境,暖雨滴蒸发 | 锋面过境时 | 各峰均可 |
# 获取气象数据(含 dew_point_2m) cloud_sea_shared.py ← 共享常量与辅助函数(唯一真相源) python scripts/weather_fetch.py # 生成 HTML 报告 python scripts/report_gen.py report_config.json output.html
cloud-sea/
├── SKILL.md ← 本文件
├── scripts/
│ ├── cloud_sea_shared.py ← 共享常量与辅助函数(唯一真相源)
│ ├── weather_fetch.py ← 多源气象数据(含 dew_point_2m)
│ ├── analyzer.py ← 数据分析与评分
│ ├── report_gen.py ← HTML 报告生成器(含雾型诊断引擎)
│ ├── sunrise_analysis.py ← 日出云海质量分析(云层分类+评分)
│ └── html_to_image.py ← HTML 转 PNG(Playwright)
├── references/
│ ├── peaks.md ← 17峰坐标 + 区域编码 + 三重核实分配(权威来源)
│ ├── scoring-standards.md ← 12因子评分模型(雾型交互引用 fog-types.md)
│ ├── fog-types.md ← 雾型诊断 + 雾底实时估算 + 组合效应(权威来源)
│ ├── report-template.md ← Markdown 报告输出模板
│ ├── data-sources.md ← 数据源说明
│ ├── locations.md ← 观测点位置详情
│ └── SELF-IMPROVEMENTS.md ← 自我改进日志
└── assets/
├── report-template.html ← HTML 报告模板(v2 动态占位符版,{{PLACEHOLDER}} 语法)
└── _build_html_v3.py ← 独立 HTML 生成器(读取模板 + config → HTML)
⚠️ 共享常量(2026-04-23 新增,2026-04-24 扩展): 禁止在各文件中重复定义以下常量/函数,统一在
scripts/cloud_sea_shared.py中定义(唯一真相源):
- 数据:
PEAK_INFO/PEAK_ELEVATIONS/FOG_TYPES/FOG_COMBO_BONUS/FACTOR_WEIGHTS/FACTOR_WEIGHT_VALUES- 雾型映射:
FOG_MECHANISM_MAP/FOG_BEST_TIME_MAP/FOG_ICONS/FOG_STARS- 函数:
calc_fog_type()/estimate_transparency()/prob_class()/diff_class()/fog_mechanism()/fog_best_time()/fog_icon()/fog_stars()- 配置:
DEFAULT_EQUIP_ITEMS
模板系统:两套并存,均为纯占位符模板。
- v2(
report-template.html):35占位符,含雾型诊断、12因子、透明度等,由scripts/report_gen.py驱动(推荐)。- v3(
report-template-v3.html):11占位符,深色科技风简洁设计,由assets/_build_html_v3.py驱动。_build_html.py已废弃(2026-04-23 删除)。
雾型基础分和组合加分的权威来源是
references/fog-types.mdscoring-standards.md中的雾型矩阵引用 fog-types.md,不单独定义数值。模板系统:
report-template.html是纯占位符模板,不含硬编码数据。 生成器(scripts/report_gen.py或assets/_build_html_v3.py读取模板并填充{{PLACEHOLDER}}占位符。 占位符清单见模板文件顶部 HTML 注释。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章