wind_speed_10m_proxy, vertical = station average
(km/h). Axes are fixed at 0–30 km/h; pairs outside the square are
not drawn. Grey dashed diagonal is y = x; orange line is
measured ≈ m × forecast with
m = Σ(meas)/Σ(fcst) over fit-window archive hours
(3–30 km/h √(obs²+fcst²); not fit to dots in the box).
wind_gusts_10m, vertical =
station wind_gust_high (km/h). Axes are fixed at 0–40
km/h; pairs outside the square are not drawn. Grey dashed diagonal
is y = x; orange line is measured ≈ m × forecast with
m = Σ(meas)/Σ(fcst) over archive hours where √(obs² +
fcst²) is between 3 and 30 km/h. WU gust dots may use display
jitter only.
wind_dir_deg and forecast
wind_direction_10m, plus a measured speed (station
gust if present, otherwise mean wind). Each dot: angle =
signed
Δ = station − forecast (wind-from °) relative to
forecast — top marks forecast direction (Δ≈0°);
right / left = clockwise / counter-clockwise from forecast (+90°
/ −90°); bottom = opposite (±180°). Distance from centre = that
hour’s measured speed (km/h); radius uses a
fixed scale 0–40 km/h (outer ring = 40;
intermediate rings 10, 20, 30). Speeds above 40 km/h sit on the
outer ring. Numeric labels along Δ = +90°. Dots use the same
fill as the station mean/gust scatters above.
How to read these plots
Archive alignment: observation CSVs and model
valid_time_utc use hourly UTC bins. Newest model run wins
per hour when several archives overlap. Use
Compare to above to switch between HRDPS 1 km, HRDPS
2.5 km, and HRRR archived forecasts at this coordinate. HRDPS
mean-wind pairs use valid hours at or after
2026-06-02T00:00:00Z (windgram-aligned
wind_speed_10m_proxy; earlier archive rows are kept but
excluded from these plots).