admin管理员组文章数量:1596408
问题
在精细化的建筑轮廓生产中经常会出现破碎多边形的情况:
- 非建筑错误
如图中红圈部分,这一般是矢量化过程或者分类提取过程中的误差,应允许删除。 - 格网化分隔错误
这类错误通常出现在,利用百度api获取建筑轮廓数据时,由于本身格网存在而导致的分隔,应将其同类建筑物进行合并。 - 常见的矢量化错误
如:压盖,相邻建筑之间存在空隙等。
解决思路
- 常见的矢量化错误可以通过构建拓扑数据集来检测修改
- 对于非建筑类的矢量化错误,就需要先将破碎多边形合并到有公共边界的多边形上,而对于单独存在的破碎多边形应允与删除
- 对于网格化分隔的错误应该按照公共边界将具有高度或者层数属性的楼层进行融合,对于具有公共边界但是属性不同的则不能合并
具体用法
这就有必要提到ArcGIS的data management tools→generation下的dissolve和eliminate
- Eliminate
通过将面与具有最大面积或最长公用边界的邻近面合并来消除面。消除通常用于移除叠加操作(如相交或联合)所生成的小的狭长面。
首先必须使用按属性选择图层或按位置选择图层或者通过查询 ArcMap 中的地图图层来确定选择内容要消除的要素通过删除公用边界来仅将所选面与邻近的未选定面进行合并,若所选面没有邻接多边形将参与任何操作。输入图层必须包含选择内容,否则,消除将失败。
另外Eliminating plygon by border(optional)勾选则表示,按照与相邻边界最长的面进行合并;如不勾选,则是按照最大面积进行合并。
故首先按照属性选择面积小于100m的,然后点击Eliminate进行处理,得到结果。另外值得说明的是如何面积较小的没有相邻多边形,他是不会被消除的,这时候可以视情况,一般手动删除即可。如下图中红圈中的。
- Disslove
该工具功能较多,主要的作用是将相同属性的多边形进行合并,如图所示
具体参数的意义如下所示,有必要提及的就是uplit_lines参数,如何选择默认的参数即可按照具有相邻边界的相同属性的多边形进行合并,同时Create multipart features这个参数一定要不勾选,如果勾选则结果将是将所有相同的属性的面合成一个整面。
这里可以用py脚本来做,这样子可以减少软件崩溃的情况。打开arcgis的Python编译器,输入代码。
arcpy.Dissolve_management("武汉建筑1_Eliminate1", "F://dsa.shp", "Floor", None, "SINGLE_PART", "DISSOLVE_LINES")
结果如下:
从结果中可以看出,被网格切分的建筑物重新合并到一起,同时相同高度的不相邻建筑并没有合并到一起,这就是我们想要的结果。
- 构建拓扑检查消除重叠问题
新建个人地理数据,并新建数据集,将建筑要素导入到数据集下,然后新建拓扑关系,添加不能重叠和不能有缺口两个规则。
打开拓扑工具条和编辑器,检查所有的错误,并针对每条错误一一进行修改即可。
版权声明:本文标题:浅谈ArcGIS之破碎多边形的消除 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728256444a1151071.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论