Skip to content

Selecting and downloading elevation data

DTED.org publishes one canonical state product and independently identified source alternatives. An alternative never replaces or silently fills from the canonical SRTM release. The supported source IDs are:

Source ID Upstream catalog Native product Published product
usgs-srtm USGS EROS M2M DTED2, WGS84/EGM96 Canonical DTED2
cop30 Copernicus Data Space DTED2, WGS84/EGM2008 DSM EGM96 DTED2
cop90 Copernicus Data Space DTED1, WGS84/EGM2008 DSM EGM96 DTED1
usgs-3dep TNMAccess 1/3-arc-second GeoTIFF, NAD83/NAVD88 DTM WGS84/EGM96 DTED2
nasadem NASA CMR/Earthdata One-arc-second HGT, WGS84/EGM96 DSM DTED2
aw3d30 JAXA AW3D30 One-arc-second GeoTIFF and masks, WGS84/EGM96 DSM DTED2
aster-gdem-v3 NASA CMR/Earthdata One-arc-second GeoTIFF and NUM quality, WGS84/EGM96 DSM DTED2

Use dtedctl list-sources or GET https://dted.org/api/v1/sources for the machine-readable registry. Source versions are selected from the authoritative catalog at acquisition time, then frozen by asset IDs and hashes.

Source-specific automated workflow

Provider credentials belong in provider-specific root-only files. They are never written to receipts:

# /etc/dted/copernicus.env
CDSE_ACCESS_TOKEN=...

# /etc/dted/earthdata.env
EARTHDATA_TOKEN=...

# /etc/dted/aw3d30.env
AW3D30_USERNAME=...
AW3D30_PASSWORD=...

Files must be mode 0600. USGS 3DEP requires no credential file. Copernicus and 3DEP also require locally pinned PROJ grids to transform EGM2008 or NAVD88 heights to the EGM96 operational reference. /srv/dted-grids/manifest.json lists each grid filename and SHA-256; conversion runs with PROJ_NETWORK=OFF. Create that bundle only from operator-reviewed provider grids:

sudo .venv/bin/dted-pin-grids /operator/reviewed/grid-one.tif \
  /operator/reviewed/grid-two.tif --output /srv/dted-grids

For the 3DEP CONUS workflow, PROJ 9.6 selects a general 2.14 m operation using these PROJ-data files:

  • us_noaa_nadcon5_nad83_1986_nad83_harn_conus.tif
  • us_noaa_nadcon5_nad83_harn_nad83_fbn_conus.tif
  • us_noaa_geoid03_conus.tif
  • us_nga_egm96_15.tif

Obtain them from https://cdn.proj.org/, compare them with the SHA-256 values published in https://cdn.proj.org/files.geojson, and then pin the reviewed copies. Do not substitute similarly named regional grids without a new datum review. Conversion enumerates only locally usable, non-ballpark operations, selects the best one, supplies its exact pipeline to GDAL, and records that pipeline with the grid hashes and GDAL/PROJ toolchain in the receipt. A land-intersecting output cell with no valid elevation samples aborts conversion.

Conversion handles two raster-to-DTED boundary effects without mixing sources. If reprojection leaves a void on state land no farther than one output post from the recorded land boundary, the converter may copy an immediately adjacent, valid post that is also inside that boundary and came from the same converted source. It does not fill interior gaps, search farther than one post, or use the canonical baseline. Separately warped cells can round the same duplicated edge post differently; the converter reconciles only valid one-meter differences in a fixed west-then-south precedence order. Larger or void-versus-valid edge differences remain unchanged so the quality gate rejects them. The receipt records both policies, their counts, and all unresolved cases.

Acquire California Copernicus GLO-30 as follows:

sudo .venv/bin/dtedctl acquire-region CA --source cop30 \
  --output /srv/dted-sources \
  --manifest-dir datasets \
  --credential-file /etc/dted/copernicus.env \
  --grid-manifest /srv/dted-grids/manifest.json

sudo .venv/bin/dtedctl audit-dataset datasets/CA-COP30.yml \
  --source /srv/dted-sources/CA-COP30-DTED.zip \
  --receipt /srv/dted-sources/CA-COP30-DTED.receipt.json \
  --report /srv/dted-data/source-quality/ca-cop30/report.json \
  --summary /srv/dted-data/source-quality/ca-cop30/summary.json

The generated manifest uses id: ca-cop30, region.id: CA, and baseline_policy: none. Its preview and production hosts are therefore preview-ca-cop30.dted.org and ca-cop30.dted.org.

Downloaded assets are stored in a content-addressed cache under <output>/raw/<source>/. An atomic per-asset index binds each upstream asset ID, version, and filename to its verified SHA-256. An interrupted acquisition therefore reuses only completed, hash-verified assets and downloads missing, changed, or damaged assets again. dtedctl prune-source-cache retains material referenced by active and recent releases. The successful verification digest is also reused for the receipt record; acquisition does not rehash every cached asset a second time merely to record the same value.

DTED.org state overlays use the USGS SRTM 1 Arc-Second Global collection in native DTED 1 arc-second format. Do not substitute the similarly named 3-arc-second collections, BIL, GeoTIFF, or a DEM converted to DTED. USGS describes this collection as approximately 30-meter postings, one-degree tiles, WGS84 horizontal datum, and EGM96 vertical datum. Some source tiles can still contain voids, so every download must pass the DTED.org state audit before it is treated as certified.

Official references:

EarthExplorer workflow

  1. Sign in to EarthExplorer with an EROS Registration System account.
  2. On Search Criteria, draw or upload an area of interest that covers the entire state. Include coastal islands and the full state boundary; DTED is delivered in one-degree cells, so results extending beyond the border are expected. A state-boundary KML or zipped shapefile is preferable to a loose rectangle.
  3. On Data Sets, expand Digital Elevation → SRTM and select only SRTM 1 Arc-Second Global. A date filter is not needed for this collection.
  4. Open Results and check that the footprints cover the whole state. Boundary cells count even when only a small part of the cell intersects state land.
  5. For every result, open Download Options and choose the native DTED 1 arc-second product. Do not choose BIL, GeoTIFF, 3 arc-second data, browse imagery, or metadata-only downloads.
  6. For a full state, add all results to the bulk-download basket and use the browser-based Bulk Download Web Application. Keep the original downloads and the EarthExplorer order/export metadata as provenance evidence.
  7. Extract the downloaded products and place every .dt2 cell into one ZIP, without resampling or elevation conversion. Name it DTED2-STATE.zip, such as DTED2-TX.zip. Duplicate coordinates must be byte-identical; do not silently choose between differing duplicates.

Before importing, make a quick inventory:

unzip -l DTED2-TX.zip | grep -Ei '\.dt2$'
sha256sum DTED2-TX.zip

Import and audit

The state must have a manifest in datasets/STATE.yml with its boundary name, DTED2 structural requirements, and representative elevation control points. Then run:

make import-state STATE=TX ARCHIVE=DTED2-TX.zip OPERATOR=your-name
make audit-state STATE=TX

Import records the original archive hash, normalizes cell paths, and crops cells that do not intersect the state. The audit independently checks expected coverage, DTED headers and matrices, land voids, shared seams, elevation limits, control points, and source/receipt hashes.

A passing audit can proceed to build-state, public QA preview, ATAK and WinTAK testing, and promotion. A failing audit must remain visibly marked as failed; if an operator explicitly publishes it for evaluation, the public quality summary and override record must identify the known defects and the release must not be described as evidence-certified.

Machine-to-machine acquisition

For repeatable automation, request EarthExplorer Machine-to-Machine (M2M) access for SRTM 1 Arc-Second Global, product DTED 1 arc-second. After USGS approves the account, store the username and application token in the root-only credential file described in the deployment guide and run:

sudo .venv/bin/dtedctl check-usgs-access CA --credential-file /etc/dted/usgs.env
SOURCE_ROOT=$(awk -F= '$1 == "DTED_SOURCE_ROOT" { print $2 }' /srv/dted/.env)
sudo install -d -m 0755 /var/lib/dted/boundaries
sudo env DTED_BOUNDARY_CACHE_DIR=/var/lib/dted/boundaries \
  .venv/bin/dtedctl acquire-state CA \
  --output "$SOURCE_ROOT" \
  --manifest-dir datasets \
  --credential-file /etc/dted/usgs.env

The automated path searches the state boundary, downloads the same product, assembles canonical cells, and creates the acquisition receipt used by the audit.

Community compatibility archives

The public CivTAK downloads, community Google Drive folder, and ollighost/DTED-LVL2-4-TAK archives demonstrate common ATAK directory layouts, but they do not provide the per-cell authority, licence, version, and reproducible receipt required for publication. They must remain outside data/src.

An operator may produce a quarantined compatibility report:

dtedctl inspect-community-archive community.zip \
  --source-url https://www.civtak.org/files/ \
  --report runtime/community/community.json

The report always sets promotable: false; it cannot be used in the state build or promotion workflow.