本文介绍在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”即可保存并退出编辑模式。

  至此,大功告成。

ArcGIS填补面图层的细小空白并删除主体部分外的零散部分的更多相关文章

  1. ArcGIS制图——多图层道路压盖处理

    [1]      启动ArcMap,载入各道路要素类.生成名为All-Roads的图层组,如他所看到的,符号级别绘制将对图层组内图层符号起作用: 图层组设置符号等级 [2]      在内容列表中,右 ...

  2. Arcgis engine 指定图层对要素进行创建、删除等操作

    Arcgis engine 指定图层创建点要素 在指定的图层上创建一个点要素,点要素的位置是通过X,Y坐标指定的,下面是具体的注释 .其中 和IFeatureClassWrite接口有关的代码不要好像 ...

  3. ArcGIS Mobile 自定义图层在绘制面时节点未绘制完全的问题

    ArcGIS Mobile 自定义图层在绘制面时节点未绘制完全,如下图: 面的绘制代码如下: public void Draw(Display dis, Pen p1, Pen p2,Pen p3 , ...

  4. ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新

    ArcGIS Engine效率探究——要素的添加和删除.属性的读取和更新 来自:http://blog.csdn.net/freewaywalker/article/details/23703863 ...

  5. arcgis silverlight api 图层介绍

    Layer |--TiledMapServiceLayer | |--ArcGISTiledMapServiceLayer |--DynamicLayer | |--DynamicMapService ...

  6. 如何快速批量修改ArcGIS中的图层设置

    在ArcGIS中作图的时候,我们通常需要设置图层的颜色和粗细.点击图层的颜色,会跳出以下符号选择器: 右侧即可修改我们需要的属性. 但是我们有多个类似的属性如何修改成统一的样式呢? 鼠标图层右键,选择 ...

  7. ArcGIS Server 动态图层发布调用图解

    目录 1 前言 1.1 简介 1.2 适用场景 2 动态图层 2.1 共享地图服务 2.2 动态工作空间添加 2.2.1 企业级数据库 2.2.2 shapefile文件夹 2.2.3 栅格文件夹 2 ...

  8. ArcGIS for Android图层记录数,图层选择记录,图层字段数

    Log.d("图层记录数:", "" + pFeatureLayer.getFeatureTable().getNumberOfFeatures()); Log ...

  9. ArcGis基础——设置图层可选状态

    在ArcMap的图层列表上右键,可以设置“仅本图层可选”. 那么,如何设置回多个或者全部图层可选状态呢? 1.在ArcMap的菜单栏找到 自定义——自定义模式——选择——设置可选图层. 2.将“设置可 ...

  10. ArcGIS 同一要素图层合并

随机推荐

  1. druid数据库连接池在使用中遇到的一些问题和说明

    get connection timeout retry : 1 2024-02-06 11:18:26.364 ERROR 23752 --- [eate-1838225797] com.aliba ...

  2. Coursera self-driving2, State Estimation and Localization Week4, LIDAR

    operating principles 工作原理 Velodyne 加州,Hokuyo 日本,SICK 德国 TOF 就是用发出去收到的时间差和光速算距离 basic LIDAR models (2 ...

  3. Hash表实践 —— 两数之和

    目录 题目背景 解题思路 题目背景 这个题目用常规的双循环就可以完成. 但不是最优解.为什么? 看看他的步骤数: N =[3,2,4] 求结果为6的两个元素坐标如下, 1). 3+2 = 5 不等于 ...

  4. CSS – Width & Height Auto and Percentage

    前言 这个非常基础, 我在学 W3Schools 之前就已经会了, 所以之前一直没用记入起来. 但偶尔遇到一些场景时还是会被坑到. 所以特别写这一篇, 提升记忆. width / height aut ...

  5. 前后端沟通 naming conversion 转换需要知道的事

    c# 是 pascal case, js 是 camel case 所以在做 web api 和 odata 的时候经常需要转换. 早年 web api 是依赖 Newtonsoft json (JS ...

  6. mongo查看服务状态

    转载请注明出处: 查看数据库列表 show dbs 查看当前数据库 db 查看集合列表 show collections 查看数据库的状态 db.stats() 查看集合的状态 db.collecti ...

  7. Libevent学习-源码下载和交叉编译,示例代码运行

    1. 官网 2. 交叉编译 我的当前环境 mips平台交叉编译说明 先解压下载后的libevent源码压缩包然后cd进入解压后的文件夹libevent-2.1.11-stable: <1. ./ ...

  8. 第22天:安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用

    #数据库操作-mysqli函数&增删改查 PHP函数:连接,选择,执行,结果,关闭等 参考:https://www.runoob.com/php/php-ref-mysqli.html 常用: ...

  9. AD域下,没有登录服务器处理登录请求

    原因: IP地址配置有问题 或者 DNS : 解决办法: 重新设置 IP地址 和 DNS : 此案例中, 切换到 test 账户(域管理员)后发现 , 未配置 IP地址 和 DNS :

  10. 阿里云Centos7修改MariaDB数据库连接时间,解决连接mysql报Too many connection的问题

    在测项目的时候突然发现数据库连接不上了,提示Too many connection. 产生问题的原因是MySQL的Sleep进程占用了大量的连接,当时是重启mysql解决的这个问题!后来又配置了连接池 ...