• 5分钟,ArcGIS 简单几步从天地图中提取出建筑物轮廓的矢量数据


    前言:利用 ArcGIS Pro 从天地图中提取时效性好、位置又准确的建筑物轮廓矢量数据。ArcMap 同理。

    天地图应用越来越广泛,其中的数据是比较权威的,准确性都比较高。

    另外大家的需求也越来越多,想要用好天地图,比如,想要获得某个地区的建筑物轮廓矢量,当然官方是不可能提供下载的,但是我们可以从天地图影像中提取建筑物轮廓矢量,效果还不错。

    1.ArcGIS Pro 下载天地图影像

    1. ArcGIS Pro 可以打开自带的天地图-矢量(CGCS2000);

    1. 如果不显示(基本上大家第一次打开都不会显示),这时打开天地图-矢量(CGCS2000)图层的属性,打开自定义参数,右击 tk 列,移除行,只要把这个 tk 列移除就可以了。

    1. 缩放移动内容窗口到项目区,打开共享选项卡,选择导出地图

      • 不要忘了勾选写入坐标文件

      • 颜色深度选择8位深度

    Note:如果,如果我使用的栅格数据是从其他地方下载好的呢,本身就是彩色的呢?那也没有关系,添加到 ArcGIS Pro 中再按照8位深度导出即可,如果使用栅格函数中的灰度转换方法也是可行的。

    2.栅格二值化

    上一步最后导出的图片如下,颜色深度以8位灰度导出就变成了这种黑白灰的图片,建筑物的轮廓一目了然,同时由于勾选上了写入坐标文件,也没有丢失坐标信息。

    8位灰度表示2的八次方,即256,表示图像从0开始到255,表示图像的像元取值在这个范围内。

    接下来我们需要让0-255的范围取值变成0-2,0表示非建筑物,1表示建筑物,2表示道路,基本上分类三种是极限了,8位灰度图想要再区分更多的地物就非常困难了。

    1. 打开符号系统,在图层右击菜单中找到符号系统并打开;

    1. 符号渲染系统使用分类,方法使用默认的自然间断点分级法,然后类数量选3。手动修改取值范围直到达到满意效果。

      黑色的为非建筑物、白色为建筑物、绿色为道路,如果不单独提取道路的话更加简单。

    1. 设置标注名称,按0表示非建筑物,1表示建筑物,2表示道路来设置名称。

    1. 渲染器导出。

      在设置好分类间隔和标注名称后,右击栅格图层并导出,在导出栅格界面中勾选使用渲染器。勾选后,导出的栅格数据就是在符号系统中分类好了的。

    3.矢量化

    栅格在勾选渲染器后导出结果如下,细心的朋友会发现,“建筑物都没有了”。

    实际上是因为新添加的栅格数据的默认渲染方式都是拉伸,建筑物只是没有在这个软件中呈现出来,数据本身是正确的。

    1. 栅格转矢量。工具箱中找到栅格转面,将栅格数据转为面矢量

    1. 数据处理。构建的矢量面如下,打开属性表,其中默认创建的 gridcode 字段存储了之前设置的标注名称,即:0表示非建筑物,1表示建筑物,2表示道路来设置名称;

      • 可使用按属性选择功能选取出需要的建筑物轮;

      • 根据面积排序,栅格掉细碎图斑,毕竟碎斑和一个建筑物要素的面积差异挺大的。

    最后获得结果

    4.轮廓优化

    放大看单栋建筑物轮廓的矢量,有非常多的折点,歪歪扭扭,锯齿一样,这显然不符合建筑物轮廓的特征,不管是现实地物或者是矢量化的要求。

    这需要优化,使用规则化建筑物覆盖区工具即可,英文名称:RegularizeBuildingFootprint。

    左:优化前;右:优化后

    下面是提取的建筑物矢量图斑。

    ArcMap 提取的操作教程,他是使用了 ArcScan 来完成的,不过好像 ArcGIS Pro 没有 ArcScan,可以参考参考。

    最后,存在的问题

    还有一个说大不大,说小也不小的问题,天地图的矢量影像如何下载?

    尽管文章演示了使用 ArcGIS Pro 来下载天地图,但这种方式下载的范围有限,想要下载大范围的、较高级别清晰度的影像就不可行了。

    我听说水经注和 Bigemap 这些可以下载,我没有试过,我一直是使用的 QGIS 下载,稍后会有详细教程,心急的朋友可以网上搜一搜。

  • 相关阅读:
    阿里云大咖亲码“阿里内部Java面试突击手册”全精华,看完再也不虚了面试官了
    使用Shiro实现权限验证
    【LINUX】CentOS有用的基础软件安装(小白版)
    Mysql8.x版本主从加读写分离(一) mysql8.x主从
    深度分页、唯一索引的坑、分库分表、查询分离、连接池、bufferpool优化等
    [附源码]计算机毕业设计SpringbootON-FIT
    java----内部类(四种内部类详解)
    mysql函数
    Andorid源码编译需要掌握的shell语法(三)
    直播CDN调度技术关键挑战与架构设计
  • 原文地址:https://blog.csdn.net/qq_41570658/article/details/126505971