Skip to content

Invalid SRTM zips over the Caspian sea

If you're working with SRTM tiles in .hgt.zip format you might have found some files that can't be processed by gdal (and therefore can't be processed by Open Topo Data):

gdalinfo N44E049.SRTMGL1.hgt.zip
ERROR 4: `N44E049.SRTMGL1.hgt.zip' not recognized as a supported file format.
gdalinfo failed - unable to open 'N44E049.SRTMGL1.hgt.zip'.

There are 16 tiles with this issue

N37E051
N37E052
N38E050
N38E051
N38E052
N39E050
N39E051
N40E051
N41E050
N41E051
N42E049
N42E050
N43E048
N43E049
N44E048
N44E049

all of which cover no-land areas of the Caspian Sea

Map showing location of invalid SRTM zips
Invalid tiles shown in pink. Basemap is Bing aerial imagery.

and have a constant elevation of -29m

gdalinfo -mm N44E049.hgt | grep Min
Computed Min/Max=-29.000,-29.000

What's the issue

Normal .hgt.zip files are a zip archive containing a file named like NxxEyyy.hgt

unzip -l N37E011.SRTMGL1.hgt.zip
Archive:  N37E011.SRTMGL1.hgt.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
 25934402  2012-10-08 15:44   N37E011.hgt
---------                     -------
 25934402                     1 file

But the zips over the Caspian sea contain a file named like NxxEyyy.SRTMGL1.hgt

unzip -l N44E049.SRTMGL1.hgt.zip
Archive:  N44E049.SRTMGL1.hgt.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
 25934402  2015-08-10 10:24   N44E049.SRTMGL1.hgt
---------                     -------
 25934402                     1 file

and unfortunately while GDAL will read NxxEyyy[.something].hgt and NxxEyyy[.something].hgt.zip files just fine, the .hgt file inside the .zip file must be named NxxEyyy.hgt.

Because these tiles all have a constant value (the elevation of the Caspian sea, which is about -29m) and weren't even included in the previous version of SRTM, I'm guessing the files went through a different pipeline to the rest of the datasets. I'm not sure if this is a bug with gdal or the dataset itself.

How to fix these files

The 16 invalid tiles can be fixed by renaming the .hgt file contained within:

unzip N44E049.SRTMGL1.hgt.zip
mv N44E049.SRTMGL1.hgt N44E049.hgt
zip N44E049.SRTMGL1.repacked.hgt.zip N44E049.hgt

Which datasets are affected

Both the 30m and 90m resolutions of SRTM version 3 hosted on usgs.gov/MEASURES are affected.

Version 2 of SRTM just excludes the 16 tiles over the Caspian sea:

Missing srtm v2 files.
dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/

The Cigar version 4.1 of SRTM has the correct elevation.