高精度地形网格数据 SRTM
文章目录
SRTM,全称为 Shuttle Radar Topography Mission,该项目获取了北纬 60 度至南纬 60 度之间的 雷达影像数据,进一步处理制成了数字地形高程模型(DEM),即现在的 SRTM 地形产品数据。 该数据产品 2003 年开始公开发布,经过多次修订,目前的数据修订版本为 V4.1 版本。更详细的介绍在 这里。
相关信息
有很多机构或网站提供 SRTM 地形数据的下载;从不同网站下载的数据的文件名、文件格式等不同, 因而后期的数据处理方式可能不同,但是一些基本的信息应该是相同的。
基本信息
SRTM 地形数据主要包含两类数据:SRTM3 和 SRTM1。
- SRTM3 精度为 3 弧秒,即 90m 一个点,包括非洲、北美、南美、欧亚、澳大利亚以及部分岛屿;
- SRTM1 精度为 1 弧秒,即 30m 一个点,仅限美国地区;
数据信息 For 1x1
北纬 60 度到南纬 60 度的数据被分成了 1 度 *1 度的单元,共计上万个数据文件。
- 文件名中包含了该单元左下角位置的信息;比如文件名类似N37W105 的数据文件,其单元左下角的坐标为 (37N,105W);
- 每个 SRTM3 数据文件包含了 1201*1201 个采样点;
- 高程数据单位为 m,参考水准面为 WGS84 大地水准面模型;
- 网格划分采用 gridline registration 方式,因而单元的南北边及左右边与相邻单元的边重合。
数据信息 For 5x5
部分网站将数据分割为 5 度 *5度单元,其相对1度*1 度单元使用起来免去了 cut 和 paste 的麻烦。
在经度方向上,从 - 180 度到 180 度,划分为 72 个区块;在纬度方向上,从 60 度到 - 60 度,划分为 24 个区块,
可以参考 这里 的图示,
其文件名格式为 srtm_经度区块数_纬度区块数. zip
。
或者也可以这样计算:
x = int((lon+180.0)/5.0)+1;
y = int((60-lat)/5.0)+1;
其中 lon = [-180,180], lat= [-60,60], 文件名为 srtm_x_y.zip
。
数据来源及格式转换(推荐)
推荐两个数据源。其中 CGIAR-CSI 为主站,中科院提供数据镜像。
CGIAR-CSI
网址: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp
**版本:**4.1
格式: GeoTiff
、 ArcInfo ASCII
备注:
- 数据为 5 度 x5 度一个单元;
- 数据选择界面友好,简单易用,支持鼠标点选、拖曳或者直接输入经纬度范围;
- 鼠标点选的注意事项:鼠标的真实点击位置与地图感知到的点击位置大概相差半个网格间距!点选时需要单击每个单元的下半部分才能选中。不知 Bug 来源,系统问题?浏览器问题?
- 下载数据的时候选择 HTTP 下载方式。若使用 FTP 下载方式需要首先申请用户名和密码。
- 提供
ArcInfo ASCII
和GeoTiff
两种数据格式,需要转换方可在 GMT 中使用。 ArcInfo ASCII
格式的数据可以使用 GMT 自带的xyz2grd
命令转换成 netCDF 格式;Geotiff
格式的数据需要使用 GDAL 提供的命令gdal_translate
转换为 netCDF 格式;- 推荐使用
GeoTiff
格式,文件尺寸相对于ArcInfo ASCII
文件要小很多;
数据转换:
ArcInfo ASCII 格式:
GMT4 提供的 xyz2grd 命令可以直接将 ArcInfo ASCII 格式的数据转换为 GMT 可识别的 netCDF 格式:
xyz2grd srtm_63_02.asc -Gstrm_63_02.grd -E -V
GMT5 的 xyz2grd 不再支持 ArcInfo ASCII 格式,但可使用 gdal 实现转换。
GeoTiff 格式转 netCDF 格式(详情参考 本文):
gdal_translate -of GMT srtm_56_05.tif srtm_56_05.grd
数据合并:
有时需要将多个数据合并成更大区域的数据。常见的做法是先将每个 GeoTiff 文件转换成 netCDF 格式, 然后利用 grdcut 和 grdpaste 进行裁剪与合并。实际操作时,合并总会遇到一些问题, 可能是由于数据的转换过程中存在问题导致的。
推荐的做法是先将多个 GeoTiff 文件合并起来,然将合并后的 GeoTiff 文件转换成 netCDF 格式。
合并 GeoTiff 文件可以用 gdal_merge.py,CentOS 下要安装
gdal-python
;Ubuntu 下要安装 python-gdal
或 python3-gdal
。转换命令如下:
gdal_merge.py -init 255 -o out.tif srtm_56_07.tif srtm_57_07.tif
FTP批量下载:
CGIAR-CSI 提供了 ftp 地址,可以一次性下载全部数据,数据总大小约 14G。 有需要的可以 申请。
申请之后,网站会提供一个网址,以及用户名和密码,可以使用 “Firefox+DownloadThemAll” 下载,也可以使用如下命令下载:
wget -c -r -np --user=xxx --password=xxxxx http://data.cgiar-csi.org/srtm/tiles
Box网盘下载
CGIAR 同时提供了 Box 网盘下载。Box 网盘中包含了重采样之后的数据,数据精度有 250m、500m 和 1km 三种,以满足其他人的需求。
网盘地址:https://hc.box.com/shared/1yidaheouv
密码 (注意感叹号): ThanksCSI!
中国科学院计算机网络信息中心
国际科学数据服务平台: http://datamirror.csdb.cn/dem/search.jsp
版本: V4 和 V4.1
格式: Geotiff 和 ArcInfo ASCII
备注:
- 该网站需要注册才可下载数据;
- 数据是 5 度 *5度一个单元,而不是标准的1度*1 度;
- 在中国区域,还提供一些衍生数据,如坡度、坡向、坡位,数据格式为 img 格式,细节未知;
其他数据来源及格式转换(不推荐)
这里列举了其他的一些数据来源,不推荐在这些网站下载数据。这里列出来是基于其他方面的考虑。
USGS 未名网站
网址:http://dds.cr.usgs.gov/srtm
**版本:**1.0 和 2.1 版本
**格式:**二进制 z 文件
- 高程数据文件的扩展名为 hgt;
- 二进制文件,以有符号二字节整型格式存储。
- 无数据的点其值赋为 - 32768;
- 字节序为 big-endian。
- 数据存储方式为行优先;
数据转换:
这个例子选用的数据是 N52E130.hgt,北纬、东经,-R=130/131/52/53,对于南纬或者西经要注意负号。-Z 后使用 TL 是实践的结果,官方文档中没有给出相关信息。
xyz2grd N52E130.hgt -GN52E130.grd -I3c/3c -R130/131/52/53 -N-32768 -ZTLhw
USGS EarthExplorer
网址:http://earthexplorer.usgs.gov
版本:?.?
**格式:**Geotiff、DTED、BIL
备注:
Geotiff、DTED 需要专门软件处理;BIL 格式本质上就是一般的二进制文件,因而处理方式与 hgt 文件类似,但是有一些细节上的差异:
- 水平方向精度为 6 弧秒,而不是标准的 3 弧秒;
- 字节序为 little endian;
数据转换:
将 BIL 格式转换为 GMT grid 格式:
xyz2grd n52_e130_3arc_v1.bil -GN52E130.grd -I6c/3c -R$R -N-32768 -ZTLh
小结
- 在 5 度 x5 度尺度下,SRTM3 与 GTOPO30 的效果相当,因而当地图范围大于 5 度 x5 度时,没有必要使用 SRTM3 数据;
- 当地图范围小于 3 度 x3 度时,GTOPO30 成图粗糙,需要使用 SRTM3 或者更高精度的数据;
- 中国科学院的数据源实际上是 cgiar-csi 数据源的一个镜像,其在国内下载速度相对较快。 数据源以 5 度 *5 度的形式提供数据,免去了用户自己做网格合并的麻烦,推荐使用。(发文章的时候需要致谢数据来源)
参考
- http://dds.cr.usgs.gov/srtm/version2_1/Documentation/Quickstart.pdf
- http://dds.cr.usgs.gov/srtm/version2_1/Documentation/SRTM_Topo.pdf
- http://www.cgiar-csi.org/data/srtm-90m-digital-elevation-database-v4-1
- gdal_merge
修订历史
- 2013-09-29:初稿;
- 2014-01-01:“中国科学院计算机网络信息中心” 一节代码存在问题,因网址无法访问,暂时无法修订;
- 2014-01-08:增加了 CGIAR-CSI 数据源;
- 2014-01-09:新增了三个下载数据源,重整文章结构,将数据源分为推荐和非推荐两类。
- 2014-01-19:将 CGIAR 的 ftp 和 Box 下载移至不推荐来源中。
- 2014-01-19:重新编排整个文章的结构,将正确性证明部分去除。当初做正确性证明是因为在将 USGS 未名网站提供的数据转换为网格文件时,官方文档提供的信息不充分,所以需要测试验证。现在 SRTM 存在更好的数据源,不必再考虑这个问题。
- 2014-05-22:调整文章结构。由于中科院的数据源一直没有修复,因而仅推荐使用 CGIAR 的数据;
- 2015-01-15:新增
gdal_merge.py
,用于合并 GeoTiff 文件;
文章作者 SeisMan
上次更新 2013-09-29