本文介绍在ArcMap软件中,基于消除面部件(“Eliminate Polygon Part”)工具,对矢量面要素的零碎空洞区域加以删除,同时将游离于要素主体之外的部分剔除的方法。

1 前言

  在上一篇文章ArcMap去除面要素图层中的指定区域中,我们利用“擦除”(“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”即可保存并退出编辑模式。

  至此,大功告成。