当前位置: 首页 > news >正文

ArcGIS Pro 拓扑编辑和常见一些拓扑错误处理

7.4 拓扑编辑

拓扑编辑也叫共享编辑,多个数据修改时,一块修改,如使用数据:chp7\拓扑检查.gdb,数据集DS下JZX、JZD和DK,加载地图框中,在“地图”选项卡下选择“地图拓扑”或“ds_Topology(地理数据库)”,如图7-11所示。

图片

图7-11 地图拓扑的位置

单击“编辑折点”,出现“修改要素”窗格,下面切换到“边”,如图7-12所示。

图片

图7-12 共享编辑修改边和按比例拉伸的位置

修改数据时,一块修改。

图片

按比例拉伸,不勾选,只修改节点,选中所有节点按比例拉伸,默认是选中。

7.5 常见一些拓扑错误处理

在Pro中没有一键处理所有错误方法,就像没有一种药物包治百病一样。我们不同拓扑错误,解决方法不一样。由于拓扑容差默认就是XY容差,很多矢量数据处理有XY容差参数工具,都是拓扑错误处理;同时本身要求没有拓扑错误,反过来也是拓扑错误的处理工具。

7.5.1 点、线、面完全相同处理

使用“删除相同项(DeleteIdentical)”工具,直接对输入数据本身修改,测试数据:chp7\拓扑处理.gdb\kk\宗地,操作如图7-13所示。

图片

图7-13 删除完全重复的面

字段选“Shape(图形)”,对于点要素,删除重复点;对于线,是删除完全相同的线;对于面,是删除完全相同的面;选择其他字段就是值相同的,选择多个字段就是多个字段的值完全相同的。使用该工具,删除完全重叠面,如果几个完全相同的面,按表中记录的顺序,删除后面的,保留第一个。

7.5.2 线部分重叠

使用打断相交线,在划分下

图片

,选择需要处理的线(只能一个图层的线数据),使用打断,可以删除完全重叠线,也可以删除部分重叠的线。测试数据:chp7\拓扑处理.gdb\kk\线重叠。

7.5.3 线有伪结点

测试数据:chp7\拓扑处理.gdb\l\xzqjx,拓扑规则:“不能有伪结点”,有927个错误,结果如图7-14所示。

图片

图7-14 伪节点错误

处理方法:先使用“融合(Dissolve)”工具,融合字段是需要保留属性字段,且端点相同的线合并在一起,如图7-15所示。

图片

图7-15 融合工具合并线

然后,在划分下

图片

,打断相交线,如果还有伪结点错误,需要自己选择对象,处理方式:使用合并

图片

7.5.4 面部分重叠

测试数据:chp7\拓扑处理.gdb\kk\部分重叠。使用“联合(Union)”工具,把部分重叠转换成完全重叠,操作如图7-16所示,后根据自己的需要修改,如果需要完全相同删除的按7.5.1小节方法;如果需要合并,开始编辑,选择合并,如果很多这种情况,可以使用“消除(Eliminate)”工具。联合工具也可以处理两个面要素图层,图形可以完全处理,处理后图形没有任何重叠,属性将两个要素图层的属性字段连接在一起。

图片

图7-16 联合处理部分重叠的面

也可以“要素转面(FeatureToPolygon)”工具,如图7-17所示。

图片

图7-17 使用要素转面处理面的重叠

使用该工具,输出面不保留任何属性。也可以两个以上的图层。

图片

仅仅在下面选择标注要素(点要素)时,才有效。

7.5.5 点不为线的端点

测试数据:chp7\点线不重.gdb\ds下JZD和JZX,“捕捉(Snap)”工具主要适合用点和线,点和面,面和点,线和点,或者点和点的简单情况,概括一(点)对多(线和面多个折点),或多对一;不适合用于线和线,线和面,或者面和面等多(因为面或线要素有多个折点)对多的复杂情况,操作界面如图7-18所示:

图片

图7-18 捕捉工具 让JZX的端点和点重合在一起

捕捉(SNAP)中输入要素是需要修改要素,这个选JZX,修改的要素就是JZX,如果想让JZD修改,输入要素就选JZD。捕捉环境的类型选项:

1.END - 将输入要素折点捕捉到(捕捉环境)要素末端。

2.VERTEX - 将输入要素折点捕捉到要素折点。

3.EDGE - 将输入要素折点捕捉到要素边。

选择时,优先选择1和2。距离 - 输入要素折点被捕捉到此距离范围内的最近折点,满足条件的最小值,如目前线到点的距离,2.8米多一点,所以输入3米。注意:直接修改输入要素,所以一定要先备份输入要素。

7.5.6 面线不重合

面线不重合,需要的是修改面,虽然可以使用4.2.2小节对齐边和对齐要素工具,或者7.5.5小节的捕捉工具,但处理起来工作量都很大。只要线闭合,没有“不能有悬挂点”拓扑错误,线在交叉地方打断,生成面的边界就和线重合。测试数据:chp7\面线不重合.gd\ds下xzq和xzqjx,我们方法如下:

