先从 QGIS 中下载了苏州市部分主城区的天地图图像,参考系为3857,空间分辨率为0.5米,共1.6G。
左:下载的天地图矢量图像;右边:放大后
(虽然叫天地图矢量图像,但本质是服务器端渲染使用矢量数据制作的切片图片,在客服端显示而已,并不是矢量。)
将下载的图像添加到任意 GIS 软件中,比如 ArcGIS Pro 或 ArcMap,我们需要将其灰度图化,我也喜欢叫二值化。
在 GIS 软件的符号系统中选择拉伸,拉伸色带使用黑白色带,然后导出,导出设置选择渲染器导出,他就会根据当前栅格的渲染结果进行导出。
导出结果如下
密密麻麻的白点全是建筑物
然后根据灰度图设置合适的阈值将建筑物和非建筑物分开,然后导出栅格(勾选渲染器)。
ArcGIS Pro 符号系统
再次提醒,这不是一篇详细的教程文章,因为之前已经写过了,所以步骤不会非常详细。如果卡在某些地方,可以翻阅一开头提到的教程,非常详细。
将分类导出的栅格数据转为面矢量数据。
需要注意的是,根据工具中是否勾选简化面,结果会有差别。
下面左边没有勾选简化面,右边勾选了简化面,有较为明显的差别。
另外最后导出的矢量效果和下载栅格数据的空间分辨率也有一定的关系,注意事项中会详细说明。
一开始下载的栅格数据的空间分辨率对最后的结果有非常大的影响,下面左边是下载的1米空间分辨率的天地图矢量瓦片,右边是0.5米,仅从图片上就能明显看到清晰度的差异。
在处理后,得到的最终结果也有非常大的差别,左边是从1米空间分辨率的天地图中提取的,右边则是0.5米。可以明显看到左边的锯齿更多,不光滑。
所以提高下载栅格的空间分辨率能有效把关最后的提取轮廓矢量质量。
当然一味的高空间分辨率也是不可取的,因为原始栅格影像的切片级数已经到头了,再高也不会有清晰度的提升,只会增加数据存储大小。
在最后从栅格转面的时候,勾选简化面能有效平滑矢量轮廓的锯齿,如果还是没有达到期望的话,可以尝试以下工具:
这些处理可能会消耗大量计算机性能,毕竟图斑、折点数都很多。
(听到笔记本的风扇声,我怕它起飞后找不回来了 😢)
放大看效果,道路也被提取出来,如何剔除道路呢?
通常道路的值都是统一的,毕竟颜色都一致,或者就两三种颜色,通常与建筑物的颜色不一样,我们可以在确定道路的值后,使用栅格计算器将该值得像元抹去,或者设置为其他会被排除的值。
更具体的处理步骤是在二值化后,整个栅格数据的像元值分布在0-255,确定道路的值后,使用栅格计算器精确打击!
完毕!建议收藏!
抛砖引玉,欢迎大家后台提出建议!