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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

  • Download URL: mortie-0.4.5.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.5.tar.gz
Algorithm Hash digest
SHA256 48e2164aec2c7a326f8e8b861e2ed023271e8063de37c24f7c53e6bf4f211452
MD5 26f84c9a47b8ab1a38200ae90e01e527
BLAKE2b-256 2ea2fb9956fa68434d88188c23f87aef93168e9bae7291265d82ddb4a25567ae

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mortie-0.4.5-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.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6d9fc0ca3fb83c09de0dc89b626fbda8dd129d4dd4e777908f9b375a44ee1593
MD5 3bc3cba9eccc166df94245ea88501fca
BLAKE2b-256 c26e81503053a637b9ecf086729a9dd8141b5c726a71ee14d95bf7e31ec8c91d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e499b5ee85e396cd185ae910483ca67d477a8c20ae8732bbe75ef9b03a8f150
MD5 524c77e4675d8db4f3b53cb14b11f712
BLAKE2b-256 bee2d11e19d691be3154d723afbbdf67def02d495502e53b8a1e1fbb224e9ebc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 702206e52d110c7882ac8fd5e8187a126f9570fb48c3972c39d6886c2889286a
MD5 e5de87fc4d16b958865b0c57d380b71e
BLAKE2b-256 29f7581de1ee11149339c28462ee16e9ddccc1035882061adc7942abeb509bfa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d0ab66a3ed9ac9a9dfdf80ce31a47289522a534fec1ea905dc49f48f2696efa9
MD5 c283e090dbbaec834360d0d565bdf0de
BLAKE2b-256 9bc9570dfb5615b9084eb2144bd034fbc165d2bc42684ecbac0300c76c2a2792

See more details on using hashes here.

Provenance

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