prop/lib/microwaveprop/workers
Graham McIntire 29fef2afed Add ERA5 reanalysis and RTMA data sources
ERA5 (Copernicus CDS API):
- Era5Profile schema matching HRRR profile structure for interop
- Era5Client with async job submission, polling, GRIB2 download
- Era5FetchWorker (Oban queue: era5, max_attempts: 5)
- Unified lookup: Weather.best_profile_for_contact/1 tries HRRR
  first, falls back to ERA5 for pre-2014 contacts

RTMA (NOAA S3, 2.5km/15-min):
- RtmaObservation schema for surface-only fields
- RtmaClient with byte-range GRIB2 requests (same pattern as HRRR)
- RtmaFetchWorker (Oban queue: rtma, max_attempts: 10)
- Weather.find_nearest_rtma/3 for surface condition lookup

Both queues added to production Oban config (2 workers each).
2026-04-07 12:04:19 -05:00
..
asos_adjustment_worker.ex Database performance fixes and async backfill enqueue 2026-04-04 19:19:18 -05:00
backfill_enqueue_worker.ex Add periodic enrichment backfill cron and terrain reconciliation 2026-04-07 07:37:08 -05:00
contact_weather_enqueue_worker.ex Add type filter to backfill enqueue 2026-04-06 11:42:26 -05:00
era5_fetch_worker.ex Add ERA5 reanalysis and RTMA data sources 2026-04-07 12:04:19 -05:00
hrrr_fetch_worker.ex Show dead tuple counts on backfill dashboard, fix table visibility during vacuum 2026-04-04 10:45:06 -05:00
iemre_fetch_worker.ex Store stub records on empty weather fetches to prevent infinite backfill retries 2026-04-06 16:10:28 -05:00
propagation_grid_worker.ex Broadcast weather:updated PubSub after HRRR profiles stored 2026-04-03 15:10:16 -05:00
rtma_fetch_worker.ex Add ERA5 reanalysis and RTMA data sources 2026-04-07 12:04:19 -05:00
solar_index_worker.ex Database performance fixes and async backfill enqueue 2026-04-04 19:19:18 -05:00
terrain_profile_worker.ex Mark terrain status complete when profile already exists 2026-04-06 16:54:23 -05:00
weather_fetch_worker.ex Store stub records on empty weather fetches to prevent infinite backfill retries 2026-04-06 16:10:28 -05:00