使用GDAL下载并转换SRTM的DEM数据(一)
有时候需要用到DEM数据,常用的免费的DEM数据就是SRTM的DEM数据。
SRTM数据主要是由美国太空总署(NASA)和国防部国家测绘局(NIMA)联合测量的,SRTM的全称是Shuttle Radar Topography Mission,即航天飞机雷达地形测绘使命,2000年2月11日上午11时44分,美国“奋进”号航天飞机在佛罗里达州卡那维拉尔角的航天发射中心发射升空,“奋进”号上搭载的SRTM系统共计进行了222小时23分钟的数据采集工作,获取北纬60度至南纬56度之间,面积超过1.19亿平方公里的9.8万亿字节的雷达影像数据,覆盖全球陆地表面的80%以上,该计划共耗资3.64亿美元,获取的雷达影像数据经过两年多的处理,制成了数字地形高程模型,该测量数据覆盖中国全境。
SRTM数据每经纬度方格提供一个文件,精度有1 arc-second和3 arc-seconds两种,称作SRTM1和SRTM3,或者称作30M和90M数据,SRTM1的文件里面包含3601*3601个采样点的高度数据,SRTM3的文件里面包含1201*1201个采样点的高度数据。目前能够免费获取中国境内的RTM3文件,是90米的数据,每个90米的数据点是由9个30米的数据点算术平均得来的。
目前可以找到的SRTM的DEM数据下在地址有下面几个,第一个,最原始的是http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp。将全球分为24×72的大小格网。如下图所示:
然后在网页中选择要下载的区域,下载的格式有GeoTiff和ASCII两种格式,其中海洋部分没有高程数据,所以大部分是没有的。
第二个,国际科学数据服务平台(中国的),地址为:http://datamirror.csdb.cn/admin/datademMain.jsp。里面提供了SRTM90米分辨率原始高程数据和ASTER GDEM30米分辨率数字高程数据产品两种DEM数据。先注册一个帐号,然后就可以下载了。
第三个是位于加利福尼亚圣地亚哥大学的一个ftp,地址是ftp://topex.ucsd.edu/pub/srtm30_plus/。这里面的DEM也是SRTM的,不过该数据对于海洋部分进行了填充,即在原有的高程数据中加入了海洋海深度数据,数据值大于零的为海拔高,小于零的为海深。
关于SRTM数据的介绍以及下载就到这里,下面我们下载的是第三个,从ftp下载数据后发现数据是一个以srtm为后缀的数据,研究发现该数据是一个二进制的裸数据,所以不能用ENVI,Erdas或则ArcGIS等软件直接打开使用,所以在这之前需要做一个格式转换,就是将二进制的裸数据转为常用的GeoTiff等之类的数据。感觉还是蛮麻烦的,有没有一种方式直接下载的同时就把格式转换好呢?
通过之前写过一篇博客,使用GDAL下载网络数据的博客,地址为:http://blog.csdn.net/liminlu0314/article/details/7881285。既然GDAL可以获取网络数据,而且GDAL可以打开裸数据(这部分内容之前也写过一篇博客,地址为:http://blog.csdn.net/liminlu0314/article/details/7753377)。通过这两个知识,要是结合在一起,然后再用GDAL做一个格式转换,不就可以达到我们的目的了吗?
首先从SRTM的ftp的元数据中可以知道,这个数据的大小是一个4800×6000的大小的单波段,有符号的16bit的整形数据。数据的投影就是标准的WGS84的经纬度坐标,分辨率大概是0.008333333333333度。图像左上角的坐标可以从文件名中得到,比如一个文件名为e020n40.Bathymetry.srtm,前四位e020表示东经20度,接下来的n40表示北纬40度,这样我们就可以知道这个数据的六参数就是:【20, 0.008333333333333, 0.0, 40, 0.0, -0.008333333333333】。
有了上面的分析,我们就可以根据之前的如何使用GDAL打开裸数据http://blog.csdn.net/liminlu0314/article/details/7753377,来构造一个VRT的XML文本文件来使用GDAL转换srtm数据了。根据上面的知识,写出的VRT文件的内容如下: