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.3.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.3-cp310-abi3-win_amd64.whl (161.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

mortie-0.4.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (253.7 kB view details)

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

mortie-0.4.3-cp310-abi3-macosx_11_0_arm64.whl (222.6 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mortie-0.4.3-cp310-abi3-macosx_10_12_x86_64.whl (233.0 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: mortie-0.4.3.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.3.tar.gz
Algorithm Hash digest
SHA256 2f90ec7747af98f74f52d9c8d2774697eb37ddb818088a92eb6036faa312b92f
MD5 3396056944eda116c072fc6e1b5f9f46
BLAKE2b-256 32f7a7a890c2308c8549e2392eadb1fceb4efe67b9010f8f448eb1ac6f505ac2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mortie-0.4.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 161.7 kB
  • 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.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b3eeaf5d418851fd72145404451a5932ca135a4e99524487e01153e57165f76e
MD5 b34798f7cb645c2030c03416d8f55c81
BLAKE2b-256 1b4178e562472c6c1c981c0e2c1d6c7a4e6d25492cd81bc7f2885c2ee3b53b99

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9761229e575ec84c3d0683b79b1925b0b52bc2402da7c069675439316f4edd1
MD5 542769c438f762acd2189565eb73f2b5
BLAKE2b-256 d7733292c3d17acb1cad4c7300aaf04bd1ccd79b4b6c7b66a1f7df33c2be60b3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8cabbf547f7d2e7d09ed2d69c654a3fae064184a128c15191cdf9db8c8024ae
MD5 93373c07721052eb4b401048036cb9ec
BLAKE2b-256 dcabbd6a6d16cea8f7e82a5ef82557ad69f7d5980a24554b26a15d1422659a44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0d3b2ce600fc563169d6c7677fc920ae5ffa2e30eb6a2bb738cc76c38ff68acf
MD5 486faf286cba7c75eed0e2bac7e5dec4
BLAKE2b-256 3bf7c671c7c3012cd0405e39f229114b033a5521804910fb5c582300a5a18cd7

See more details on using hashes here.

Provenance

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