prop/rust/prop_grid_rs/src
Graham McIntire d5726a89d5
feat(hrdps): scope to current-hour-only at 0.5° step
The HRDPS pipeline as written was unusable in production: each chain
step took ~5 hours (not 30-90s as the dev-bench claim) because every
`wgrib2 -lon` batch redundantly JPEG2000-decodes ~150 records. With 57
batches × 18 forecast hours, a single cycle would take days to drain.

The /weather Canadian view only needs the current hour, so the cheapest
fix is to stop seeding the rest of the chain entirely:

* Rust grid: HRDPS_STEP=0.5 (was 0.125) drops point count 16× to ~3.5k.
  Coarser cells than HRRR, but /weather gets visible Canadian coverage
  inside one chain step (~20 min) instead of never.
* GridTaskEnqueuer.seed_current_hour/2 inserts exactly one forecast row
  whose valid_time is closest to `now`. fh is clamped to 1..18 so the
  Rust F00Reserved branch never fires.
* HrdpsGridWorker switches to seed_current_hour and drops the
  6-hour-cycle cron in favor of HH:35 hourly fires. Reseeds are
  idempotent on the 4-column unique key.

Also fixes a pre-existing credo "nested too deep" in
ScalarFile.read_point by extracting lookup_in_chunk + hit_or_false
helpers — happened to be on the read path that surfaces this work, so
folding it into the same commit.
2026-04-30 10:36:00 -05:00
..
bin feat(rust/hrdps): prop-grid-rs HRDPS branch 2026-04-29 17:29:16 -05:00
band_config.rs fix(rust/scorer): sync recalibrated default weights with Elixir 2026-04-29 09:32:54 -05:00
commercial.rs fix(commercial): decode commercial_links.id as Uuid, not i64 2026-04-20 09:21:10 -05:00
db.rs feat(rust/hrdps): prop-grid-rs HRDPS branch 2026-04-29 17:29:16 -05:00
decoder.rs fix(hrdps): bump wgrib2 3.6.0 → 3.8.0 to fix HRDPS extraction crash 2026-04-30 08:32:37 -05:00
duct.rs style(rust): apply cargo fmt across prop_grid_rs 2026-04-20 13:20:22 -05:00
fetcher.rs fix(skewt): write profile files for f01..f18 forecast hours 2026-04-25 12:58:10 -05:00
grid.rs feat(hrdps): scope to current-hour-only at 0.5° step 2026-04-30 10:36:00 -05:00
hrdps_fetcher.rs feat(rust/hrdps): prop-grid-rs HRDPS branch 2026-04-29 17:29:16 -05:00
hrrr_points.rs fix: three more Rust/Elixir contract drift bugs on /map and /weather 2026-04-24 14:04:02 -05:00
lib.rs feat(rust/hrdps): prop-grid-rs HRDPS branch 2026-04-29 17:29:16 -05:00
metrics.rs style(rust): apply cargo fmt across prop_grid_rs 2026-04-20 13:20:22 -05:00
native_duct.rs fix(skewt): write profile files for f01..f18 forecast hours 2026-04-25 12:58:10 -05:00
nexrad.rs chore(rust): drop easily-inlined deps (anyhow, bytes, byteorder, num_cpus) 2026-04-24 12:13:25 -05:00
pipeline.rs fix(rust/hrdps): replace -lola full-grid extract with -lon point extract 2026-04-29 18:25:40 -05:00
profiles_file.rs fix: April 2026 codebase review — address 13 bugs across propagation chain 2026-04-25 10:52:51 -05:00
region.rs fix: April 2026 codebase review — address 13 bugs across propagation chain 2026-04-25 10:52:51 -05:00
scorer.rs feat(scorer): retire HPBL multiplier and native-duct 1.15× boost 2026-04-25 12:42:56 -05:00
scores_file.rs feat(rust/hrdps): prop-grid-rs HRDPS branch 2026-04-29 17:29:16 -05:00
sounding_params.rs fix: April 2026 codebase review — address 13 bugs across propagation chain 2026-04-25 10:52:51 -05:00
telemetry.rs chore(rust): drop OpenTelemetry stack to speed up cold builds 2026-04-24 09:11:43 -05:00
weather_scalar_file.rs feat(hrdps): /weather merges HRRR with HRDPS for north-of-CONUS cells 2026-04-29 17:36:03 -05:00