Skip to content

ArWen 2.4.1

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 15 Aug 21:34
· 4 commits to main since this release

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 radar decodes 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 --dir builds one volume from per elevation files, and refuses a directory holding two nominal times without --stamp.
  • gpuwm obs is the door onto every observation front door: MRMS, Stage-IV, ASOS/METAR, GOES ABI, the European composite and European polar volumes. Bare gpuwm obs prints where each binary resolved.
  • gpuwm certify refuses 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 doctor reports every extra the packaging declares, exercises every claim it makes, says untested where 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 --probe and 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] and gpuwm[dealias] name the package instead.
  • The mapped and 20CRv3 GRIB2 routes resolve their tools through the shared artifact ladder instead of shelling cargo build into 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