Arcgis小技巧【14】——拓扑(Topology)的方方面面

news2024/12/26 11:01:25

在ArcGIS中,拓扑是定义点要素、线要素以及面要素共享重叠几何的方式的排列布置。

简单来说,我们可以将拓扑理解各类要素的地理空间关系,如重叠、相交、相连等。

拓扑的主要功能就是用于保证数据质量,当然它还有其它很多功能,水平有限就不展开了。


一、新建并验证拓扑

拓扑是建立在【要素数据集】以及保存在这个要素数据集里的一个或多个【要素类】的基础之上。

  • 一个拓扑可以引用同一个要素数据集中的一个或多个要素类。
  • 一个要素数据集可具有多个拓扑。
  • 但是,一个要素类只能属于一个拓扑。
  • 一个要素类不能同时属于一个拓扑和一个几何网络。
  • 但是,一个要素类可以同时属于一个拓扑和一个网络数据集或地形数据集。

基于以上规则,新建拓扑的操作步骤如下:

1、新建一个地理数据库(以GDB为例)。

2、新建一个要素数据集,注意要素数据集的坐标系与参与拓扑的要素类保持一致,其它默认即可。

3、将要参与拓扑的要素类导入要素数据集中,可以单个,也可以多个。

4、在要素数据集下新建拓扑。

过程中有2个步骤需要注意,一是【选择参与拓扑的要素】,在这里要把你要拓扑的要素类选中:

二是【拓扑规则】,点击【添加规则】,新建要拓扑的规则:

一般常用的规则如下:

(a)面要素拓扑规则

不能重叠不能有空隙不能与其它要素重叠必须相互覆盖

(b)线要素拓扑规则

不能重叠不能相交不能有悬挂点不能有伪结点

(c)点要素拓扑规则

必须不相交必须被其它要素覆盖必须完全位于内部点必须被线覆盖

新建拓扑完成后,一般情况下会弹出一个窗口询问是否验证拓扑,直接点是即可马上验证:

如果点了否也没关系,右键拓扑进行验证:

验证完成后,将拓扑直接拖入地图中即可看到拓扑结果,这里以面要素的重叠和空隙2个规则为例:

PS:如果之规则没有设置好,可以右键点击拓扑里的【属性】再进行修改。修改后要重新验证


二、修改拓扑错误

1、打开编辑器工具条的【开始编辑】。如果没有相应工具条,可以右键工具栏调出来:

2、调出【拓扑】工具条,方法和上面一样:

3、拓扑工具条上的工具有好几个,我试过用后,感觉前面几个都不怎么好用,最终选择了最后一个【错误检查器】。这个按个人习惯,也不好说我的选择一定是对的。

点击后以表格形式打开错误检查器,在最左侧下拉框中选择验证过的拓扑规则,再点击【立即搜索】,就可以在下方表格中列出相应的拓扑错误。

注意右侧有个【仅搜索可见范围】的复选框,点选的情况下,只会显示当前视图中可见范围的错误,建议取消勾选,避免遗漏。

选择一个错误行,右键点击【缩放至或平移至】,即可切换到错误处。

当前选中错误会被显示为黑色边框,同时可以观察到右键选项中还有【剪除、合并、创建要素】等处理拓扑错误的方法选项。

以上面的重叠错误为例,拓扑出来的错误是重叠部分,需要将这重叠部分并入周边某个要素中,因此建议采用【合并】工具。

注意合并窗口中会列出重叠的2个要素,可以选择可其中1个要素合并,点击列表框中的要素,视图中对应的要素会绿色显示,要留意一下。

如果是空隙错误,拓扑出来的错误是个空洞,没有要素,因此应先【创建要素】,再【合并】。

不过创建要素后的合并,就需要在【编辑器】工具条中进行了。

选中新创建的要素,以及需要合并至的要素,点击【编辑器】工具条中的【合并】工具即可:

以上是基于面要素的【重叠和空隙】错误进行修改的演示,其它错误可自行尝试。

遇事不决点右键即可。


三、使用工具查找拓扑错误

虽然看着有点怪,但实际上我在具体工作中,拓扑并非第一选择,因为我更喜欢用工具箱。

新建拓扑、验证拓扑这一路下来,其实挺麻烦的,于是便尝试用工具箱来做拓扑检查。

这里还是举上面2个例子,要要素的【重叠和空隙】检查。

1、面要素重叠

重叠检查比较简单,只要一个【相交】工具即可。

习惯了多个要素类的相交,其实单个要素类也可以相交。

相交结果如下:

2、面要素空隙

空隙检查相对麻烦一些,需要几个工具结合使用。包括【要素转线、要素转面、擦除】。

工具执行流程如下:

工具执行结果如下,比拓扑检查出来更好的是,最外围的边界不会被判定为空隙:


四、使用工具处理拓扑错误

既然可以用工具检查拓扑错误,那自然也有一些工具可以用来处理拓扑错误。

工具处理拓扑的好处是可以批处理,不用一个一个修改,但是相应的不足之处也很明显,就是准确率不能保证。

实际上在工作中我并不会采用这种方式,这里只是给大家提供一个思路,或许可以在数据量庞大而不需要很精确的情况下适用。

主要工具是编辑工具箱下的几个工具:

以及【数据管理工具】下【要素类】的【整合】工具:

这里就不一一说明,有兴趣的可以试一下。

效果只能说,不符合我的精度要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【物联网】浅谈单片机中的看门狗

STM32看门狗是一种重要的系统保护机制,能够监控系统的运行状态并在故障时自动重启。它在各个领域都有广泛的应用,如工业自动化、通信设备和汽车电子等。通过配置和控制看门狗定时器,我们可以提高系统的稳定性和可靠性。在实际应用中&#xff…

43 验证二叉搜索树

验证二叉搜索树 理解题意:验证搜索二叉树:中序遍历是升序题解1 递归(学习学习!)题解2 中序遍历(保持升序) 给你一个二叉树的根节点 root ,判断其是否是一个 有效的二叉搜索树。 有…

selenium查找网页如何处理网站资源一直加载非常卡或者失败的情况

selenium查找网页如何处理网站资源一直加载失败的情况 selenium获取一个网页,某个网页的资源卡了很久还没有加载成功,如何放弃这个卡的数据,继续往下走 有2钟方式。通常可以采用下面的方式一来处理这种情况 方式一、WebDriverWait 这种方式…

【python】pandas库

文章目录 简单介绍Series数据结构DataFrame数据结构索引对象基本功能reindex重新索引drop丢弃指定轴上的项索引、选取和过滤用loc和iloc进行选取算法运行数据对齐DataFrame和Series之间的运算函数应用和映射排名和排序 简单介绍 pandas是python进行数据分析中非常重要的一个库…

linux MySQL高阶语句

linux MySQL高阶语句 1、MySQL高级语言1.1order by排序1.2group by分组1.3limit前几行1.4as别名1.5通配符1.6子查询1.7in1.8not in1.9exists 2、视图2.1视图概念2.2功能2.3应用场景2.4视图和表的区别和联系2.5创建视图 3、null值3.1null值3.2null值与空值的区别3.3验证null和空…

MYSQL的CRUD语句(含c++代码)

一.MySQl表的创建与删除 创建语句与删除语句 注意: 主键的数据类型,不可以是变长度类型需要()限制长度,表名字需要使用符号来包围。 二.MySQl数据插入 三.MySQl数据删除 四.MySQl数据更新 使用语句 SET SQL_SAFE_UPDATES 0; show variabl…

Makefile核心(第一节)

文章目录 前言Makefile核心举例讲解结束 前言 曾以为学习过程是痛苦的,其实真正静下心来是美好的,虽然很枯燥,但生活就是这样,不学习还能干吗呢…… ——张顺 makefile是相当重要的,只要你要写大工程,就必须…

十天学完基础数据结构-第三天(数组(Array))

数组的基本概念 数组是一种线性数据结构,用于存储相同数据类型的元素。它具有以下基本概念: 元素:数组中的每个数据项称为元素,可以是整数、浮点数、字符等。 索引:每个元素在数组中都有一个唯一的位置,称…

JavaScript系列从入门到精通系列第十四篇:JavaScript中函数的简介以及函数的声明方式以及函数的调用

文章目录 一:函数的简介 1:概念和简介 2:创建一个函数对象 3:调用函数对象 4:函数对象的普通功能 5:使用函数声明来创建一个函数对象 6:使用函数声明创建一个匿名函数 一:函…

2023最新使用微信小程序完成一键授权登录

前言: 使用开发工具:小程序。在我这一篇已经详细介绍了小程序的安装介绍http://t.csdnimg.cn/IEVc0今天我给大家带来的是微信的一键授权登录,保存用户信息,退出的功能!!!希望看完了这篇博客能够…

【python海洋专题十】Cartopy画特定区域的地形等深线图

【python海洋专题十】Cartopy画特定区域的地形等深线图 海洋与大气科学 前几期可以认为关于平面的元素画法🆗了 本期关于特定区域平面画法 全球区域水深图 本期内容 画某元素特定区域的平面图:我有两个方法: 第一个:裁剪nc文…

嵌入式学习笔记(45) NandFlash的接口

9.1.1 Nand的型号与命名 (1)K9F2G08:K9F表示是三星公司的NandFlash系列。2G表示Nand的大小是2Gbit(256MB)。08表示Nand是8位的(数据线有8根)。 (2)Nand命名中可以看出,厂家、系列型号、容量大小、数据位数 9.1.2 Nand的数据位 …

机器视觉工程师,努力方向错了,白费

努力方向错了,白费。 在这个知识经济,知识付费,知识大V横行的时代,知识似乎遍地都是。但你有没有想过,微博里的段子是不是知识?微信里的爆款文章是不是知识?得到App里的音频是不是知识&#xf…

OpenGLES:绘制一个混色旋转的3D球体

一.概述 前面几篇博文讲解了如何使用OpenGLES实现不同的3D图形 本篇博文讲解怎样实现3D世界的代表图形:一个混色旋转的3D球体 二.球体解析 2.1 极限正多面体 如果有学习过我前几篇3D图形绘制的博文,就知道要想绘制一个3D图形,首先要做的…

基于Java的校园二手书交易平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

挑战自己,编程你的五子棋:Python+Pygame实践经验分享

引言 五子棋,古老而经典,是一种两人对抗的策略棋类游戏。想要体验制作游戏的乐趣吗?本文将详细指导你如何使用Python语言和Pygame库,一步步打造自己的五子棋游戏! 1. 开始之前:重要准备 首先&#xff0…

使用DNS查询Web服务器IP地址

浏览器并不具备访问网络的功能,其最终是通过操作系统实现的,委托操作系统访问服务器时提供的并不是浏览器里面输入的域名而是ip地址,因此第一步需要将域名转换为对应的ip地址 域名:www.baidu.com ip地址是一串数字 tcp/ip的网络结…

项目进展(六)-继续学习32位ADC芯片ADS1285

一、数据手册学习 1.1时序图 SPI时序图,这是很重要的一个地方,一定要在代码中将SPI配置成对应的模式。 先放一堆截图在这吧,一些引脚的功能及特性还未看到,等具体了解之后再详细介绍下面几张截图的时序: 1.2 内…

大模型RLHF算法更新换代,DeepMind提出自训练离线强化学习框架ReST

文章链接: https://arxiv.org/abs/2308.08998 大模型(LLMs)爆火的背后,离不开多种不同基础算法技术的支撑,例如基础语言架构Transformer、自回归语言建模、提示学习和指示学习等等。这些技术造就了像GPT-3、PaLM等基座…

问答雕虫1

问题: 现在有如下表 假设按时间顺序,记录中连续出现0.2 0.3 0.5 0.7四条记录记为一次有效数据组,统计一段时间范围内,有效数据组出现的次数,最终计算有效数据组在整个时间范围内的记录的占比。用mysql语句或者函数如何…