prop/rust/prop_grid_rs/src
Graham McIntire 3d214f60f0
fix(hrdps): parse wgrib2 grid_template=1 rotated-pole output
Every HRDPS chain step failed at decode with "could not parse nx×ny
from wgrib2 -grid output", so no .hrdps.prop or .hrdps.sgrid artifact
was ever produced and the Canadian half of the weather overlay was
empty.

parse_wgrib2_grid only handled the verbose grid_template=10 shape
(Rotated Lat/lon Grid:, LatFirst:, Di:, South Pole Location:). The
wgrib2 3.8.0 binary in the pipeline image actually emits the compact
grid_template=1 shape for MSC HRDPS files:

    rotated lat-lon grid:(2540 x 1290) units 1e-06 ...
    lat -12.302501 to 16.700001 by 0.022500
    lon 345.178780 to 42.306283 by 0.022500 #points=3276600
    south pole lat=-36.088520 lon=245.305142 angle of rot=0.000000

Accept both, keeping the strict-by-default behaviour so a real MSC grid
change still surfaces as an error. Anisotropic grids are rejected
outright because RotatedPoleParams carries a single isotropic step that
geo_to_rotated applies to both axes.

Test uses the verbatim -grid output captured from the production pod.
2026-08-05 17:33:39 -05:00
..
bin perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
band_config.rs fix(propagation): 7 pipeline bugs + validation harnesses + model improvements 2026-08-01 19:28:41 -05:00
commercial.rs fix(commercial): decode commercial_links.id as Uuid, not i64 2026-04-20 09:21:10 -05:00
db.rs fix(propagation): 7 pipeline bugs + validation harnesses + model improvements 2026-08-01 19:28:41 -05:00
decoder.rs prop-pipeline: .sgrid dense scalars, HRDPS rotated-pole decode-once, memory trim 2026-08-01 09:11:59 -05:00
duct.rs style(rust): apply cargo fmt across prop_grid_rs 2026-04-20 13:20:22 -05:00
fetcher.rs perf(grid-rs): drop legacy .mp.gz write, parallelize decodes, overlap fetch+decode, cap retries 2026-08-01 12:48:01 -05:00
field_grid.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
grid.rs prop-pipeline: .sgrid dense scalars, HRDPS rotated-pole decode-once, memory trim 2026-08-01 09:11:59 -05:00
hrdps_fetcher.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
hrrr_points.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
lib.rs prop-pipeline: .sgrid dense scalars, HRDPS rotated-pole decode-once, memory trim 2026-08-01 09:11:59 -05:00
metrics.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
native_duct.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
nexrad.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
pgrid.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
pipeline.rs fix(propagation): 7 pipeline bugs + validation harnesses + model improvements 2026-08-01 19:28:41 -05:00
planes.rs perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00
region.rs fix: April 2026 codebase review — address 13 bugs across propagation chain 2026-04-25 10:52:51 -05:00
rotated_pole.rs fix(hrdps): parse wgrib2 grid_template=1 rotated-pole output 2026-08-05 17:33:39 -05:00
scorer.rs fix(propagation): 7 pipeline bugs + validation harnesses + model improvements 2026-08-01 19:28:41 -05:00
scores_file.rs prop-pipeline: .sgrid dense scalars, HRDPS rotated-pole decode-once, memory trim 2026-08-01 09:11:59 -05:00
sgrid.rs prop-pipeline: .sgrid dense scalars, HRDPS rotated-pole decode-once, memory trim 2026-08-01 09:11:59 -05:00
sounding_params.rs feat: extend HRRR forecast horizon from 18h to 48h 2026-06-10 11:36:58 -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 perf(grid-rs): dense grid, fused scoring pass, and columnar .pgrid profiles 2026-08-01 08:23:36 -05:00