快速开始
五分钟了解数据形态并跑通第一个解析示例。
三个核心概念
| 概念 | 字段/位置 | 说明 |
|---|---|---|
| 场站 | farm_id | 一个风电场 / 光伏电站 / 监测点为一个场站,如 HuaR_093 |
| 起报时次 | 文件名 {yyyyMMddHH}(UTC) | 一次数值预报运行的出发时刻,每次起报交付一份全量文件 |
| 有效时间 | date_time(北京时间) | 每行数据对应的预报时刻,15 分钟一个点,+0h ~ +360h |
第一步:拿到数据
第二步:解析 CSV
python
import pandas as pd
df = pd.read_csv("weatherforecast_102.95839-36.35208_2026082712.csv")
# 单位换算(详见「使用注意事项」)
df["t2m_c"] = df["t2m"] - 273.15 # K → ℃
df["sp_hpa"] = df["sp"] / 100 # Pa → hPa
# 辐射累积量 → 15 分钟平均辐照度(W/m²)
df["ghi_wm2"] = df["tr"].diff() / 900
# 云量截断到 [0, 1](网格插值可能出现轻微越界)
for c in ["lcc", "mcc", "hcc", "tcc"]:
df[c] = df[c].clip(0, 1)
print(df[["date_time", "spd100", "t2m_c", "ghi_wm2", "tcc"]].head())输出(节选):
date_time spd100 t2m_c ghi_wm2 tcc
0 2026-08-27_20:00:00 2.83 15.93 NaN 1.0
1 2026-08-27_20:15:00 3.19 15.67 0.0 1.0
2 2026-08-27_20:30:00 3.29 15.42 0.1 1.0第三步:核对数据
样例全表 1441 行零缺失、严格等间隔,可程序化自检:
python
assert len(df) == 1441
assert df["date_time"].is_monotonic_increasing
assert df.notna().all().all() # 约定缺失以空字符串表示,本样例无缺失