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)
| File | Size | Uploaded | |
|---|---|---|---|
| python_srtm-0.6.0.tar.gz | 8.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|