首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

施用GDAL对DEM渲染处理流程

2013-01-26 
使用GDAL对DEM渲染处理流程下面是翻译的一篇国外的博客,没有严格按照原文的字面意思翻译,是按照我自己的理

使用GDAL对DEM渲染处理流程

下面是翻译的一篇国外的博客,没有严格按照原文的字面意思翻译,是按照我自己的理解来进行翻译的,如果有错误,还请大家指正,原文地址是:http://linfiniti.com/2010/12/a-workflow-for-creating-beautiful-relief-shaded-dems-using-gdal/。

有时候我使用QGIS的Hillshade插件来生成山体阴影数据,然后和原来的DEM数据叠加显示。使用颜色表渲染后以及使用半透明显示的效果下图所示:

施用GDAL对DEM渲染处理流程

图1 使用hillshade使用假彩色渲染的效果

这种处理方式很好,但是有点不太方便(英文单词是impractical,没想到好的词语来代替,按照我的理解来翻的)。这是一种将DEM数据进行渲染的很好的方式。除此此外,我还希望能够指定一个shp文件来裁切渲染后的图像。幸运的是,GDAL提供的工具就可以达到这个目的。目前已经有一些很好的文章(比如这篇:http://developmentseed.org/blog/2009/jul/30/using-open-source-tools-make-elevation-maps-afghanistan-and-pakistan/,这篇翻译的地址:http://blog.csdn.net/liminlu0314/article/details/8526502)来说明这个处理流程,但是我还是要写这篇文章,因为我增加了一些步骤使我处理的更好。 

写在开始之前

在开始之前,你需要有下面的数据:

    DEM数据——我这里的数据名字是“alt.tif”矢量数据(比如shp格式),范围是你最终处理结果的范围——我这里的名字是“Tanzania.shp”
生成hillshade图像

首先我们需要生成一个山体阴影数据。QGIS里面有一个使用python写的很好用的插件。在GRASS中使用这个插件可以来生成山体阴影数据。但在本文中,我将使用GDAL提供的工具来生成。我们要使用的是一个叫gdaldem的命令行程序。在这里我不会对gdaldem的参数进行说明解释,因为在gdaldem的帮助文档中有详细的说明。

我们生成山体阴影数据的命令行如下:

图2 处理生成的山体阴影数据

创建地形渲染图

这个步骤中,我们将创建一个彩色的地形数据。关于色彩理论在互联网上有很多内容,如果你想了解更多的内容请使用Google搜索“colorberwer”。另一个我最喜欢的网站colourlovers.com也可以来进行了解关于色彩的知识。下面我将说明怎么生成一个调色板文件。

首先你需要选择了一个合适的颜色调色板(其中大约有五、六个颜色),此外你还需要知道DEM数据中的高程范围。这个范围你可以在QGIS很容易的点几次鼠标就搞定了,但是这里我们使用gdal的命令行:

图3 Landcarpet Europe颜色

调色板的内容如下:


图4 生成的彩色地形图

处理的结果好像和调色板设置的颜色不太一致,不要担心,我们将在下面的步骤进行处理。

合并两个图像

接下来的步骤是将上面生成的两个图像合并起来。我使用Frank Warmerdam的hsv_merge.py脚本来完成。命令行脚本如下:

图5 使用山体阴影数据和颜色渲染数据合并后的数据

你可能已经注意到,目前处理的颜色和我们使用的调色板的颜色比较类似了。这里有点小问题,就是把图像中的Nodata值变成了白色(RGB:255 255 255)。

裁切和掩码

通过上面的步骤你可能已经得到了你想要的结果。此外,你还可以使用矢量数据来对数据进行裁切和掩码。命令行代码如下:

图6 最终结果:坦桑尼亚假彩色高程地图

最后再说明一点

我喜欢命令行的方式,主要是可以当作工作流重复的来进行处理。我在这篇博客中列举的所有的命令行,可以在任何时候进行执行。如果你仍然使用GUI程序来进行处理,那么你可以使用BASH(类似Windows下的bat批处理)来试试——你可以使用它处理很多的地理数据。

热点排行