- 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. |
||
|---|---|---|
| .. | ||
| fixtures | ||
| microwaveprop | ||
| microwaveprop_web | ||
| mix/tasks | ||
| support | ||
| test_helper.exs | ||