Skip to main content

NASA SRTM altitude data parsing in Python

Provides an API onto SRTM .hgt or .hgt.zip files.

Requires Python 3.8, may work with Python 3.6 & 3.7.

Installation

pip install python-srtm

export SRTM1_DIR=/path/to/srtm1/
export SRTM3_DIR=/path/to/srtm3/

Use

You can access either SRTM1 or SRTM3 data. SRTM 1, for example:

# SRTM1 - 30m resolution
>>> from srtm import Srtm1HeightMapCollection
>>> srtm1_data = Srtm1HeightMapCollection()
>>> srtm1_data.get_altitude(latitude=40.123, longitude=-7.456)
615
>>> Srtm1HeightMapCollection().get_elevation_profile(40.123, -7.456, 40.129, -7.460)
[615, 620, 618, 620, 616, 603, 593, 582, 575, 579, 580, 589, 589, 581, 565, 553, 545, 541, 534, 533, 529, 520, 514]

Or SRTM3:

# SRTM3 - 90m resolution
>>> from srtm import Srtm3HeightMapCollection
>>> srtm3_data = Srtm3HeightMapCollection()
>>> srtm3_data.get_altitude(latitude=40.123, longitude=-7.456)
608
>>> Srtm3HeightMapCollection().get_elevation_profile(40.123, -7.456, 40.129, -7.460)
[626, 616, 585, 593, 577, 548, 528, 514]

Profiling

import cProfile
cProfile.run('function_to_profile()', filename='output.cprof')
brew install qcachegrind
pip install pyprof2calltree
pyprof2calltree -k -i /pythonprofiling/profiler/first_iteration.cprof

Release process

For internal reference:

# Run the tests
pytest

export VERSION="VERSION HERE"

# Version bump
poetry version $VERSION

# Ensure poetry.lock is up to date
poetry lock

# Commit
git add .
git commit -m "Releasing version $VERSION"

# Tagging and branching
git tag "v$VERSION"
git branch "v$VERSION"
git push origin \
    refs/tags/"v$VERSION" \
    refs/heads/"v$VERSION" \
    master

poetry publish --build

Release files for python-srtm 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-srtm 0.6.0
File Size Uploaded
python_srtm-0.6.0.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-srtm 0.6.0
File Interpreter ABI Platform
python_srtm-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.1 kB

Release files / python_srtm-0.6.0.tar.gz

Download URL python_srtm-0.6.0.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
778a2f172c394295f934bf6ad5228a13de3575ee78ced965a7e05c88f5312b2b
BLAKE2b-256 checksum
How to use checksums
545715689e6a4eac07edd4187f57d2b467ede3e408f0bbd9ae31c002b2aabece
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.6 Darwin/24.1.0

Release files / python_srtm-0.6.0-py3-none-any.whl

Download URL python_srtm-0.6.0-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
27e584ab4f0ca2103b0d6aff52e3e4cc7b70d9ed2787ff4c0c7025329b1e11ff
BLAKE2b-256 checksum
How to use checksums
1d938a573174a8c45a634a01d3d1602952ef033ae898b02fdadc6e01fbc95c54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.6 Darwin/24.1.0

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page