Push station observations into the assimilation window
Operators with their own weather stations (anemometer at the kite school, snow probe at the resort, river-gauge) can blend their observations into the engine's short-horizon forecast — improving skill for the 0–6h window where local data beats global NWP.
Pro plan and above. Observations are tenant-private — submitted readings improve scoring for nearby spots in YOUR tenant's traffic; they never blend into the public catalog.
Why submit observations
Global numerical weather prediction (OpenMeteo, Stormglass) resolves at ~10km. A kite school's apparent wind at the launch can differ from the model grid cell by several knots in either direction. Assimilation collapses that gap using optimal interpolation (3DVAR-style) over a 0-6h window. Your readings move the forecast toward observed reality; the further away the forecast horizon, the less your reading affects it.
Register a station
{
"name": "Tarifa Balneario anemometer",
"location": { lat: 36.013, lng: -5.604 },
"elevationM": 3,
"metadata": {
"sensor": "Davis Vantage Pro 2",
"height_above_ground_m": 10
}
}Returns a station id. List your stations with GET /v1/observations/stations; update metadata with PATCH /v1/observations/stations/:id.
Push an observation
{
"stationId": "s_a3f2...",
"observedAt": "2026-06-25T14:00:00Z",
"values": {
"wind_speed_ms": 8.2,
"wind_dir_deg": 285,
"gust_speed_ms": 11.7,
"temp_c": 22.1
}
}Returns 202 immediately. The observation enters a buffer + is assimilated on the next scheduled run (typically every 15 minutes, configurable per tenant).
Assimilation window
Observations only affect forecasts in the 0–6h horizon. Beyond 6h the atmospheric error covariance decay drops their influence weight to zero — at that horizon the global model dominates anyway. Stale observations (>1h old at assimilation time) are downweighted exponentially.
Quality control
Pass qualityFlags to flag readings you don't trust (sensor malfunction, calibration drift, etc.) and the engine excludes them from assimilation. Use this to fence off bad readings without losing the time series entirely.