Skip to main content

hpmoc: HEALPix Multi-Order Coordinate Partial Skymaps

HPMOC is an ultra high-performance, cross-platform toolset for working with multi-order coordinate (MOC) HEALPix_ images (i.e. images with multiple pixel resolutions). MOC images are used by the LIGO-Virgo-KAGRA collaboration, the Interplanerary Network and others to represent portions of the sky with variable resolution. By only including pixels in regions of interest, and only then at a resolution appropriate to how they were observed/calculated, it is possible to reduce storage and computation costs by several orders of magnitude.

HPMOC is the only library providing tools for loading partial/whole MOC skymaps (as well as standard HEALPix skymaps), taking spatial intersections, modifying resolution, plotting the skymaps, converting them to and from Astropy WCS projections, performing pointwise math, and generating PSF skymaps from point sources, all using algorithms that minimize memory, computation, and storage costs. It is based off of work on LLAMA, the world's first Gravitational Wave/High-Energy Neutrino low-latency search pipeline, which has been improved and refactored into this separate module.

If you use hpmoc in published research, we ask that you cite Stefan Countryman's thesis. hpmoc is introduced in section 4.5.13.

hpmoc is licensed under the terms of the GNU General Public License, version 2 or later

Installation

hpmoc has only a few dependencies, but they are large numerical/scientific libraries. You should therefore probably create a virtual environment of some sort before installing. The easiest and best way to do this at the moment is to use conda, which should come with an Anaconda distribution of Python:

conda create -n hpmoc
conda activate hpmoc

note that creating a new environment is optional and hpmoc can now be installed similar to any other python package.

With pip

If you just want to use hpmoc and don't need to modify the source code, you can install using pip:

pip install hpmoc

This should install all required dependencies for you.

Developers

If you want to install from source (to try the latest, unreleased version, or to make your own modifications, run tests, etc.), first clone the repository:

git clone https://github.com/markalab/hpmoc.git
cd hpmoc

Make sure the build tool, flit, is installed:

pip install flit

Then install an editable version of hpmoc with flit:

flit install --symlink

As with the pip installation method, this should install all requirements for you. You should now be able to import hpmoc. Note that you'll need to quit your python session (or restart the kernel in Jupyter) and reimport hpmoc before your changes to the source code take effect (which is true for any editable Python installation, FYI).

You can go ahead and run the tests with pytest (which should have been installed automatically by flit):

py.test --doctest-modules --cov=hpmoc

Metadata

Release files for hpmoc 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hpmoc 1.0.0
File Size Uploaded Provenance Actions
hpmoc-1.0.0.tar.gz 110.4 kB Without provenance Details for hpmoc-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for hpmoc 1.0.0
File Interpreter ABI Platform Actions
hpmoc-1.0.0-py3-none-any.whl Python 3 none any Details for hpmoc-1.0.0-py3-none-any.whl

Total release size: 217.8 kB

Release files / hpmoc-1.0.0.tar.gz

Download URL hpmoc-1.0.0.tar.gz
Size 110.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a1114c667818779b0278c034ae5c78ee5c6b044822d5a933f05b67ed3036976b
BLAKE2b-256 checksum
How to use checksums
561a5991651b469a491caa16db2c13f37817f1ef5c3982b2e1c34400c0b33cfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Release files / hpmoc-1.0.0-py3-none-any.whl

Download URL hpmoc-1.0.0-py3-none-any.whl
Size 107.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f8e9e1bc7fee740e5504440660d9040aefd93252595d58b99aa431873be28f0
BLAKE2b-256 checksum
How to use checksums
f2ca6699191ffa9ca45d44fbe8dfb900fb7b62eea5ff4eccf38a29c354dfaab2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Security for hpmoc 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page