gdal_viewshed
命令可以使用高程栅格进行视域分析,这对于包括城市规划和电信在内的许多应用来说是非常有用的分析。这与SuperMap常用功能里面的视域分析效果基本相同。不同的是SuperMap提供了视域分析的可视化界面。
在下面的案例中,我们可以利用伦敦1m DSM数据集,从某个位置进行可见性分析。我们将确定从42号塔楼顶部可以看到的伦敦所有区域。这是一座位于伦敦市的摩天大楼。我们采用为任务1创建的合并DSM,并生成一个视域。数据集的CRS是EPSG:27700,因此我们需要在该CRS中获取观察点位置坐标。我们可以使用gdaltransform
命令将纬度/经度坐标转换为目标CRS中的坐标。运行下面的命令,然后按enter。
cd D:\GDALLearn\gdal-tools\london_1m_dsm
gdaltransform -s_srs EPSG:4326 -t_srs EPSG:27700
# 需要输入经纬度
-0.083738 51.515178
这个命令的输出是X和Y坐标533063.782746057 和181324.168273046和0,我们将它们四舍五入,并在gdal_viewshed
命令中使用。在这之前,还要创建一个merged.tif。最终结果图中,可见区域被赋值为255,不可见区域赋值为0。
# 先创建镶嵌的tif
gdalbuildvrt merged.vrt *.asc*
gdal_translate -of GTiff merged.vrt merged.tif
# 视域分析
gdal_viewshed -b 1 -ox 533062 -oy 181324 -oz 10 -md 100000.0 -f GTiff -co COMPRESS=DEFLATE -co PREDICTOR=2 merged.tif viewshed_tower42.tif