HOWTO import SRTM elevation data

From GRASS-Wiki
Revision as of 21:46, 24 September 2017 by Mmetz (talk | contribs) (→‎Import of CGIAR SRTM void-filled tiles: update the update)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Background: Space Shuttle Radar Topography Mission

Available data

Space Shuttle Radar Topography Mission - several SRTM Data Versions and Products are available. An overview of the different versions is given in figure 2 in the SRTM user guide.

SRTM data available through the USGS EarthExplorer are NGA SRTM version 2. If in doubt, use JPL/NASA Version 3 SRTM global elevation data.


(1 arc-second and 3 arc-seconds which are a huge file lists)

Note: GRASS GIS installations usually contain a location 'demolocation' which is in Latitude-Longitude, suitable for SRTM import.

Which SRTM tile to take?

SRTM tiles are of 1 degree by 1 degree size. The SRTM filename contains the coordinates which refer to the center of the lower left pixel (e.g., N51E010: lower left cell center at 10E, 51N). To identify a tile name, a grid can be easily visualized in the GRASS monitor:

d.grid size=1

Import of original SRTM tiles in HGT format

Importing multiple SRTM files via GUI menu

You can easily import many SRTM files in one step:

Bulk import of SRTM via menu
Bulk import of SRTM via menu (remember to add 'hgt' into the extension field)

This menu function calls internally the SRTM driver of GDAL.

Importing multiple SRTM files via command line

Use the module for automated import into a Latitude-Longitude location.


  • M.H. Bowman. Mapping freely available high resolution global elevation and vector data in GRASS. GRASS Newsletter, Vol.3, pp 7-10, June 2005. [ PDF ]

Import of CGIAR SRTM void-filled tiles

CGIAR SRTM is a heavily edited version of the original SRTM data. Differences to the original SRTM data can be substantial.

  • SRTM 90 data in GeoTIFF format are available from These come in 5 degree by 5 degree tiles. Horizontal resolution: 3 arc second (90 m at equator). Coverage: world. Import with

Update: note that JPL/NASA (see on top of this page) offers global 1 arc-second resolution SRTM V3 data which are void filled.

Import of multiple SRTM tiles in one step (mosaiking)

To simplify the import of multiple SRTM tiles, the tiles can be mosaicked first with gdalwarp:

Original SRTM tiles:

 # unzip all
 for i in * ; do unzip  $i ; done
 # create mosaik (optionally reproject on the fly with -t_srs)
 gdalwarp *.hgt srtm_mosaik.tif
 # import input=srtm_mosaik output=srtm_mosaik


 # create mosaik (optionally reproject on the fly with -t_srs)
 gdalwarp *.tif srtm_mosaik.tif
 # import input=srtm_mosaik output=srtm_mosaik

Void filling of original SRTM tiles

The module r.fillnulls can be used. See screenshot


  • M. Neteler, 2005. SRTM and VMAP0 data in OGR and GRASS. GRASS Newsletter, Vol.3, pp 2-6, June 2005. [ PDF | Erratum 1/2006 (txt) ]

Update 2014: better use the already void filled SRTM V3 1 arc-second for global coverage (~30 meters) data (get from NASA EarthExplorer, see above)

Import of SRTM tiles with reprojection on the fly

Instead of processing SRTM in a different location, it can be imported right away into the location of interest (e.g. UTM or whatever other projection) through reprojecting on the fly with bilinear resampling using r.import.

Example for North Carolina sample dataset with newest 1 arc-second for global coverage (~30 meters). You get the SRTM V3 1 arc-second global data from EarthExplorer ( The collections are located under the Digital Elevation category.

# set computational region to e.g. Landsat channel 3:
g.region raster=lsat7_2000_30 -p

# Import with reprojection on the fly. Recommended parameters:
# resample   Resampling method to use for reprojection -  bilinear
# extent   Output raster map extent
#    - region: extent of current region
# resolution   Resolution of output raster map
#    - region: current region resolution - limit to g.region setting from above
r.import input=n35_w079_1arc_v3.tif output=srtmv3_resamp resample=bilinear \
  extent=region resolution=region title="SRTM V3 resampled to Landsat7 resolution"

# beautify colors:
r.colors srtmv3_resamp color=elevation

See also