针对Arcmap删除矢量图层指定条件要素的问题,对于一个GISer来说,首先想到的应该就是使用Arcmap中编辑工具进行处理。即启动编辑工具之后,采用属性选择工具,选择要删除的要素,然后直接Delete之后保存数据即可,这是最直接和便捷的方法。当然还有很多其他的方法,比如采用AE编程实现要素删除,可以定制自己需要的各种功能,也可以是使用Python库-Gdal编程实现要素删除,比如这篇:python批量删除shapefile文件中某字段的指定属性值_空中旋转篮球的博客-CSDN博客https://soderayer.blog.csdn.net/article/details/123087405。当然,也有不少其他软件可以实现这个目标。
虽然Arcmap中编辑工具是最简单的办法,这对于少量数据来说也问题不大,但是对于大量数据处理就有些难以处理了。以我自己处理的一个数据为例,一个点图层矢量数据,有大几十万个点,启动编辑工具之后,长时间处于加载状态,Arcmap对于这种大批量数据处理效率十分低下,长时间无法进入编辑状态,后期即使进入编辑状态后处理数据速度也比较慢。因此针对大数据,这种方法不太可可取,效率太低下了。
而编程的方法对于一些新手来说光是配置环境就很麻烦,而且如果数据不是很多,不需要业务化运行需求的话,也没有必要去进行编程。
这对以上问题,我们可以使用Arcmap中其他工具来实现图层指定要素的删除:
方法1:使用Arcgis自带工具箱中的Delete Features工具来实现快速删除。
工具路径:Data Management Tools->Featurs->Delete Features
从右侧的帮助说明来看,我们知道这个工具可以删除图层中的所有要素或者选择的要素。我们来测试一下效果:
打开一个矢量数据如下,图层中具有大量的点图层:
如果直接使用该工具,就删除了图层中所有的要素。我们选择一些指定条件的要素,如下图:
这里使用Select工具中的Select By Attribute……菜单选择特定条件的要素。
然后我们使用该工具删除要素选中操作图层,点击OK,再看看效结果:
从结果来看,选中的要素删除了,速度也很快。
方法2:使用Arcgis中选择工具保存为新数据的方法获得删除后的图层数据。
具体过程如下:
1.使用Select工具中的Select By Attribute……菜单选择特定条件的待删除要素。
2.右键图层,Open Attribute Table菜单打开属性表。
使用Switch Select工具反选,这些选择的要素就是需要保存的要素。
3.将选择要素创建为新的图层,即使用右键菜单Selection中的Create Layer From Seleted Features
新创建的图层是临时存储的,我们需要将数据重新保存为新的图层,如下图中的Data菜单中的Export Data工具保存为新的矢量数据。这样也实现了数据指定要素的删除。效率也比Editor编辑工具更快。
至此,本文完毕,希望对大家有所帮助!