Version 1.0#
The 1.0 demregpy release focuses on performance and documentation.
The solver is 4–7x faster, and the documentation has been reorganised into focused gallery examples.
Performance#
Typical runs are 4–7x faster than before, depending on input shape and solve settings.
This makes larger maps, DEMograms, and other batch workflows practical. I get ~100k DEMs per second on my home desktop.
Dependency Updates#
demregpy now targets Python 3.12+, NumPy 2+, and treats Matplotlib as a core dependency.
Solver and API Improvements#
demregpy.dn2dem() now accepts up to three leading axes (channel-last), so stacks such as (ntime, nx, ny, nf) can be inverted directly.
Per-filter gloci masks and broadcasting of a single dem_norm0 curve across larger inputs are now supported.
Input validation is stricter: shape mismatches, invalid weighting inputs, and malformed response matrices raise explicit errors instead of failing silently.
New public helpers: demregpy.load_aia_response() (bundled AIA response files), demregpy.plotting.plot_dem() (1-D DEM plots), and demregpy.synthetic.synthesize_counts() (synthetic counts from a response matrix).
Documentation and Examples#
Documentation is now organised as focused gallery examples instead of a limited number of monolithic scripts, covering individual tasks: plotting a DEM curve, inspecting AIA responses, generating synthetic counts, and running inversions on synthetic or real data.