Skip to main content

ausdem

CI PyPI Python versions License: MIT

Fetch Australian Digital Elevation Model (DEM) data from Geoscience Australia straight into Python as georeferenced xarray arrays.

It talks to GA's public Web Coverage Services, asking only for the bounding box you want rather than downloading whole continental tiles. The data and services come from GA's Digital Elevation Data page.

Install

pip install ausdem

Requires requests, numpy, xarray, rioxarray and rasterio (pulled in automatically).

Usage

import ausdem

# A small area around Canberra (min_lon, min_lat, max_lon, max_lat)
dem = ausdem.get_dem((149.0, -35.4, 149.1, -35.3))

dem.plot()                       # it's a normal xarray DataArray
print(float(dem.max()))          # highest point in the box

ausdem.save_geotiff(dem, "canberra.tif")   # or: dem.rio.to_raster("canberra.tif")

The returned object is an xarray.DataArray with dimensions (y, x), a NaN no-data mask, and a .rio accessor (CRS, transform, to_raster). So you get the array for analysis and can drop it to a GeoTIFF whenever you like.

Choosing a dataset

ausdem.list_datasets()
# ['lidar_5m', 'srtm_1s_dem', 'srtm_1s_dem_h']

dem_h = ausdem.get_dem(bbox, dataset="srtm_1s_dem_h")   # hydro-enforced
lidar = ausdem.get_dem(bbox, dataset="lidar_5m")        # 5 m, where surveyed
key product resolution
srtm_1s_dem SRTM 1 Second DEM (bare earth), national ~30 m
srtm_1s_dem_h SRTM 1 Second DEM-H (hydro-enforced) ~30 m
lidar_5m LiDAR-derived 5 m DEM (surveyed areas) 5 m

The smoothed DEM-S product is not served over WCS; download it from the ELVIS portal. The LiDAR DEM only covers surveyed areas (coastal zone, Murray-Darling floodplains, population centres); requests outside coverage either come back as a no-data (NaN) tile or raise ausdem.WCSError, depending on the area.

Pass resolution= (in degrees) to resample, e.g. resolution=0.001 for a coarser, lighter grid.

Command line

ausdem 149.0 -35.4 149.1 -35.3 -o canberra.tif
ausdem 149.0 -35.4 149.1 -35.3 -o canberra_demh.tif -d srtm_1s_dem_h
ausdem --list

Notes

Coordinates are decimal degrees. SRTM products are served in WGS84 (EPSG:4326) and the LiDAR product in GDA94 (EPSG:4283); for input bounding boxes the two are interchangeable at this scale. Very large requests are rejected client-side to avoid pulling huge rasters by accident; tile your area or coarsen the resolution if you hit that.

Example

There is a small standalone script in examples/ that fetches a DEM and plots it:

python examples/plot_dem.py            # a box near Canberra, writes dem.png

Development

git clone https://github.com/g-adopt/ausdem
cd ausdem
pip install -e ".[dev]"
pytest -m "not network"      # offline tests
pytest                        # include the live GA WCS test

License

MIT, see LICENSE.

Citation

If you use ausdem in your work, please cite it. Release archives are deposited on Zenodo and a DOI will be added here after the first release; in the meantime see CITATION.cff.

Metadata

Release files for ausdem 0.1.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 ausdem 0.1.0
File Size Uploaded
ausdem-0.1.0.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ausdem 0.1.0
File Interpreter ABI Platform
ausdem-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.1 kB

Release files / ausdem-0.1.0.tar.gz

Download URL ausdem-0.1.0.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3b7b1c90e304bece8c193c5e2b49b26d8c0c1e00c3f0175174f321a755906aca
BLAKE2b-256 checksum
How to use checksums
00efffbec762a81879ea4683020ce50eff28c97d5d4da6c4d5413cc7fd05f3cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 19, 2026.

Transparency log

Release files / ausdem-0.1.0-py3-none-any.whl

Download URL ausdem-0.1.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf357cba047a176ca186bb75212f01718a3524db8def551e047f66c9010ecb4c
BLAKE2b-256 checksum
How to use checksums
0488d6ad3edf8df94b7f1fd6e62dfa11b35b99b8daf298bada7e69ae62c8cfd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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