Skip to main content

Fast HEALPix coverage for convex footprints on the sphere.

Project description

Polypix

Fast HEALPix coverage for convex footprints on the sphere.

PyPI Python 3.12+ License Tests Docs Benchmarks

Documentation | 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 Python 3.12 and newer on Linux x86_64 and macOS 11 or newer on Intel and Apple Silicon.

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)
centers = px.centers(coverage.cell_ids)
boundaries = px.boundaries(coverage.cell_ids[:3])

The returned cell IDs are packed uint64 tokens that include both the HEALPix resolution and the NESTED pixel index. Treat them as opaque IDs; use centers() or boundaries() when you need longitude/latitude geometry.

Supported Inputs

Polypix supports:

  • convex spherical footprints with great-circle edges,
  • unit-vector vertices as (x, y, z),
  • dense footprint batches as arrays with shape (footprints, vertices, 3),
  • swaths 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 only when its center lies inside the footprint. Boundary-touching cells whose centers fall outside the footprint are excluded.

Windows wheels are not published because healpix_cxx is not currently available as a conda-forge win-64 package.

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 GPL-3.0-or-later. This reflects the binary distribution relationship with HEALPix C++, which is GPL-2.0-or-later. See THIRD_PARTY_NOTICES.md for native dependency notices.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polypix-0.2.0.tar.gz (118.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

polypix-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

polypix-0.2.0-cp314-cp314-macosx_11_0_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

polypix-0.2.0-cp314-cp314-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

polypix-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

polypix-0.2.0-cp313-cp313-macosx_11_0_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

polypix-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

polypix-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

polypix-0.2.0-cp312-cp312-macosx_11_0_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

polypix-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file polypix-0.2.0.tar.gz.

File metadata

  • Download URL: polypix-0.2.0.tar.gz
  • Upload date:
  • Size: 118.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for polypix-0.2.0.tar.gz
Algorithm Hash digest
SHA256 22082e32503939393f6f239456dbe74747e08175513f77238c0a85295a82218a
MD5 acb3bb79398f86bdd57160f1ce98bb48
BLAKE2b-256 57fc1c9ed291663aff6e01033534b7394c241ab20230d383ab449b858e4c2ece

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0.tar.gz:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 33477b01cc1119ec83cddfa16b9c4451ffedb0146f6d3437251b44a6580738f7
MD5 de550f9fd905d8bccb4fd5eabe2445b8
BLAKE2b-256 b36108cbee823dc18b5bb2185198f89d9dae283e5b562a3528b5c76f0db88144

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8e54a40e28e26beeb7f73b6b9b3c75838bc8b958527001b010e1cc5622f4990e
MD5 8afc2822f66ec32da6b681d7b8d1d5e8
BLAKE2b-256 7272ead2b77a9dfe41d55b18dceb0b6c0e3343dde7b81e17b02eb2b2820943b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp314-cp314-macosx_11_0_x86_64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26d44320f19d9edeca3668550d2b0e1d6374d718ae194123ed813cf24739b28e
MD5 acbc6fbb0f7ee904d8ef49593f26467a
BLAKE2b-256 ece6dd233af8ca7a20bf08f53a63198714042420ac9a100c95371650c0baebe3

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8a90fe801e764a0df41c15792c508d9dc7a2cb63f18a7f7de9a495227933579f
MD5 87f1422b8623c24ea34038c1b092b5ef
BLAKE2b-256 c0e7e6a95d8439080408c24d085bcb80bd3c7bea15234c0376d8750700daf867

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e123b3601bb4976136907c390ca15803a87237ea47744a7633e8db486f3e5536
MD5 cc6387f7129ba7718213f00047017717
BLAKE2b-256 b5b07c6f9333ba2346a8a3c6cf8d0cadbb36c2177b4419ee92ce480585f94764

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp313-cp313-macosx_11_0_x86_64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dec4899d76f57d066f143b16acd9493183b50167cef5d1eb3172da642946565c
MD5 5ca66a8df9606125f5d5737f5f5715d6
BLAKE2b-256 520818f7f975200121bd228e97cd258fd65a701dff355d02208d197ece13d499

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 26010e57e77981f79f38468c5d8530f8678a8f6e348bb6a5f687c725485d1f4f
MD5 dcddc24075e1013122b0508094673d00
BLAKE2b-256 c8b099f48b6204ba742aa6fd8a760e4a7e46e022a85fbfbbe93b469744f1f64b

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 0fa3fca5bb20126afe7e632be3ac69d854fc568056085712c886305edd0bcc6a
MD5 54525b3f176b0b9184618c4ff5cb74a0
BLAKE2b-256 2336a3d288e36ffdf7d06ca0f91817b45ceaadea2174737fe47cdbe7c118d9c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp312-cp312-macosx_11_0_x86_64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polypix-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polypix-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cbe1aed0ee3a5b8e95b664ac7ce55e62f51e2acbd18e414eece5a65b9b14c365
MD5 e760f5adb05a33886b4c5a916224987a
BLAKE2b-256 fd8dc3af7dd454b22b50465cf6072a47f72f9af3b11bcf869877680295d75ccd

See more details on using hashes here.

Provenance

The following attestation bundles were made for polypix-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on JochimMaene/polypix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page