apac-nwp-forecast
收藏资源简介:
APAC NWP Forecast数据集是一个专为太阳能应用设计的分析就绪数值天气预报(NWP)数据集。它提供了亚太地区(纬度范围-44至46度,经度范围92至154度,覆盖日本、台湾、东南亚、澳大利亚及周边海域)的逐小时天气预报数据。数据集以Zarr立方体格式存储,每个气象模型对应一个持续增长的立方体,维度为初始时间×预报时效×纬度×经度,完整保留了模型网格(包括海洋单元格)。数据来源于Open-Meteo开放数据分发平台。数据集包含两个主要气象模型:日本气象厅(JMA)的`jma_msm`模型(分辨率约5公里)和德国气象局(DWD)的`dwd_icon`模型(分辨率约11公里)。每个模型立方体包含多个气象变量,如短波辐射(GHI)、直接辐射、漫射辐射、2米气温、2米相对湿度、10米风速、地表气压、降水量、云量(低/中/高)等,其中`dwd_icon`模型还包含雪深和降雪量变量。数据以原始数据类型(uint8/uint16/float32)存储,并采用分片结构以优化读取性能。该数据集旨在记录历史预报序列,适用于天气预报校正、模型融合机器学习等任务,尤其服务于太阳能发电预测和管理等应用场景。
数据集概述:APAC NWP Forecast — analysis-ready Zarr cube
该数据集提供亚太地区(纬度 -44 至 46,经度 92 至 154)的逐小时数值天气预报(NWP)预报,覆盖日本、台湾、东南亚、澳大利亚及周边海域。数据来自多个天气模型的每一次运行,并归档为分析就绪的 Zarr 立方体,专为太阳能应用(辐照度、温度、云量、风等)选配变量。
核心结构
每个模型存储为一个独立的 Zarr v3 立方体,维度为 run_init × lead_time × latitude × longitude。这是一个过去预报的记录,可用于预报修正或模型融合的机器学习任务。新的运行每日追加,run_init 轴预分配至 2027 年底,立方体会原地增长。完整模型网格被保留,包括海洋格点。
数据集家族
| 数据集 | 格式 | 角色 |
|---|---|---|
jimtseng/apac-nwp-forecast(本数据集) |
Zarr 立方体(Mode A,分片) | 分析就绪的银级 — 推荐使用 |
jimtseng/apac-nwp-forecast-raw |
每次运行一个 Parquet 文件 | 青铜级 — 每次运行的不可变捕获 |
jimtseng/apac-nwp-forecast-zip |
每次运行一个 .zarr.zip |
历史冷存档 |
覆盖范围
- 空间范围:涵盖整个亚太区域(纬度 −44° 至 46°N,经度 92° 至 154°E)
- 示例:
dwd_icon模型的全域总水平辐照度(GHI)图,以及jma_msm模型的日本区域云量和风速图。
模型信息
| 模型 | 提供方 | 分辨率 | 每日运行次数 | 预报时长 | 网格尺寸(含海洋) |
|---|---|---|---|---|---|
jma_msm |
日本气象厅(JMA) | 0.0625°×0.05°(约 5 公里) | 8 次(每 3 小时) | 00/12 UTC:78 小时;其他运行:39 小时 | 473×481,22.4–47.6°N · 120–150°E |
dwd_icon |
德国气象局(DWD) | 0.125°(约 11 公里) | 4 次 | 180 小时(7.5 天) | 721×497,−44–46°N · 92–154°E |
注意:
- 超过模型原生逐小时范围的预报值(如 ICON 超过 78 小时)由 Open-Meteo 从 3 小时间隔插值得到(辐射使用太阳几何感知的晴空指数,其他使用 Hermite 插值)。日总量可靠,但次 3 小时云量变异性被平滑。
- 预报时长依赖于运行(
jma_msm:00/12 UTC 可达 78 小时,其他运行仅 39 小时)。超出实际预报时长的槽位将返回缺失值哨兵(NaN 或掩码)。 - 海洋格点包含真实模型值。
elevation在海域为 0,可用于掩膜陆/海。
数据结构
每个 <model>_silver.zarr 是 Zarr v3 存储(Mode A格式):
- 维度:
(run_init, lead, latitude, longitude),其中lead是预报相对于run_init的小时数(valid_time = run_init + lead)。run_init维度随着新运行的追加而增长。 - 坐标:
run_init、lead、latitude、longitude,以及二维静态坐标elevation和location_id(维度为(latitude, longitude),仅存储一次)。 - 数据变量:每个天气变量是其自己的数组,使用原生数据类型(uint8 / uint16 / float32)。
- 分片:每次运行一个分片(
run_init=1 × 所有 lead × 整个网格),内部包含小块,使得点/序列读取访问少量字节,同时文件数量对 Hugging Face 友好。 slot_filled:(run_init,)的 int8 标记,1 表示该运行有数据,0 表示空未来槽位。
未写入(空或超出预报时长)的单元格读取为哨兵值(float 类型为 NaN,int 类型为掩码)。
变量模式
| 变量 | 类型 | 描述 |
|---|---|---|
shortwave_radiation_wattPerSquareMetre |
uint16 | 总水平辐照度(GHI),过去一小时的向后平均 |
direct_radiation_wattPerSquareMetre |
uint16 | 直接水平辐照度 |
diffuse_radiation_wattPerSquareMetre |
uint16 | 散射辐照度 |
direct_normal_irradiance_wattPerSquareMetre |
uint16 | 直接法向辐照度(DNI,太阳高度角 < 5° 时不稳定,使用前需过滤) |
temperature_2m_celsius |
float32 | 2 米空气温度 |
relative_humidity_2m_percentage |
uint8 | 2 米相对湿度 |
wind_speed_10m_metrePerSecond |
float32 | 10 米风速 |
surface_pressure_hectopascal |
float32 | 地表气压 |
precipitation_millimetre |
float32 | 小时降水量 |
cloud_cover_percentage(+ _low / _mid / _high) |
uint8 | 云量分层 |
snow_depth_metre |
float32 | 雪深(仅 dwd_icon) |
snowfall_water_equivalent_millimetre |
float32 | 小时降雪量,水当量(仅 dwd_icon) |
elevation |
float32 | 网格单元海拔(米);海域为 0 |
location_id |
int32 | 模型网格内的格点索引 |
各模型变量集:dwd_icon 有 15 个天气变量;jma_msm 有 13 个(无降雪变量,因为其上游源不提供)。最早的 dwd_icon 运行(2026-03-19/20/21)不包含降雪变量,这些槽位也为哨兵值。
整数列反映源量化(辐射步长 1 W/m²,云量/湿度为整数百分比);数值与浮点表示相同,是原始网格格点值(无海拔降尺度)。
使用示例
python import xarray as xr
直接从 Hugging Face 打开完整增长的立方体(惰性加载,仅读取访问的块)
ds = xr.open_zarr( "hf://datasets/jimtseng/apac-nwp-forecast/dwd_icon_silver.zarr", consolidated=True, )
仅选择实际有数据的运行(跳过空的未来槽位)
ds = ds.isel(run_init=(ds["slot_filled"] == 1))
一个点的时间序列:所有运行 × 所有预报时长,在单一格点
ts = ds["shortwave_radiation_wattPerSquareMetre"].sel( latitude=25.0, longitude=121.5, method="nearest" )
"所有在时间 T 有效的预报" 即对角线 run_init + lead == T
需要较新的 zarr>=3 和 huggingface_hub。hf:// 流式读取按需访问分片;对于大量使用,建议先下载立方体(或特定变量)到本地。
许可与引用
数据使用 CC BY 4.0 许可证——<a href="https://open-meteo.com/">Weather data by Open-Meteo.com</a>,基于 JMA(MSM)和 DWD(ICON)的开放数据。在重新分发或展示数据时请保留此出处。




