thermograph/data
Emi Griffith b4d8d67825 Add Meteostat gust supplier for the gust-less backup sources
NASA POWER (history) and MET Norway (forecast) carry no wind gusts, but gust is
a graded metric. This adds data/meteostat.py, which finds the nearest Meteostat
station to a cell and reads its daily peak gust (wpgt) from the keyless gzipped
bulk endpoints, filling the gust column on the NASA POWER history frame. Where no
station is within ~100 km it estimates from sustained wind (wind * GUST_FACTOR).

Bulk files (station list + per-station daily) are cached on disk so steady-state
network IO is near zero, and any lookup/fetch failure degrades to pure estimation
so a history fetch never fails. A constant estimate factor makes an estimated
gust redundant with wind, so real signal comes only where a station backs it.

Activates once NASA POWER becomes the primary history source; Open-Meteo already
carries its own gusts. New history_gust / meteostat_stations metrics phases map
to the meteostat source.
2026-07-22 21:39:09 -07:00
..
__init__.py Split the backend into domain packages (#217) 2026-07-20 05:31:03 +00:00
cities.py Split the backend into domain packages (#217) 2026-07-20 05:31:03 +00:00
city_events.py Split the backend into domain packages (#217) 2026-07-20 05:31:03 +00:00
climate.py Add Meteostat gust supplier for the gust-less backup sources 2026-07-22 21:39:09 -07:00
climate_store.py Repo-split Stage 1: sever web/'s reverse imports (#9) 2026-07-21 16:09:35 +00:00
grading.py Port e77460e Plain-language weather insight sentences (backend half) from monorepo (drift reconciliation) 2026-07-22 12:08:24 -07:00
grid.py Split the backend into domain packages (#217) 2026-07-20 05:31:03 +00:00
meteostat.py Add Meteostat gust supplier for the gust-less backup sources 2026-07-22 21:39:09 -07:00
places.py Move forward geocoding off Open-Meteo to local index + Nominatim 2026-07-22 21:29:26 -07:00
scoring.py Score every metric equally in the overall total (#218) 2026-07-20 05:45:57 +00:00
store.py Containerize the app and move the databases to PostgreSQL 18 (#220) 2026-07-20 06:28:23 +00:00