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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

  • Download URL: mortie-0.4.8.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.8.tar.gz
Algorithm Hash digest
SHA256 9392824e4cdbc058a654d71617ea997109564910ac28db71929c65b1d0e226d9
MD5 96b46bc5494409c86322b9e7c55aed86
BLAKE2b-256 893e54b51a939a17c6f1ba1870088cef2d8f2feeda57efaa1aa300065258c37c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mortie-0.4.8-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.8-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c09fbd3a857c0c417cb29b1934c08c61a3bf0e55004aeae2a9f0737f72258e06
MD5 03f70b597513ce00ae5a24258ba127ce
BLAKE2b-256 2285e6e19349b7e4192cca867186e420c70cf2b03d9174f9010e589eb663beb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6bbd6f636178dc48166bcc5c09da680503660b03e7a0ef81f82afc70fad5cfa7
MD5 c8cc3d6e9d235d59353dc2b99b4b01d9
BLAKE2b-256 8d8e9c533cd74adf85f8aff6379e419974b81525312ffb0b8145445f14b9f736

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.8-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 708a87acb127ecc919f19d249b48d80455a126bfbd4959950861e039f577a322
MD5 27a7086ee0e1799432c779fa6647c2cc
BLAKE2b-256 2448a3d87d876e02c1589c8d82993cb2b0cc272e439cd2dddb1e30ae26603382

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.8-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 46c597ee71c11d97ef4033fbac88a202586c294fb8b7889ef1dcfda012bc7351
MD5 bb3c077783fb6627e315007d58d30e7b
BLAKE2b-256 260f4b7bd8aa037eeebecb96eeb345fb1c0fcc288555c097cde6650c429da0fd

See more details on using hashes here.

Provenance

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