1.面生成点 :使用“要素转点(FeatureToPoint)”工具,选中内部,如图7-19所示,一个面生成一个点,点在面内部,点的属性和面属性一致。

图片

图7-19 要素转点,需要面的属性

注意:要素转点,可以是面,或线,一个面就得到一个点;选中“内部”参数,生成点在面内,线上(默认长度的中点),未选中“内部”参数,获得几何中心,但几何中心不一定在面内和线上;点的属性和输入要素的属性一致。

2.线生成面:使用“要素转面(FeatureToPolygon)”工具,输入要素就是原始线(JZX),下面的标注要素:选“要素转点”得到的点要素,保留属性一定选中(默认是选中,不要去掉),如图7-20所示。生成的面,图形来自线要素,属性来自最早的面。

注意:该操作面要素不要有多部件要素,如果存在多部件要素先使用“多部件至单部件(MultipartToSinglepart)”工具转成单部件;此方法只适合面线边界稍微不重合,由线生成面的记录数和最早面的记录数一致。如果不考虑最早面的属性,直接使用要素转面一步操作就可以,下面标注要素不需要填写。

图片

图7-20 要素转面 生成图形取线,属性取点

7.5.7 面必须被其他面要素覆盖

测试数据:chp7\不能跨行政区.gdb下DLTB和XZQ,DLTB不能跨XZQ,拓扑检查,有29个拓扑错误,如图7-21所示。

图片

图7-21 必须被其他要素覆盖的拓扑错误

一般的解决方法:两个图形相交,跨行政区自动分解,如图7-22所示,拓扑错误就自动解决了,后面再根据自己情况,解决碎的图斑和属性问题。

图片

图7-22 相交解决拓扑错误

也可以直接根据属性XZQDM,XZQMC生成XZQ数据,使用“融合(Dissolve)”工具,如图7-22所示。该操作前提条件是:先填写对应字段的属性。

图片

图7-23 融合解决拓扑错误

7.5.8 多部件检查

Pro拓扑中没有直接检查面多部件功能(线有,点的多部件是多点),我们有两种方法:

1.自己建一个长整数字段,使用字段计算,使用Python语法:!Shape!.partcount,大于1就是多部件要素。

2.使用“多部件至单部件(MultipartToSinglepart)”工具,看记录数是否增加,没有增加,就没有多部件。ORIG_FID是原来图形的ID,使用“频数(Frequency)”工具,频数字段选“ORIG_FID”,输出表中字段“FREQUENCY”,大于1都是多部件。

7.5.9 锐角检查

Pro中默认没有检查工具,本人写一个Python,工具在“Chp7\锐角检查工具.tbx”,如图7-24所示,同时提供其他一些工具,就是上面说的Pro工具,封装一下。

图片

图7-24 提供一些拓扑处理的工具

数据:chp7\拓扑检查.gdb\锐角检查,运行“锐角检查”工具,如图7-25所示。

图片

图7-25 锐角检查工具

结果如图7-26所示,小于角度位置输出点;属性表中有具体角度字段。错误处理,需要自动根据情况处理,无法自动处理。

图片

图7-26 锐角检查结果

相关文章:

ArcGIS Pro 拓扑编辑和常见一些拓扑错误处理

7.4 拓扑编辑 拓扑编辑也叫共享编辑,多个数据修改时,一块修改,如使用数据:chp7\拓扑检查.gdb,数据集DS下JZX、JZD和DK,加载地图框中,在“地图”选项卡下选择“地图拓扑”或“ds_Topology(地理数据库)”&…...

前端踩坑之——antDesignVue的upload组件

本地启动时控制台会报404,放到服务器上控制台会报405(多发一个请求) 原因:upLoad有默认的上传事件 解决:阻止默认事件即可 beforeUpload Hook function which will be executed before uploading. Uploading will be stopped with false or …...

设计模式——策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法独立于使用它的客户端代码,使得算法的变化不会影响到使用该算法的客户端…...

Ubuntu12.0安装g++过程及其报错

Ubuntu12.0安装g过程及其报错 https://blog.csdn.net/weixin_51286763/article/details/120703953 https://blog.csdn.net/dingd1234/article/details/124029945 2.报错二: [41/80] Building CXX object absl/synchronization/CMakeFiles/graphcycles_internal.di…...

rime中州韵小狼毫 汉语拼音输入方案

教程目录:rime中州韵小狼毫须鼠管安装配置教程 保姆级教程 100增强功能配置教程 在word中,我们可以轻易的给汉字加上拼音,如下👇: 但是,如何单独的输入拼音呢?例如输入 pīn yīn, 再如 zhōn…...

网页设计(八)HTML5基础与CSS3应用

