prop/lib/microwaveprop/weather
Graham McIntire 0537a1831b
feat(gefs): ingest worker and grid-profile extraction
- GefsClient.build_profile/1: converts raw wgrib2 output into the
  scorer-shaped profile, deriving Td from RH via Magnus at both the
  surface and each pressure level
- GefsClient.fetch_grid_profiles/3: downloads the idx sidecar from
  NOMADS, byte-ranges only the surface messages, hands the slim
  GRIB2 binary to wgrib2 -lola for bilinear regridding from 0.5°
  onto the CONUS 0.125° grid
- GefsFetchWorker: one Oban job per (run_time, forecast_hour),
  upserts into gefs_profiles and runs SoundingParams.derive so the
  same refractivity/ducting metrics flow through

Oban gets a new :gefs queue (2 slots dev/config, 1 slot per prod
pod). Test env gets a gefs_req_options Req.Test stub slot so future
integration tests can drive the full fetch path. No cron wiring or
scorer integration yet — that's Step 3.
2026-04-18 14:36:03 -05:00
..
grib2 fix(wgrib2): account for 8-byte Fortran record overhead between messages 2026-04-16 14:58:55 -05:00
frontal_analysis.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
gefs_client.ex feat(gefs): ingest worker and grid-profile extraction 2026-04-18 14:36:03 -05:00
gefs_profile.ex feat(gefs): scaffold extended-horizon forecast ingestion 2026-04-18 14:28:44 -05:00
grid_cache.ex Fix /weather 500 on cold cache, untrack k8s secret 2026-04-12 13:56:59 -05:00
hrrr_client.ex Split HRRR pressure levels for grid hot path vs per-contact profiles 2026-04-15 08:19:33 -05:00
hrrr_climatology.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
hrrr_native_client.ex Fix credo warnings: struct specs, length/1, and test patterns 2026-04-12 10:26:53 -05:00
hrrr_native_profile.ex Extend skew-T plot to cover the full troposphere 2026-04-14 17:25:58 -05:00
hrrr_profile.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
iem_client.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
iemre_observation.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
metar_5min_observation.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
mrms_cache.ex Add MRMS rain mosaic, fix beacons crash, fix UTC clock flash 2026-04-12 14:49:20 -05:00
mrms_client.ex test: cover mrms_cache + mrms_fetch_worker, add Req.Test seam 2026-04-16 14:58:54 -05:00
narr_client.ex fix(narr): handle cdo 2.5.1 mixed name/code output 2026-04-16 15:14:51 -05:00
narr_profile.ex Rename ERA5 → NARR across the codebase 2026-04-16 09:22:23 -05:00
ncei_metar_client.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
nexrad_cache.ex Add more caching to make the map feel instant 2026-04-12 12:26:25 -05:00
nexrad_client.ex feat(rainscatter): classify QSO propagation mechanism from common-volume radar 2026-04-17 15:57:59 -05:00
nexrad_observation.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
rtma_client.ex test: cover rtma_client + rtma_fetch_worker, add Req.Test seam 2026-04-16 14:58:54 -05:00
rtma_observation.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
solar_client.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
solar_index.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
sounding.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
sounding_params.ex Fix credo warnings: struct specs, length/1, and test patterns 2026-04-12 10:26:53 -05:00
station.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
surface_observation.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
theta_e.ex Guard against zero specific humidity in theta-e computation 2026-04-11 12:52:32 -05:00
uwyo_sounding_client.ex Ingest Canadian radiosondes via UWYO + plans for RDPS/HRDPS 2026-04-13 09:14:34 -05:00
weather_layers.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00