HealSparse: A sparse implementation of HEALPix

HealSparse is a sparse implementation of HEALPix in Python, written for the Rubin Observatory Legacy Survey of Space and Time Dark Energy Science Collaboration (DESC). HealSparse is a pure Python library that sits on top of numpy and healpy and is designed to avoid storing full sky maps in case of partial coverage, including easy reading of sub-maps. This reduces the overall memory footprint allowing maps to be rendered at arcsecond resolution while keeping the familiarity and power of healpy.

HealSparse expands on healpy and straight HEALPix maps by allowing maps of different data types, including 32- and 64-bit floats; 8-, 16-, 32-, and 64-bit integers; “wide bit masks” of arbitrary width (allowing hundreds of bits to be efficiently and conveniently stored); and numpy record arrays. Arithmetic operations between maps are supported, including sum, product, min/max, and and/or/xor bitwise operations for integer maps. In addition, there is general support for any numpy universal function.

HealSparse also includes a simple geometric primitive library, to render circles and convex polygons.

The code is hosted in GitHub. Please use the issue tracker to let us know about any problems or questions with the code.