I am pleased to announce the release of healpy 1.19.0.
This release includes a large number of fixes and improvements, many of which were made possible by adopting an “agentic” workflow. As detailed in my recent blog post, I have been using AI coding agents to help triage and fix issues, allowing us to close old bugs and improve the codebase significantly.
You can install the new version from PyPI:
pip install healpy==1.19.0Or from conda-forge:
conda install -c conda-forge healpyBreaking Change in blm_gauss
This release includes one breaking change that users should be aware of.
The blm_gauss() function has been updated to use the l(l+1) formula, making it consistent with gauss_beam() and the standard definition from Challinor et al. 2000 (astro-ph/0008228). Previously, it used the l^2 formula from the LevelS Beam package.
Impact: This change affects the computed spherical harmonic coefficients for Gaussian beams. If you rely on the exact values produced by blm_gauss() for precise beam modeling, you should check if this change affects your results. The new implementation is more accurate and consistent with other tools in the ecosystem.
Summary of Changes
Here is a summary of the key changes in this release:
- Projections and Plotting:
- Fixed
projscatter,projplot, andprojtextto only draw on the current axes instead of all subplots. - Fixed the Lambert projection in
projviewwhich was displaying the lower half of the sky incorrectly. - Added half-sky plotting support for the Lambert projection via the
latraparameter inprojview. - Fixed DPI and font size issues in
visufuncandnewvisufunc. Hard-coded font sizes were replaced with relative values (‘large’, ‘medium’) that scale with DPI, andprojviewnow supports adpiparameter.
- Fixed
- Pixel and Harmonic Operations:
- Added support for automatically adjusting latitudes within the [-90, 90] range in
ang2pix. - Implemented
NESTEDordering support inquery_strip. pixwinnow loads pixel window functions from a local datapath or downloads and caches them usingastropy, similar to how pixel weights are handled.- Fixed a
TypeErrorinalm2mapandalm2map_der1when usingcomplex64input arrays.
- Added support for automatically adjusting latitudes within the [-90, 90] range in
- I/O and Dependencies:
- Other Improvements:
dist2holesnow allows ignoring small mask holes via pixel- and area-based thresholds.- Declared support for Python 3.14 in packaging and wheels.
- CI improvements: utilizing Matplotlib’s bundled freetype for Linux wheels, simplifying testing on musllinux.
For a full list of changes, please refer to the CHANGELOG.