Skip to content

Quick Start

Understand the data shape in five minutes and run your first parsing example.

Three Core Concepts

ConceptWhereDescription
Sitefarm_idOne wind farm / PV plant / monitoring point, e.g. HuaR_093
Model run (issue)File name {yyyyMMddHH} (UTC)The initialization time of one NWP run; each run delivers one full file
Valid timedate_time (Beijing time)The forecast moment of each row, one point per 15 minutes, +0h ~ +360h

Step 1: Get the Data

Step 2: Parse the CSV

python
import pandas as pd

df = pd.read_csv("weatherforecast_102.95839-36.35208_2026082712.csv")

# Unit conversions (see Usage Notes)
df["t2m_c"]  = df["t2m"] - 273.15        # K → ℃
df["sp_hpa"] = df["sp"] / 100            # Pa → hPa

# Accumulated radiation → 15-min mean irradiance (W/m²)
df["ghi_wm2"] = df["tr"].diff() / 900

# Clip cloud fractions to [0, 1] (interpolation may slightly exceed bounds)
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())

Output (excerpt):

              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

Step 3: Verify the Data

The sample has 1441 rows, zero missing values and strictly regular intervals — machine-checkable:

python
assert len(df) == 1441
assert df["date_time"].is_monotonic_increasing
assert df.notna().all().all()          # missing values are empty strings; none in this sample

Next Steps

WeatherFine Data · Site-level NWP data service