ArWen 2.4.1
2.4.0 was tagged and never published: its own test job refused it on two CLI tests that asserted the exit codes this release deliberately changed. Nothing reached PyPI. 2.4.1 carries everything 2.4.0 built, plus that fix.
New:
- European radar reaches the product.
gpuwm obs radardecodes an ODIM polar volume into the sweeps pack the existing reader accepts, reports per sweep Nyquist and its provenance, and superobs it onto a model domain for the LETKF adapter. No Rust toolchain and no source checkout. - The frozen European radar site table carries an antenna altitude for all 136 sites, read out of the volumes themselves. It refuses a null rather than substituting zero.
- Split file national volumes assemble.
gpuwm obs radar pack --dirbuilds one volume from per elevation files, and refuses a directory holding two nominal times without--stamp. gpuwm obsis the door onto every observation front door: MRMS, Stage-IV, ASOS/METAR, GOES ABI, the European composite and European polar volumes. Baregpuwm obsprints where each binary resolved.gpuwm certifyrefuses an empty kernel manifest and NVRTC compile drift.
Fixed:
- The two CLI tests that refused 2.4.0 declare the capability estate they are about instead of measuring the runner's. The publish workflow's own test list is a pre tag gate now, run with no GPU extra installed.
gpuwm doctorreports every extra the packaging declares, exercises every claim it makes, saysuntestedwhere it cannot exercise something, and means its exit code.- Refusals fire at the front door, before expensive work, and name remedies that exist.
gpuwm go,run,render,run-plan --probeand both prepared runners read one capability registry. - No remedy names an extra that installs nothing. scipy is a base dependency, so the messages that sent readers to
gpuwm[obs]andgpuwm[dealias]name the package instead. - The mapped and 20CRv3 GRIB2 routes resolve their tools through the shared artifact ladder instead of shelling
cargo buildinto a directory no wheel has. - scipy, pyshp, huggingface_hub and h5py are declared where they are used, and the parity between what the wheel imports and what it declares is a gate.
Known issues:
- European radar observations are assimilated and land in the right place with the right footprint, but the analysis magnitude is not yet validated. The ensemble is constructed rather than cycled: mean(d^2)/(spread^2+sigma_o^2) is 9.6, so the size of the increment is not a defensible analysis. Placement is proven on three real volumes: 97.8 percent of the increment within 200 km of the radar, 100 percent within 215 km, all 7,475 radial velocity observations in the solve.
- Reflectivity and clear air assimilation are unexercised on the European route. There is no host reflectivity operator at
mp_physics=10. - A locally built wheel declares no bridge platforms, because pins are generated at release time. Use the published artifact.
Full detail: CHANGELOG.md