ASTER GDEM镶嵌

ASTER GDEM(先进星载热发射和反射辐射仪全球数字高程模型)是美国航天局(NASA)与日本经济产业省(METI)共同推出了最新的地球电子地形数据,该数据是根据NASA的新一代对地观测卫星Terra的详尽观测结果制作完成的。目前,可以在网上免费获取ASTER GDEM数据。

下载地址:

http://www.gdem.aster.ersdac.or.jp/search.jsp

http://datamirror.csdb.cn/dem/search1.jsp

由于国外的网址下载速度比较慢,因此采用中科院的镜像网站(上面第二个网址)下载,下载后将压缩包解开,其中有三个文件,名为ASTGTM_********_DEM_UTM.img的为DEM数据,在ArcGIS中可以看到它的坐标为UTM坐标系统。熟知UTM坐标系的读者应该知道,它是采用6度分带的方法来投影不同地区,这也就意味着不同分度带的地图可能具有相同的坐标系统,因此在进行跨带拼接的时候是比较麻烦的。

通过实际操作发现,从地址2中下载的数据不管是否跨带,在ArcGIS 9.3中可以正常的读取和接边,通过Toolbox中的Data Management Tools—>Raster—>Raster Dataset—>Mosaic/Mosaic to New Raster工具可以很好的将ASTER GDEM镶嵌在一起,在数据量比较少的时候是非常方便的。但是如果数据量比较大,那就要耗费非常多的时间了。笔者用这个方法拼接整个山东省的DEM用了一个小时左右,心疼本本啊。

鉴于ArcGIS镶嵌大数据量的GDEM十分耗费时间,因此想通过其他的软件进行镶嵌,但是实际操作发现,在ERDAS中镶嵌的图像有缝隙,ENVI无法正常读取下载的*.img格式文件。于是我又想到了Arc/Info Workstation,这是一个面向过程的软件,其工作效率是非常高的。但是Arc/Info无法操作*.img格式的数据,因此在使用Arc/Info时应该现将数据转换为GRID格式。通过操作发现,Arc/Info在拼接不跨带的GDEM数据时是没有什么问题的,但是如果数据跨带,拼接起来的图像会有错位。

为了消除这种错位,笔者想到了先进行投影变换,将UTM的投影坐标转换为WGS84的地理坐标(球面坐标),因为UTM与WGS84使用的椭球体是相同的,所以不用使用3参或7参。经过投影变换后就将原来的以“米”为单位的图像转换为以“经纬度”为坐标的数据。GDEM数据也由原来的有倾斜变为横平竖直的矩形。这样在Arc/Info的GRID模块下,利用Merge命令可以很快将大数据量的GDEM镶嵌起来。镶嵌好的数据可以通过投影变换变换到我们需要的投影上。图一是用Arc/Info镶嵌好图像后转换为Albers坐标系统后的DEM。

图一    Arc/Info拼接的图像投影变换为Alber坐标后
图一    Arc/Info拼接的图像投影变换为Alber坐标后

从图一中我们可以看到,投影变换后的GDEM与矢量边界数据套合的非常好。

8 comments

  1. 您好,看到arcmap里merge只能用于矢量,栅格的用mosaic to new raster,但是用mosaic to new raster 时总出错,请问下在workstation里怎么用merge呢(在您的指点下,又重装了workstation,现在grid能用了,谢谢),能指点下吗?该怎么操作,谢谢,非常感谢。

    1. 呵呵,不好意思,上一条留言看错了,ArcMap中merge确实只能用于矢量的合并,如果是栅格,那么使用Mosaic,如果出错,检查一下插件中,空间分析是否勾选。

  2. 您好,看到arcmap里merge只能用于矢量,栅格的用mosaic to new raster,但是用mosaic to new raster 时总出错,请问下在workstation里怎么用merge呢,能指点下吗?该怎么操作,谢谢,非常感谢。

    1. GRID模块下,merge的使用是比较简单的,具体的你可以查阅帮助文件。现在我电脑上也没有装Workstation,不好给你说,我记得是outgrid = merge (grid1,grid2,……)

  3. 您好,我想请教下,arcmap里的merge可以做这个拼接吗?我会一点点python,但是aml不会。谢谢

    1. 呵呵,当然可以,但是如果拼接的数据量比较大的话,会比较耗时间。

  4. 您好,我现在在学习这个拼接,此前一直遇到您说的那些问题,现在终于找到方法了,不知道怎么回事我装的arc/info.选择grid工具时就自动关闭了。还有批处理怎么做呢,是要用AML写程序吗?非常感谢

    1. 这个我也没有碰到这样的情况啊,你重新安装一次Arc/Info试试,这个有可能是系统的问题。批处理最好是写AML程序。

Comments are closed.