现需要用ArcGIS将多边形面层中是"空洞"的要素查找出来。

代码思路

一开始没有思路,于是写了代码,基本流程如下:

1)遍历需要判断的要素(可通过属性筛选);

2)检查某一要素相邻的所有要素;

3)反向检查某一要素相邻要素的相邻图斑:如果相邻图斑的个数唯一,且相邻图斑的FID与某一要素的FID相同,则某一要素的相邻要素在某一要素"内部",某一要素则为"空洞"要素。

注意:如果数据量过大,可只输出"空洞"要素的FID,然后利用属性查询在ArcGIS中查找即可;对于边界的判断可能有误,最好人工核查。

工具思路

1)用"要素转点"(feature to point)将面转点,目的是保留属性,转换时选中inside选项;

2)用"面转线"(polygon to line)将面转线;

3)再用"要素转面"*feature to polygon)将生成的线转面,转换时用第一步转成的点做label features,并选中preserve attributes选项。

没有相应属性的多边形就是原来的空洞。

ArcGIS查找空洞多边形的更多相关文章

  1. ArcGis融合小多边形到相邻多边形

     在有的时候,我们的数据中可能会有许多细小的图斑,这些并不是我们想要的,需要将它们合并到周围的图斑中,如果一个一个手动合并,那工作量之大简直不敢想象.现在借助ArcGIS的Eliminate工具可 ...

  2. OpenCV探索之路(十一):轮廓查找和多边形包围轮廓

    Canny一类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但它没有将轮廓作为一个整体.所以要将轮廓提起出来,就必须将这些边缘像素组装成轮廓. OpenCV中有一个很强大的函数,它可以从 ...

  3. Triangulation by Ear Clipping(耳切法处理多边形三角划分)

    使用EarClipping三角化多边形(翻译) ---Triangulation by Ear Clipping(http://www.geometrictools.com/Documentation ...

  4. Triangulation by Ear Clipping(耳切法处理多边形三角划分)(转载)

    转载自: https://www.cnblogs.com/xignzou/p/3721494.html 使用EarClipping三角化多边形(翻译) ---Triangulation by Ear ...

  5. ElasticSearch6.5.0【Java客户端之TransportClient】

    说明 TransportClient:网上流传最多的客户端,目前最新版本 Java REST Client:官方推荐的客户端, 官方:我们要在Elasticsearch 7.0的版本中不赞成使用Tra ...

  6. mysql空间扩展 VS PostGIS

    http://www.cnblogs.com/LBSer/p/3629149.html 功能 Mysql spatial extension  PostGIS 空间索引 仅MyISAM支持R树索引,I ...

  7. 使用ElasticSearch完成百万级数据查询附近的人功能

    上一篇文章介绍了ElasticSearch使用Repository和ElasticSearchTemplate完成构建复杂查询条件,简单介绍了ElasticSearch使用地理位置的功能. 这一篇我们 ...

  8. OpenCV-Python 轮廓:更多属性 | 二十四

    目标 在本章中,我们将学习 凸性缺陷以及如何找到它们 查找点到多边形的最短距离 匹配不同的形状 理论和代码 1. 凸性缺陷 我们看到了关于轮廓的第二章的凸包.从这个凸包上的任何偏差都可以被认为是凸性缺 ...

  9. ArcGIS案例学习笔记-查找重叠的多边形

    ArcGIS案例学习笔记-查找重叠的多边形 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于多边形图层,查找具有重叠(相互覆盖)的面 数据: 方法: 1. ...

随机推荐

  1. .NET开源分布式日志框架ExceptionLess实战演练(公开版)

    一.课程介绍 在以前,我们做日志收集大多使用 Log4net,Nlog 等框架,在应用程序变得复杂并且集群的时候,可能传统的方式已经不是很好的适用了,因为收集各个日志并且分析他们将变得麻烦而且浪费时间 ...

  2. 加快Qemu Aarch32虚拟开发板的启动速度

    软件版本 Qemu: 2.8.0 虚拟开发板: vexpress-ca9 概述 之前的博文介绍了将Python移植到开发板上, 根文件系统采用的是ramdisk, 这个文件系统的缺点是修改的内容重启会 ...

  3. ASP.NET MVC与Sql Server建立连接

    用惯了使用Entity Framework连接数据库,本篇就来体验使用SqlConnection连接数据库. 打开Sql Server 2008,创建数据库,创建如下表: create table P ...

  4. Highcharts.Chart

    Highcharts 是一个使用javascript 脚本来生成图表的工具,和jfreechart 作用类似,都用来生成各种图表,并支持图片的导出和打印. 从官网 www.highcharts.com ...

  5. WordPress基础:在浏览站点时顶部显示工具栏显示隐藏

    然后在底部加入: <?php wp_footer();?>

  6. Android 百度地图开发(三)

    实现比例尺功能和替换自带的缩放组件 ScaleView是比例尺控件.ZoomControlView是缩放控件,MainActivity就是我们的主界面了 先看下ZoomControlView类.代码例 ...

  7. java反射遍历实体类属性和类型,并赋值和获取值

    /* * GetModelNameAndType.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ packag ...

  8. vue elementui switch开关控件的使用

    <el-switch @change="test" on-value="1" off-value="0" v-model=" ...

  9. JQuery中的对象和事件

    一:JQuery 对象和 Dom 对象 在使用 JQuery 过程中,我们一般(也是绝大多数情况下,除非我们使用了第二个框架)只有两类对象,即:JQuery 对象和 Dom 对象.Dom 对象指的是普 ...

  10. MySql排名查询

    1.新建一张成绩表 -- 新建成绩表 CREATE TABLE IF NOT EXISTS `score` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT ...