USGS DEM

The USGS DEM standard is a geospatial file format developed by the United States Geological Survey for storing a raster-based digital elevation model. It is an open standard, and is used throughout the world. It has been superseded by the USGS's own SDTS format but the format remains popular due to large numbers of legacy files, self-containment, relatively simple field structure and broad, mature software support.

DEM Level

A USGS DEM can be classified into one of four levels of quality. This is due to the multiple methods of data collection, and certainty in the data.

DEM level DEM series Production process Comments
Level 1 7.5-minute
30-minute
Created by autocorrelation or manual profiling from aerial photographs May be derived from a wide variety of sources using any of a number of USGS approved techniques and instrumentation
Level 2 All series Created from digital line graph (DLG) contours or equivalent, from any USGS map series up to 1:100000 scale The accuracy and data spacing are intended to support computer applications that analyze hypsographic features to a level of detail similar to manual interpolations of information from printed source maps
Level 3 7.5-minute Created from DLG that have vertically integrated with all categories of hypsography, hydrography, ridge line, break line, drain files, and all vertical and horizontal control network Requires a system of logic to interpret the data
Level 4 All series Created from electronic (non-photogrammetric) imaging sensor systems, either active (e.g., radar or lasar) or passive (received radiant energy) The process includes all additional post-processing required to bring the DEM grid to its final form

Format Structure

The USGS DEM format is a self-contained (single file) set of ASCII-encoded (text) 1024-byte (1024 ASCII chars) blocks that fall into three record categories called A, B, and C. There is no cross-platform ambiguity since line ending control codes are not used, and all data including numbers is represented in readable text form. There is no known binary analogue of the format, although it is common practice to compress the files with gzip.

Floating-point numbers are encoded using Fortran scientific notation, so C/C++ programs need to swap the "D" exponent-indicating character with "E" when parsing (and vice versa when writing).

A record fields hold the origin, type, summary statistics and the measurement systems used by the profiles. The A record appears once as the file's header, the C record also appears once as the trailer, and multiple B records (called profiles) comprise the elevation data. A and C records each fit within one block, but a single B record typically requires multiple blocks. When such block-spanning occurs, data are shifted to start cleanly on each block boundary. A records also come in "old" and "new" flavors, because the USGS added several fields to the A record. One of the key items is the quadrangle, which is a set of four terrestrial coordinates describing the four-sided polygon enclosing the area of interest.

A Record Layout:Incomplete – please contribute—full details are in the Appendix of http://nationalmap.gov/standards/pdf/2DEM0198.PDF
Starting Col Ending Col Description
0 134 Descriptive Name of the represented area
150 155 ?
156 161 ?
162 167 UTM Zone number
529 534 Unit of resolution of ground grid (0=radian;1=feet;2=metre;3=arc-second)
535 540 Unit of resolution Elevation (1=feet;2=metre)
546 569 Easting of the South West corner
570 593 Northing of the South West corner
594 617 Easting of the North West corner
618 641 Northing of the North West corner
642 665 Easting of the North East corner
666 689 Northing of the North East corner
690 713 Easting of the South East corner
714 737 Northing of the South East corner
738 761 Minimum elevation found in this file
762 786 Maximum elevation found in this file
816 827 Resolution per grid cell East – West
828 839 Resolution per grid cell North – South
858 863 Number of columns

B records (profiles) are a variable-length longitudinal column of raster elevations that start at a specified location. They are some multiple of 1024 bytes long and contain a small header summarizing the profile. The elevations are contiguous; breaks or other discontinuities are expressed using "void" elevations of value -32767. Each elevation is described as a six-character readable integer occupying a fixed location in a block. The profile header only appears in the first block, so subsequent blocks hold more elevation values. When reading the DEM file from first byte to last, one reads the profiles as columns from west to east. The elevations within a profile run from south to north. The variable-location and variable-length nature of profiles stems mainly from the use of the UTM (Universal Transverse Mercator) ground reference system. Since measurements within UTM employ fixed distances (e.g., 30 meters between elevation samples), the quadrangle must slightly distort to map such locations onto the spherical Earth. This distortion usually manifests as a rotated square, hence the elevation columns near the east and west edges start more northward and contain fewer samples.

C records contain root-mean squared error (RMSE) quality control data, using ten six-character integer fields.