一、当当网企业用户注册页面设计 当当网企业用户注册页面 改版后当当网企业用户注册页面 <!-- prj_8_1.html --> <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>当当网企业用户注册页面设计</title><s…...

模拟瑞幸小程序购物车

是根据渡一袁老师的大师课写的&#xff0c;如有什么地方存在问题&#xff0c;还请大家指出来哟ど⁰̷̴͈꒨⁰̷̴͈う♡&#xff5e; index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-e…...

react js自定义实现状态管理

redux基础实现 myRedux export const createStore (reduce) > {if (typeof reduce ! function) throw new Error(Expected the reducer to be a function.)let state,listeners []state reduce()const getState () > stateconst dispatch (action) > {if(typeo…...

行为型设计模式——中介者模式

中介者模式 中介者模式主要是将关联关系由一个中介者类统一管理维护&#xff0c;一般来说&#xff0c;同事类之间的关系是比较复杂的&#xff0c;多个同事类之间互相关联时&#xff0c;他们之间的关系会呈现为复杂的网状结构&#xff0c;这是一种过度耦合的架构&#xff0c;即…...

通信行业无线基本概念

fast roaming&#xff08;快速漫游&#xff09;&#xff1a;使用户在不同的基站&#xff08;access point&#xff09;间可以平滑的切换&#xff0c;在802.11r协议标准中定义。band steering&#xff08;波段转向&#xff09;&#xff1a;在双频段&#xff08;2.4G和5G&#xf…...

grep 在运维中的常用可选项

一、对比两个文件 vim -d <filename1> <filename2> 演示&#xff1a; 需求&#xff1a;&#xff5e;目录下有两个文件一个test.txt 以及 text2.txt,需求对比两个文件的内容。 执行后会显示如图&#xff0c;不同会高亮。 二、两次过滤 场景&#xff1a;当需要多…...

python读取Dicom文件

文章目录 1. pydicom Library2. SimpleITK Library3. ITK Library (Insight Toolkit)4. GDCM Library (Grassroots DICOM) 下面提供几种用python方法读取Dicom文件 1. pydicom Library import pydicom # Read DICOM file dataset pydicom.dcmread("path_to_dicom_file.d…...

UL2034详细介绍UL 安全单站和多站一氧化碳报警器标准

在介绍相关标准之前先介绍一下UL认证和UL测试报告的区别&#xff0c;检测认证行业6年老司机 UL认证是自愿性的认证&#xff0c;需要检测产品和审核工厂&#xff0c;每个季度审核一次&#xff0c;费用高、时间久&#xff0c;而且审厂非常的严格。 UL测试报告是根据产品选用相应…...

鸿蒙HarmonyOS-SDK管理使用指南

鸿蒙HarmonyOS-SDK管理使用指南 文章目录 鸿蒙HarmonyOS-SDK管理使用指南sdkmgr使用指导查看SDK组件安装组件卸载组件查看sdkmgr版本查看sdkmgr帮助options选项说明ohsdkmgr使用指导查看SDK组件安装组件卸载组件查看ohsdkmgr版本查看ohsdkmgr帮助option...

QT上位机开发(进度条操作)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 进度条是一个比较常见的控件。如果某个操作需要很长的时间才能完成&#xff0c;那么这个时候最好有一个进度条提示&#xff0c;这样比较容易平复一…...

637_二叉树的层平均值

描述 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受 思路 无需思路&#xff0c;乱杀 解答 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, righ…...

Ubuntu20.4 Mono C# gtk 编程习练笔记(三)

Mono对gtk做了很努力的封装&#xff0c;即便如此仍然与System.Windows.Form中的控件操作方法有许多差异&#xff0c;这是gtk本身特性或称为特色决定的。下面是gtk常用控件在Mono C#中的一些用法。 Button控件 在工具箱中该控件的clicked信号双击后自动生成回调函数prototype&…...

What is `JsonSanitizer.sanitize` does?

JsonSanitizer.sanitize 是一个Java库中的方法&#xff0c;用于处理和净化JSON字符串&#xff0c;特别是针对跨站脚本攻击&#xff08;XSS, Cross-Site Scripting&#xff09;。 例如&#xff0c;在处理富文本内容、用户评论、从第三方服务获取的数据时&#xff0c;使用 JsonSa…...

K8S测试pod

背景 用于测试ping&#xff0c;curl等类型的pod Centos pod apiVersion: apps/v1 kind: Deployment metadata:name: centos-deploymentlabels:app: centos spec:replicas: 1selector:matchLabels:app: centostemplate:metadata:labels:app: centosspec:containers:- name: c…...

序章 熟悉战场篇—了解vue的基本操作

了解vue 的基本目录&#xff1a; dist 是打包后存放的目录(打包目录后续可以改)node_modules 是依赖包public 是静态index页面src 是存放文件的目录assets 是存放静态资源的目录components 是存放组件的目录views 是存放页面文件的目录&#xff08;没有views 自己新建一个&…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...