Skip to main content

A standalone utility for vertical elevation datum transformations.

Project description

Transformez

Global vertical datum transformations, simplified.

Version License Python PyPI version Project Chat

Transformez is a standalone Python engine for converting geospatial data between vertical datums (e.g., MLLWNAVD88Ellipsoid).


Shift Grid Example (Above: A generated vertical shift grid transforming MLLW to NAVD88)

transformez run -R loc:"new orleans" -E 3s -I mllw -O 5703

Installation

Prerequisites: HTDP

Transformez relies on the NGS Horizontal Time-Dependent Positioning (HTDP) software to perform highly accurate plate tectonic and frame transformations. You must install this separately.

For Windows:

  1. Download the pre-compiled executable (htdp.exe) directly from the NOAA HTDP page.
  2. Place htdp.exe in a directory that is in your system's PATH (e.g., C:\Windows\System32 or a custom scripts folder).

For Linux / macOS:

You will need a Fortran compiler (like gfortran) to compile the source code.

# 1. Download the Fortran source code
wget https://geodesy.noaa.gov/TOOLS/Htdp/HTDP-download.zip
unzip HTDP-download.zip

# 2. Compile it
gfortran -o htdp htdp.f

# 3. Move it to your PATH
sudo mv htdp /usr/local/bin/

Install Transformez

Once HTDP is accessible in your terminal, install the python package:

pip install transformez

Usage

Generate a vertical shift grid for anywhere on Earth.

# Transform MLLW to WGS84 Ellipsoid in Norton Sound, AK

transformez run -R -166/-164/63/64 -E 1s -I mllw -O 4979

Transform a raster directly. Transformez reads the bounds/resolution from the file.

transformez run my_dem.tif -I mllw -O 5703

Integrate directly into your download pipeline.

# Download GEBCO and shift EGM96 to WGS84 on the fly
fetchez gebco ... --hook transformez:datum_in=5773,datum_out=4979

Python API

Transformez provides a high-level API for embedding transformations directly into your Python scripts, Jupyter Notebooks, or automated pipelines.

import transformez

# ---------------------------------------------------------
# Generate a Shift Grid
# ---------------------------------------------------------
# Returns a 2D numpy array. Optionally saves to a file.
# Requesting "mllw" in India triggers the Global Fallback (FES2014) automatically.

shift_array = transformez.generate_grid(
    region=[80, 85, 10, 15],  # [West, East, South, North]
    increment="3s",           # Grid resolution
    datum_in="mllw",
    datum_out="4979",         # WGS84 Ellipsoid
    out_fn="india_shift.tif"  # Optional: Save to disk
)

# ---------------------------------------------------------
# Transform an Existing Raster
# ---------------------------------------------------------
# Applies the datum shift directly to a DEM and saves the result.

out_file = transformez.transform_raster(
    input_raster="my_dem_mllw.tif",
    datum_in="mllw",
    datum_out="5703:g2012b",  # NAVD88 using specific GEOID12B
    output_raster="my_dem_navd88.tif"
)

Supported Datums

🌊 Supported Tidal Surfaces:

EPSG NAME DESC
1089 mllw [USA]
5866 mllw [USA]
1091 mlw [USA]
5869 mhhw [USA]
5868 mhw [USA]
5714 msl [USA]
5713 mtl [USA]
0 crd [USA]
5609 IGLD85 [USA]
9000 LWD_IGLD85 [USA]
5702 NGVD29 [GLOBAL]
9001 lat [GLOBAL]
9002 hat [GLOBAL]
9003 mss [GLOBAL]

🌐 Ellipsoidal / Frame Datums (EPSG):

EPSG NAME DESC
4979 WGS84 World Geodetic System 1984
6319 NAD83 North American Datum 1983

🏔️ Orthometric / Geoid-Based (EPSG):

EPSG NAME DESC
5703 NAVD88 height (Default Geoid: g2018)
6360 NAVD88 height (usFt) (Default Geoid: g2018)
8228 NAVD88 height (Ft) (Default Geoid: g2018)
6641 PRVD02 height (Default Geoid: g2018)
6642 VIVD09 height (Default Geoid: g2018)
6647 CGVD2013(CGG2013) (Default Geoid: CGG2013)
3855 EGM2008 height (Default Geoid: egm2008)
5773 EGM96 height (Default Geoid: egm96)

🌍 Available Geoids:

g2018, g2012b, geoid09, xgeoid20b, xgeoid19b, egm2008, egm96, CGG2013

License

This project is licensed under the MIT License - see the LICENSE file for details. Copyright (c) 2010-2026 Regents of the University of Colorado

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

transformez-0.3.4.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

transformez-0.3.4-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

Details for the file transformez-0.3.4.tar.gz.

File metadata

  • Download URL: transformez-0.3.4.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for transformez-0.3.4.tar.gz
Algorithm Hash digest
SHA256 7616383910767d3d9f1fac81852a21bad3553417e357d78ad815b31ac59bbce0
MD5 3ba85335b45ba33bdf3e389aa53392bc
BLAKE2b-256 1e65471d5da228864fec8a4a3755c3a63b0f3e0015389e0e5430bb06a0f466db

See more details on using hashes here.

Provenance

The following attestation bundles were made for transformez-0.3.4.tar.gz:

Publisher: publish.yaml on continuous-dems/transformez

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file transformez-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: transformez-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 37.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for transformez-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b463ac96d038cdd6d7c0302c841ecd3e8e286ad6d911cc59c4990f9614f438fe
MD5 af1a8bd1bfc11226aaf8831b597c4215
BLAKE2b-256 a9ba57c9cd25512a06f2fbc8fc3ac4b04041327b90e400ac72cc067056676f74

See more details on using hashes here.

Provenance

The following attestation bundles were made for transformez-0.3.4-py3-none-any.whl:

Publisher: publish.yaml on continuous-dems/transformez

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