feat(engine): velocity and station wind observations - #74
scottjones wants to merge 3 commits into
Conversation
|
Exciting times! Gonna have the robots take a look. |
Add the engine half of wind: Level II radial velocity as set_product VEL, NDBC/METAR observations on wind_needed, and an HRRR 10 m speed field with set_wind_forecast. Radar stays polar; observations and the model overlay are separate state keys. Old UIs ignore the new keys. No pin bump.
The HRRR .idx byte offset is field 2, not field 1. CONUS 10 m U/V is Lambert template 30 with GRIB2 sign-magnitude scales. METAR wdir "VRB" used to fail the whole JSON list. Live NDBC, METAR, and HRRR now answer wind_needed.
3d21e14 to
89accf4
Compare
wesleygrimes
left a comment
There was a problem hiding this comment.
Thanks for this — and the branch is rebased onto current main now.
Product call: live observations yes, forecast no.
Keep windObs / wind_needed / NDBC + METAR. Those are real anemometer reports. Dots, stamped, not mixed into the sweep.
Drop the HRRR path. hrrr.rs, windField, set_wind_forecast, the HRRR fixture, and the DESIGN/CONTRIBUTING exception that allows a forecast. "No forecasts" stays the rule; I don't want a model overlay on the wire, even labeled.
VEL is a separate thing (live radar, not a forecast) — leave that as-is for this cut.
Sorry for the extra pass after you already built the overlay. The obs half is the part I want.
|
@scottjones above was AI posting on my behalf, but appreciate this! I do wanna discuss forecast stuff later on but for now would love to keep things focused on observations. |
Keep live observations (NDBC/METAR via wind_needed) and Level II velocity. Remove hrrr.rs, windField, set_wind_forecast, and the DESIGN.md exception. No forecasts on the wire.
|
Dropped the forecast path as requested. Gone: Still here: Engine tests pass on this cut. Happy to do forecast as its own conversation later. |
Engine-only — UI in a follow-up.
The engine can now serve two extra live layers on the existing v1 wire. Old clients ignore the new keys; the pin stays until you cut a binary.
Velocity (
set_productVEL). Same Level II volume as reflectivity. Super-res splits Doppler onto the next cut; we walk to that cut. Catalog keeps REF and VEL as separate rings. Units m/s, inbound/outbound palette.Stations (
wind_needed). NDBC buoys/C-MAN (lighthouses) plus METARs within 400 km of the centre. Observation time and network on each row. Speeds in m/s. Dots, not a filled field, not mixed into the sweep.Radar stays polar. Observations are a separate
windObskey with their own clock. No forecasts.Not in this PR: UI, pin bump, model/HRRR overlay (dropped per review).