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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

  • Download URL: mortie-0.4.6.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.6.tar.gz
Algorithm Hash digest
SHA256 e26e7a329e5ef5c9abae04b77e88d5dc6132789cc5a6f4bf2cdb0587c77cd8a9
MD5 495b142aeb82b46379e208732b38148b
BLAKE2b-256 30f5dece9ad66df33b662362ba8cfe892b51706a85846803838f664139659fe4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mortie-0.4.6-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.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5355bc3440c603b3bf14d90850666b41eab86315567db66aa2dafbf3119ff2cd
MD5 17b4e380882a57e2287304cda266a5f0
BLAKE2b-256 a8106c2d3c6f39a3b39a9437363589e50bd06d026ef7a3dbfdbc0dc9934f8e9e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3557a542591d255b6f85c4611cd1926182f47b916d2aae765ad097cd3db2495c
MD5 0b2b0817f72c5394a80a7a3447d02c0f
BLAKE2b-256 059c045f8d797e0c2e79f58545b1e3633ee2495dec1718495c2d45478e381dd1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.6-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69db59fbd00e7815991e601fa075828646c4640c7b5003cce7b9c4c87df873ef
MD5 533b95a00e5b4d297e979b30dc30eafe
BLAKE2b-256 bf79242daba2cbd0691921ca0d49d428f610282c03902e8756611c9dd3fd1d07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mortie-0.4.6-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a0b047d22bc661693c65229788681f118105c9124cf59883d107d5045748d0ca
MD5 34ad0c4993b153876fa028dd34657dcb
BLAKE2b-256 7015a1f7ddc3d42a8c45b0030c2911d1ca6b32071945f6cce7d1714f3d0ac12c

See more details on using hashes here.

Provenance

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