Usage Notes
Seven rules to read before integration — all verified on the sample data.
Time Zones
File contents (date_time) are Beijing time; the file-name issue time is UTC — an 8-hour difference. See Time Conventions.
Temperature Units
t2m is Kelvin; using it directly as Celsius introduces a 273.15 bias:
df["t2m_c"] = df["t2m"] - 273.15Pressure Units
sp is in pascals (Pa); business commonly uses hectopascals (hPa):
df["sp_hpa"] = df["sp"] / 100Solar Radiation Accumulation
You must difference the accumulated values to obtain per-interval irradiance — never use them as instantaneous values:
W/m² = (accumulated end − accumulated start) ÷ interval seconds # ÷ 900 for 15-minute steps- Nighttime values plateau and can indicate sunrise / sunset periods;
- Switch between both conventions visually on the Live Demo page.
rr Is Not Rainfall
rr is reflected radiation (surface-reflected shortwave), not precipitation — do not ingest it as a rain field. In the sample it satisfies rr ≈ 0.216 × tr, usable as a data check.
Cloud Cover Out of Bounds
Cloud fractions are 0-1 (not percentages); grid interpolation may cause slight out-of-range values (sample observed −0.18 to 1.13). Recommended:
df[["lcc", "mcc", "hcc", "tcc"]] = df[["lcc", "mcc", "hcc", "tcc"]].clip(0, 1)Full Replacement on New Files
When a new run's file arrives it should fully replace the previous run's data to avoid mixing issue times. Partition or version by farm_id + issue for idempotent ingestion.
Appendix: Self-check List
| Check | Expected |
|---|---|
| Row count | 1441 (15 days × 96 points/day, both endpoints included) |
| Column count | 19, order per the File Format page |
| Time intervals | Strictly regular 15 minutes, no gaps or duplicates |
| Missing | Empty string denotes missing (sample verified: none) |
| Radiation monotonicity | dr / sr / rr / tr non-decreasing over time |
| Radiation consistency | rr ≈ 0.216 × tr; dr + sr ≈ 1.21 × tr |
