使用阿富汗和巴基斯坦地区的SRTM数据生成山体阴影和彩色地形图
使用阿富汗和巴基斯坦地区的SRTM数据生成山体阴影和彩色地形图
数据来自GIST,工具来自GDAL
原文地址:http://developmentseed.org/blog/2009/jul/01/generating-custom-map-tiles-rapidly-cloud/
在阿富汗和巴基斯坦这样多山的地方,高程数据是非常重要的。GIST项目是使用航天飞机雷达地形测绘任务(STRM)获取各个国家的高程数据,并存储为GeoTIFF格式。
但是使用栅格数据处理和使用矢量数据(比如shp文件)处理是两种完全不同的处理流程。幸运的是,开源的GDAL项目提供了非常好的工具来处理这些文件。
一个叫gdaldem新工具,可以使用高程数据生成山体阴影数据以及彩色地形图。山体阴影使用原始的高程数据生成高山或者丘陵在某一侧的影子;而彩色地形图是把高程数据中不同的高度用不同的颜色来进行渲染。这两个工具结合起来产生的图像效果非常惊人。(点击下面的图可以查看大图)

图1 山体阴影图

图2 彩色地形图

图3 上面两个图像组合的图像
下面的步骤就是讲怎么生成上面的图像的一个教程。来自DM Solutions Group。
1、安装GDAL。在写这篇文章的时候,这个gdaldem还在开发库中,所以你可以从svn获取或者使用一个nightly snapshot的版本来使用。(译者注:这篇文章写于2009年7月30日,当时gdaldem还没更新到稳定版本)。
2、我的原始dem数据一共有9个GeoTiff文件(阿富汗有4个,巴基斯坦有5个)。首先我使用gdal_merge.py把这9个文件合并为一个1.4G的文件(译者注:现在也可以gdalbuildvrt工具来完成这个功能了,如果你觉得python脚本不方便的话)。
gdal_merge.py的命令行为:
$gdalwarp -s_srs EPSG:4326 -t_srs EPSG:900913 color_relief_afpak.tifcolor_relief_afpak_goog.tif$gdalwarp -s_srs EPSG:4326 -t_srs EPSG:900913 color_relief_afpak.tifcolor_relief_afpak_goog.tif
最后输出的结果是两个比较大的tif文件。把这两个文件用QGIS打开,然后把山体阴影数据放到上面,将其透明度设置为70%,然后效果看起来非常好。
对于这一点,我们使用的tile rendering infrastructure(译者注:这个tile renderinginfrastructure可以参考这里http://developmentseed.org/blog/2009/jul/01/generating-custom-map-tiles-rapidly-cloud/)软件不支持栅格数据。因为我们中心使用的是PostgreSQL数据库作为唯一的数据源,而PostgreSQL数据库只能存储矢量数据,所以我们现在使用S3来存储栅格数据。当需要的时候,这些数据自动下载到计算节点进行渲染。