Skip to main content

Polypix

Fast HEALPix coverage for convex footprints on the sphere.

PyPI Python 3.12+ License Tests Docs Benchmarks

Documentation | Changelog | PyPI | Repository | Issues

Polypix returns the HEALPix cells whose centers fall inside convex footprints on the unit sphere. It is built for coverage simulations and indexing pipelines where footprints are already valid spherical geometry and throughput matters.

Typical inputs are sensor footprints, beam contours, access regions, and swath edges from satellite, aerial, astronomy, or other spherical-domain simulations. Use Polypix when you want deterministic center-sampled coverage for convex regions. It is not a fit for holes, non-convex footprints, planar geometry semantics, conservative overlap coverage, or generating footprints from orbit, attitude, sensor, or beam models.

Install

python -m pip install polypix

Published wheels support CPython 3.12 and newer on Linux x86-64 and ARM64, macOS 11 or newer on Intel and Apple Silicon, and Windows x86-64. NumPy is the only runtime dependency.

Quick Start

import math

import numpy as np
import polypix as px


def lonlat_to_xyz(lon_deg, lat_deg):
    lon = math.radians(lon_deg)
    lat = math.radians(lat_deg)
    cos_lat = math.cos(lat)
    return cos_lat * math.cos(lon), cos_lat * math.sin(lon), math.sin(lat)


footprint = np.asarray(
    [
        lonlat_to_xyz(-5.0, -5.0),
        lonlat_to_xyz(12.0, -4.0),
        lonlat_to_xyz(10.0, 9.0),
        lonlat_to_xyz(-6.0, 7.0),
    ],
    dtype=np.float64,
)

coverage = px.cover_footprint(footprint, resolution=8)
center_vectors = px.centers(coverage.cells, coverage.resolution)
corner_vectors = px.boundaries(coverage.cells[:3], coverage.resolution)

coverage.cells contains standard fixed-resolution HEALPix RING indices as uint64; coverage.offsets divides the flat array into one segment per input footprint. Geometry helpers return body-centered unit vectors, never longitude/latitude or datum-specific coordinates.

Supported Inputs

Polypix supports:

  • convex spherical footprints with great-circle edges,
  • finite body-centered vectors as (x, y, z), normalized by Polypix,
  • dense footprint batches as arrays with shape (footprints, vertices, 3),
  • ragged batches as sequences of (vertices, 3) arrays,
  • strips from sampled left and right edge vectors.

Vertex orientation does not matter; Polypix normalizes it internally. A repeated final vertex is accepted as a closed-ring marker.

Coverage Rule

Polypix uses center-in-footprint coverage: a HEALPix cell is included when its center lies inside the footprint or on its boundary. Boundary-touching cells whose centers fall outside the footprint are excluded.

Documentation

The public documentation is published at https://jochimmaene.github.io/polypix/:

Contributor workflows, release notes, and local docs authoring live in the development guide instead of this user-facing overview.

License

Polypix is distributed under the Apache License 2.0. See THIRD_PARTY_NOTICES.md for dependency and embedded-code notices.

Metadata

Release files for polypix 0.3.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 polypix 0.3.0
File Size Uploaded Provenance
polypix-0.3.0.tar.gz 30.4 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for polypix 0.3.0
File
polypix-0.3.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
polypix-0.3.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
polypix-0.3.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details
polypix-0.3.0-cp312-abi3-macosx_11_0_x86_64.whl CPython 3.12 abi3 macOS 11.0+ x86-64 Details
polypix-0.3.0-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details

Total release size: 1.6 MB

Release files / polypix-0.3.0.tar.gz

Download URL polypix-0.3.0.tar.gz
Size 30.4 kB
Tags Source
SHA-256 checksum
How to use checksums
0eed15c1ceb3dafe750f5065f109da406f7f30d257e7d94ad6e062123503a705
BLAKE2b-256 checksum
How to use checksums
2bc6448feae576d06258f40038b7a55c0bd3c22f8f449435560294cbbfc217be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / polypix-0.3.0-cp312-abi3-win_amd64.whl

Download URL polypix-0.3.0-cp312-abi3-win_amd64.whl
Size 260.9 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
a90efd09378a4f01d2025780b25e0350c94568265d164500872ad27815fe183a
BLAKE2b-256 checksum
How to use checksums
46e9a4fe27a6ac78d22b040d448cd534fd023f38ad36abe26dee20ba09ce9e08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / polypix-0.3.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL polypix-0.3.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 354.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
1b2b7f1ed2d5d63bf94c1297c61c34e46c975278f1388ad8aa94e4f68c9097d8
BLAKE2b-256 checksum
How to use checksums
806c1d436dcd08d4deeb6b6b1c4c47f99b78fd5ea04394be61481c3807d9eeed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / polypix-0.3.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL polypix-0.3.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 337.6 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
2ee982e5eb15b207c2fab046bfd4c3df1680f8f2152bec4d9ac7f248dd049949
BLAKE2b-256 checksum
How to use checksums
19438130eb233d527bed10b1e7db685d39a739e3454f801d26f30566503d2d60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / polypix-0.3.0-cp312-abi3-macosx_11_0_x86_64.whl

Download URL polypix-0.3.0-cp312-abi3-macosx_11_0_x86_64.whl
Size 326.8 kB
Tags CPython 3.12 abi3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
6751285f97f31be25d6e75db6716491edbbc63c8891ce89081f5410f060f357e
BLAKE2b-256 checksum
How to use checksums
d1bdcca010ee29ca31698349016dc6f3ebeb6436c0a396bd9e8b3d80de60ad4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / polypix-0.3.0-cp312-abi3-macosx_11_0_arm64.whl

Download URL polypix-0.3.0-cp312-abi3-macosx_11_0_arm64.whl
Size 312.6 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d1cf25a402401b32a381ec8ff85825757e5ac3408eb99873da68038c04cd9f79
BLAKE2b-256 checksum
How to use checksums
eae81b2861e62894cd5679ad444ed7abae355c740dbd1b54e0da5e89fc9b1a1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Security for polypix 0.3.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.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for polypix-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

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.

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