本文介绍在ArcMap软件中,基于消除面部件(“Eliminate Polygon Part”)工具,对矢量面要素的零碎、空洞区域加以删除,同时将游离于要素主体之外的部分剔除的方法。
1 前言
在上一篇文章ArcMap去掉某一面要素与另一面要素重合的部分(https://developer.aliyun.com/article/1155919)中,我们利用“擦除”(“Erase”)方法,对一个包含水体与陆地的研究区域,剔除了其中的水体部分。可是所得到剔除后的区域并不是很理想,如下图所示。
在这里,有两个问题。
首先,可以看到,其中含有很多零碎的空洞区域:
这些零碎区域可能在实际情况中,确实是小水塘、小水渠、小水沟等面积较小的水体部分,但是对于一些研究而言,出现这种零碎的区域可能会影响后期空间分析的计算效率,没必要保留。
其次,可以看到,有一些区域单独游离于整体的面要素之外,也就是其没有与面要素的主体部分具有连接:
这些区域在实际情况中,可能是水体上的小岛或桥体等,但是如果我们后续研究对于这一部分区域分类的精度要求不大的话,这些小块块对于计算速度同样有着负面的影响。
因此,我们希望将上述前者零碎空洞区域补全,将上述后者单独游离区域剔除,该怎么办呢?
2 零碎小面积空洞区域补全
首先进行第一步,补全零碎小面积空洞区域。
这里,我们需要结合ArcMap中的消除面部件(“Eliminate Polygon Part”)加以实现。
选择“System Toolboxes”→“Data Management Tools.tbx”→“Generalization”→“Eliminate Polygon Part”。
其中,“Input Features”为需要补全空洞区域的图层,第二项为输出图层路径与名称,第三项为空洞区域补全的判断依据,其中“AREA”是指面积,也就是小于指定面积的部分都会被当作空洞区域补全;“PERCENT”是百分比,也就是在整个图层中,小于图层总面积指定百分比的区域都会被当作空洞区域补全。接下来是对“AREA”与“PERCENT”具体的数值加以明确。
因为我这里就是想把面积比较小的区域补全,因此就选择了“AREA”这一选项,面积阈值暂时选择8000
,后期看结果怎么样再加以调整即可。
点击“OK”。可以看到,所得结果是不是较之处理前,少了很多零碎的区域。
如果大家觉得这个阈值不太好,可以重复上述操作,修改面积阈值,直到获取满意的结果。
用一个动图,大家可以看看前后效果的对比(由黄色变为绿色这个过程)。
3 单独部分区域分离并剔除
接下来,我们对单独部分区域进行分离并剔除。
第一步,我们需要保证打开“Editor”与“Advanced Editing”控件。直接在ArcMap上方工具栏右键,在对应的项目前打勾即可。
首先,在“Editor”控件中,选择“Editor”→“Start Editing”,打开编辑模式。
用鼠标选中整个图层。
此时我们可以看到,这些游离于主体图层之外的小区域,尽管他们与图层面要素其他部分没有任何连接,但还是属于整体区域之内的一部分。因此,在将他们删除之前,肯定首先要将其分离出来,使其不要再成为面要素主体区域的一部分。
在“Advanced Editing”控件中,选择“Explode Multipart Feature”。
鼠标左键选中一个单独的区域。
在键盘中按下“Delete”,即可将其删除。
多次重复,即可将这些游离于主体部分之外的全部面要素删除。
完成之后,选择“Editor”→“Save Edits”,并再选择“Stop Editing”即可保存并退出编辑模式。
至此,大功告成。