Skip to main content

Morton numbering and indexing for healpix grids

Project description

mortie

Tests codecov PyPI version Python 3.10+

Morty using mortie

Mortie is a library for applying morton indexing to healpix grids. Morton numbering (also called z-ordering) facilitates several geospatial operators such as buffering and neighborhood look-ups, and can generally be thought of as a type of geohashing.

This particular implementation focuses on hierarchical healpix maps, and is mostly inspired from this paper.

Performance

Mortie uses Rust-accelerated morton indexing functions for high performance, with an automatic fallback to pure Python if Rust is unavailable. The Rust implementation provides dramatic speedups:

Dataset Size Rust Pure Python Speedup
1,000 values 1.93 ms 4.14 ms 2.1x
100,000 values 1.85 ms 410.59 ms 222x
1.2M coordinates 102.51 ms 5.1 sec 50x

Pre-built wheels are available for Linux, macOS, and Windows. If a wheel is unavailable for your platform, mortie will automatically use the pure Python fallback.

Installation

pip install mortie

For development builds with Rust, see BUILDING.md.

TODO:

  • add paper reference
  • add funding information
  • add tests
  • remove / prune dead code
  • add example(s)
  • fix north / south bug
  • remove numba dependency
  • update documentation
  • publish to pypi

Dependencies are numpy and healpy. The Rust-accelerated functions are optional - if unavailable, mortie will automatically fall back to a pure Python implementation. Although not a dependency, there are several functions that have been written to interface with the vaex project.

Funding

Initial funding of this work was supported by the ICESat-2 project science office, at the Laboratory for Cryospheric Sciences (NASA Goddard, Section 615).

References

[1] Youngren, Robert W., and Mikel D. Petty. "A multi-resolution HEALPix data structure for spherically mapped point data." Heliyon 3.6 (2017): e00332. doi: 10.1016/j.heliyon.2017.e00332

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

mortie-0.4.10.tar.gz (15.1 MB view details)

Uploaded Source

Built Distributions

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

mortie-0.4.10-cp310-abi3-win_amd64.whl (15.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

mortie-0.4.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

mortie-0.4.10-cp310-abi3-macosx_11_0_arm64.whl (15.0 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mortie-0.4.10-cp310-abi3-macosx_10_12_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file mortie-0.4.10.tar.gz.

File metadata

  • Download URL: mortie-0.4.10.tar.gz
  • Upload date:
  • Size: 15.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mortie-0.4.10.tar.gz
Algorithm Hash digest
SHA256 0d4ba8f5b2e12a31186f4a337078efc4a0b5042a6f2dc3030cbbefa815baae7f
MD5 9d1798ec8b784570919614caf21f7051
BLAKE2b-256 a1d0624119c9ffde693966f96cb578c8b9fc0997bdf633f3447bab157b2c5d00

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.10.tar.gz:

Publisher: build-wheels.yml on espg/mortie

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

File details

Details for the file mortie-0.4.10-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: mortie-0.4.10-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 15.0 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mortie-0.4.10-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 08a0789b7015546c31685bad8f05289c3e0465e4897428764eabe7bb401a9af1
MD5 b8d4d2a1ea9b08608e1a1103e2424a61
BLAKE2b-256 ccc53015e8b77d63af1b879ac8de707b31642d9b46b6fca3da6a33bdcc68c396

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.10-cp310-abi3-win_amd64.whl:

Publisher: build-wheels.yml on espg/mortie

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

File details

Details for the file mortie-0.4.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mortie-0.4.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 febfa37a429a32c5791c5ea7cb925dfa8f4485e95dc8aa414c3cf1a818696df6
MD5 d301fe84f2c6b46fc61bf3764b1554c1
BLAKE2b-256 03cd943e59cc3d750ddb3b39bc0ea2f216378420869967b7575e21e644db5a79

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on espg/mortie

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

File details

Details for the file mortie-0.4.10-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mortie-0.4.10-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c2b6029922fa75a77431740a8aad9a2e7370232ffaeff593439d35c8a7a2e4e4
MD5 c6172c7b1fe968497c12bba10bb6608b
BLAKE2b-256 c73108d81e912f983e6f6150e8e44b41c6c1b99c8c4f53699418b9ec4de7dfcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.10-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on espg/mortie

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

File details

Details for the file mortie-0.4.10-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mortie-0.4.10-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 669a772decbba3490d19c074ae3b67b801cfe71b995aa63487d3fce2c846fb4f
MD5 5d9f03057b1f76492cf55d40d64f7d60
BLAKE2b-256 c2dc0b74ba43a2446b450498900b53f622c59609d741c428617deb363550ea1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.10-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: build-wheels.yml on espg/mortie

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