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.7.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.7-cp310-abi3-win_amd64.whl (15.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

mortie-0.4.7-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.7-cp310-abi3-macosx_11_0_arm64.whl (15.0 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mortie-0.4.7-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.7.tar.gz.

File metadata

  • Download URL: mortie-0.4.7.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.7.tar.gz
Algorithm Hash digest
SHA256 3393afce378917c52ea77460be7d7be3e974bf5b548175c242e2fbbe7362c669
MD5 dc02d1e8ef4fe697de91104348512bf6
BLAKE2b-256 d4adfbd9e7130e1fbb453bf4820c5e68b2ccc5a7aae730d4e3f525f4935caba2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.7.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.7-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: mortie-0.4.7-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.7-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 88c3eb95643edca0a9c8b4dec6c03026e7141f33780c22f5db04eae28f6e6130
MD5 18c301f4c950862a3c90fa041e8e0445
BLAKE2b-256 6a9d2190690cbde24f2ee9157e642dd043cc2af2e2b7bbad30741b0433af0c38

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.7-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.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mortie-0.4.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dcffc09d3d76ab73dad7abe0ae04ee9a68d08004d55283940409a733826ed148
MD5 7b9d24f69dd06e966963c34a9993c2cc
BLAKE2b-256 f08ec5154ab27e4505b932f36624e691751c3e1b9029e358612b2d47df9eea91

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.7-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.7-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mortie-0.4.7-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e4cf651c9bb36f6df820c3a3d2c97d5ccddb009e2f7983b9bf7863339928cb3
MD5 d64dcb9d4ecc26b35925ef2550a56c95
BLAKE2b-256 fb3b2754b15665db99c3b2ad4f68783679e7a2a2e99f2a947bec85837bb0aeef

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.7-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.7-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mortie-0.4.7-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a910a8c39be34b177e6c76ea54f268f230314bbb691f2b8c51a152bc519de906
MD5 4f41de63a147e662beb4a69bc5a8012a
BLAKE2b-256 8b798f9abf9101eb42fa246ac8c3188d059390745ef2c279d0fa37f7744ee423

See more details on using hashes here.

Provenance

The following attestation bundles were made for mortie-0.4.7-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