(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细!!!)
续上篇博客(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(上)----空间数据的编辑与处理(超超超详细!!!)-CSDN博客
继续更新
目录
什么是拓扑?
1.3.5道路拓扑检查与修正
(1)新建要素集:
(2)要素类至要素集:
(3)新建拓扑规则:
(4)拓扑修正:
首先是悬挂点修正
伪结点修正
相交错误的修正
数据入库
(1)新建文件地理数据库:
编辑(2)要素类至要素类:
本篇博客内容为道路拓扑检查与修正,有对本实验实验目的、实验介绍有不了解的,可以看下上篇博客。
上篇博客有宝子私信我下载ArcGIS后出现了一个问题:空间校正那儿没有【设置校正数据】这一栏。
这个问题其实我最开始也遇到了,大概是应该安装的时候有点问题,
在这一步的时候要直接点击Cancel,有宝子点击OK,就会发生上诉情况,具体原因我也不知道,这也是我重装好几遍发现的。
解决方法就是,先删干净ArcGIS,包括注册表和文件夹残留,大家可以看看这篇文章,讲得很细
https://zhuanlan.zhihu.com/p/593618759
然后就还是按照上篇博客发的按照链接那样安装
ArcGIS10.8保姆式安装教程,超详细;附安装包_arcgis10.8安装教程-CSDN博客
只是注意在这个页面记得点击Cancel,而不是OK,大概就行了
然后回归主题,道路拓扑检查与修正,首先我来介绍下拓扑
什么是拓扑?
说到拓扑,肯定很多人会想到拓扑学,拓扑学(Topology)原名叫做位置分析(Analysis situs),是研究图形(或集合)在连续变形下的不变的整体性质的一门几何学。由于早期研究的是直观拓扑学,因此人们又把这种研究连续变换下不变的性质的学科形象地称为“橡皮几何学”或“橡皮膜上的几何学”,也就是说橡皮膜在不被弄破的情况下,不管如何拉伸、压缩、扭转等变形而存在着某些不变的性质。因此,研究这些不变性成为拓扑学研究的中心课题。中文“拓扑学”一词最早由陈省身根据英文Topology音译而来。
拓扑学是几何学的一个分支,但是这种几何学又和通常的平面几何、立体几何不同。通常的平面几何或立体几何研究的对象是点、线、面之间的位置关系以及它们的度量性质。拓扑学对于研究对象的长短、大小、面积、体积等度量性质和数量关系都无关。
举例来说,在通常的平面几何里,把平面上的一个图形搬到另一个图形上,如果完全重合,那么这两个图形叫做全等形。但是,在拓扑学里所研究的图形,在运动中无论它的大小或者形状都发生变化。在拓扑学里没有不能弯曲的元素,每一个图形的大小、形状都可以改变。例如,前面讲的欧拉在解决哥尼斯堡七桥问题的时候,他画的图形就不考虑它的大小、形状,仅考虑点和线的个数。
什么是拓扑呢?拓扑研究的是几何图形的一些性质,它们在图形被弯曲、拉大、缩小或任意的变形下保持不变,只要在变形过程中不使原来不同的点重合为同一个点,又不产生新点。换句话说,这种变换的条件是:在原来图形的点与变换了图形的点之间存在着一一对应的关系,并且邻近的点还是邻近的点。这样的变换叫做拓扑变换。
拓扑有一个形象说法——橡皮几何学。因为如果图形都是用橡皮做成的,就能把许多图形进行拓扑变换。例如一个橡皮圈能变形成一个圆圈或一个方圈。但是一个橡皮圈不能由拓扑变换成为一个阿拉伯数字8。因为不把圈上的两个点重合在一起,圈就不会变成8。拓扑变换的不变性、不变量还有很多,这里不再介绍。
1.3.5道路拓扑检查与修正
(1)新建要素集:
右键Data\1文件夹,新建文件数据库,命名为"Data"
在新建地理数据库Data中创建Road要素数据集,导人已知数据坐标系“Xian_1980_3_Degree_GKZone_39”
右键刚新建的文件地理数据库,选择新建--【要素数据集】
选择要素数据集命名为”Road“,点击下一页
在搜索框搜索”Xian_1980_3_Degree_GK_Zone_39“,点击选择该坐标系,点击下一步
点击下一页、点击完成
(2)要素类至要素集:
右键点击新建的【Road】要素数据集,点击【导入】--【要素类(单个)】
输入要素选择【道路】,输出位置选择新创建的Road要素集,输出要素类填写【Roads】,点击确定,完成要素类至要素集操作。
(3)新建拓扑规则:
点击【自定义】--【工具条】--【拓扑】,跳出拓扑工具条,以供后面拓扑搭建的使用
右键点击【Road】要素类--【新建】--【拓扑】
输入拓扑名称为"Road_Topology",输入拓扑容差(T)为0.001,点击下一页
选择“道路”以参与到拓扑中的要素类,点击下一页
输入等级数为1,点击下一页
点击【添加规则(A)】,依次添加“不能有悬挂点”、“不能有伪节点”、“不能相交”三条规则,点击下一页
确认新建拓扑信息无误后,点击完成拓扑构建
打开拓扑工具条,选择”地块_Project“执行拓扑编辑,点击确定
拓扑完成拓扑建立需要一点时间,有时候会卡住,啥都动不了,直接重启,再次打开,立即验证拓扑并加载拓扑图层。图中的点、线、面错误均以标出,说明拓扑建立无误。
(4)拓扑修正:
点击拓扑工具条中的【错误检查器】,弹出错误显示框,选择【所有规则中的错误】,选择【错误】,点击立即搜索,错误列表中将显示道路中的所有拓扑错误
如何全部修正这些错误呢,下面我将一步步介绍:
首先是悬挂点修正
选择【道路--不能有悬挂点】(下图还是所有错误,懒得改了),点击搜索,按住Ctrl键,一一选择这些悬挂点错误。
当数据点太多的时候,总是一一点击太过麻烦,有什么更便捷的方式吗?博主上网查过,可以通过编写一个Python脚本来自动化处理这些错误,ArcGIS支持Python脚本,可以利用
arcpy
模块来实现批量处理。我这里提供网上的一段代码,大家可以自行琢磨(一定不会运行成功,因为要改工作空间、拓扑名称、具体错误):
import arcpy# 设置工作空间
workspace = r"C:\path\to\your\geodatabase.gdb"
arcpy.env.workspace = workspace# 加载拓扑
topology = "YourTopologyName"# 获取所有错误
errors = arcpy.da.SearchCursor(topology + "\\Error", ["SHAPE@", "ERROR_TYPE"])# 处理每个错误
for row in errors:error_type = row[1]error_shape = row[0]if error_type == "Dangling Node":# 修复悬挂点错误arcpy.RepairGeometry_management(error_shape)elif error_type == "Pseudo Node":# 修复伪结点错误arcpy.Snap_edit(error_shape, [[error_shape, "VERTEX", 0.1]])elif error_type == "Intersection":# 修复相交错误arcpy.SplitLineAtPoint_management(error_shape, error_shape, "in_memory\\split_lines", "0.1")# 保存编辑
arcpy.SaveEdits_management()
右键选择延伸
选择延伸最大距离为1000,大部分点是100m内就行,但有部分点100m不够延伸,所有我选择的1000m,然后按Enter键
大部分悬挂点都已修正,可以看见剩下的悬挂点都在道路边缘,考虑到道路边缘再次延伸会超出研究范围,故不考虑修正这些悬挂点。
我们该如何规避这些道路边缘点呢?通过上网查阅,可以将剩下的悬挂点错误全选(ctrl一个一个选),然后右键,设置为异常,这样,这些点就不会出现在错误列表中。
伪结点修正
选择【道路-不能有伪节点】,显示所有伪节点信息,点击【合并至最长的要素】
相交错误的修正
打开【编辑条】--【更多编辑工具】--【高级编辑】,打开高级编辑条,选择错误显示列表为【道路-不能相交】
选择【道路-不能相交】,ctrl选择所有不能相交错误,右键点击【选择要素】
点击高级编辑工具条中的【打断相交线】
选择拓扑容差为0.001m,点击确定按钮
完成所有错误修正后是,点击【所有规则中的错误】,点击【立即搜索】,发现并没有错误出现,如果还有,就继续按照上面说的三种修正错误方法修正,直至不显示任何错误为止。然后显示修正后的道路图层网,发现并没有其他问题,实验接近尾声(熬到头了),准备数据入库。
数据入库
看到这里,你应该意识到实验已经接近尾声。。。实则不然,后面还有很多实验等着你呢哈哈。。本博主将和你一起共进退。。。
废话不多说,对于数据入库,操作如下:
(1)新建文件地理数据库:
右键点击【地理空间数据库】文件夹,右键点击【新建】-【文件地理数据库】,并命名为“osm”

(2)要素类至要素类:
右键点击osm.gdb,点击【导入】--【要素类(多个)】,打开“要素类至要素类”窗口,输人“Roads”要素,确定输出路径及名称(图1.27),点击【确定】,完成数据导人。
【输入要素类】--【Road】--【Roads】--【添加】,确定输出位置为新建的osm.gdb文件,点击确定
完成数据入库
查看文件夹中文件无误
至此,恭喜您已经完成了ArcGIS实验一 -- 空间数据的编辑与处理,记得点赞收藏+关注+评论本博主,我也会尽快更新后续实验,再见,可以睡觉了。
别忘了,点赞+关注+收藏+长评。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
相关文章:

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细!!!)
续上篇博客(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(上)----空间数据的编辑与处理(超超超详细!!!)-CSDN博客 继续更新 目录 什么是拓扑? 1.3.5道路…...

NLP论文速读(CVPR 2024)|使用DPO进行diffusion模型对齐
论文速读|Diffusion Model Alignment Using Direct Preference Optimization 论文信息: 简介: 本文探讨的背景是大型语言模型(LLMs)通过人类比较数据和从人类反馈中学习(RLHF)的方法进行微调,以…...

操作系统——揭开盖子
计算机执行时——取指执行 es:bx等于从0x9000开始,到0x90200结束...
如何在 React 项目中应用 TypeScript?应该注意那些点?结合实际项目示例及代码进行讲解!
在 React 项目中应用 TypeScript 是提升开发效率、增强代码可维护性和可读性的好方法。TypeScript 提供了静态类型检查、自动补全和代码提示等功能,这对于 React 开发者来说,能够帮助早期发现潜在的 bug,提高开发体验。 1. 项目初始化 在现…...

C++学习第四天
创作过程中难免有不足,若您发现本文内容有误,恳请不吝赐教。 提示:以下是本篇文章正文内容,下面案例可供参考 一、计算类对象的大小 #include<iostream> using namespace std;class Date { public:void Init(int year, in…...

【从零开始的LeetCode-算法】3232. 判断是否可以赢得数字游戏
给你一个 正整数 数组 nums。 Alice 和 Bob 正在玩游戏。在游戏中,Alice 可以从 nums 中选择所有个位数 或 所有两位数,剩余的数字归 Bob 所有。如果 Alice 所选数字之和 严格大于 Bob 的数字之和,则 Alice 获胜。 如果 Alice 能赢得这场游…...
一种简单高效的RTSP流在线检测方法,不需要再过渡拉流就可以获取设备状态以及对应音视频通道与编码格式
平台如何检测一路RTSP流是否在线? 在之前的流媒体平台方案中,我们都是通过定时RTSP拉流的方式,走一个完整的RTSP流程:包括OPTIONS、DESCRIBE、SETUP、PLAY、RTP收流,这种方式去取流,然后取到流之后进行流解…...

24/11/22 项目拆解 艺术风格转移
我们有时候想把两种艺术风格整合,创造更具艺术特色的艺术品,人很难办到,但是人工智能可以,比如下面将艺术画的风格转移到照片上。 我们先来初步了解一下实现上述功能的数学原理 所谓艺术风格,其实就是边缘,颜色&#…...

数字赋能,气象引领 | 气象景观数字化服务平台重塑京城旅游生态
在数字化转型的浪潮中,旅游行业正以前所未有的速度重塑自身,人民群众对于高品质、个性化旅游服务需求的日益增长,迎着新时代的挑战与机遇,为开展北京地区特色气象景观预报,打造“生态气象旅游”新业态,助推…...

关于Redux的学习(包括Redux-toolkit中间件)
目录 什么是 Redux ? 我为什么要用 Redux ? 我什么时候应该用 Redux ? Redux 库和工具 React-Redux Redux Toolkit Redux DevTools 拓展 一个redux小示例 代码示例(很有用): Redux 术语 Actions Reducers Store Dis…...
【无人机】
GJI Mini 4 Pro学习 首次飞行使用 01 开箱 打开长飞套装 依次取出产品及配件 飞行器、DJI RC - N2(DJI RC 2)、桨叶/螺丝、云台保护罩、束桨器、电池、螺丝刀、USB-C快接线、单肩包、USB-C数据线、充电管家 02 准备飞行器 取下束桨器,…...

Zabbix7.0.6的容器镜像准备
准备Zabbix7.0.6部署所需的容器镜像。 更新时间:20241122 一、准备数据库镜像 1、核对版本支持 根据Zabbix官网文档requirements 可知,当前最新的Zabbix 7.0.6对PostgreSQL数据库的要求如下: support for PostgreSQL versions:- 17.X …...

利用 GitHub 和 Hexo 搭建个人博客【保姆教程】
利用 GitHub 和 Hexo 搭建个人博客 利用 GitHub 和 Hexo 搭建个人博客一、前言二、准备工作(一)安装 Node.js 和 Git(二)注册 GitHub 账号 三、安装 Hexo(一)创建博客目录(二)安装 H…...
React第四节 组件的三大属性之state
前言 状态 state适用于类式组件中,而再函数式组件中需要使用 useState HOOK 模拟状态; React的组件就是一个状态机,通过与用户的交互,实现不同的状态,根据不同的状态展现出不一样的UI视图 并不是组件中所有的属性 都是组件的状态…...

MongoDB进阶篇-索引(索引概述、索引的类型、索引相关操作、索引的使用)
文章目录 1. 索引概述2. 索引的类型2.1 单字段索引2.2 复合索引2.3 其他索引2.3.1 地理空间索引(Geospatial Index)2.3.2 文本索引(Text Indexes)2.3.3 哈希索引(Hashed Indexes) 3. 索引相关操作3.1 查看索…...

使用FFmpeg实现视频与GIF的画中画效果
用FFmpeg命令行工具将GIF动画作为画中画(Picture-in-Picture,简称PiP)叠加到视频上。FFmpeg是一个强大的多媒体框架,能够处理几乎所有格式的音频和视频文件。通过这个教程,你将学会如何将一个小的GIF动画循环播放&…...
车载信息安全框架 --- 车载信息安全相关事宜
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

Unreal5从入门到精通之EnhancedInput增强输入系统详解
前言 从Unreal5开始,老版的输入系统,正式替换为EnhancedInput增强型输入系统,他们之间有什么区别呢? 如果有使用过Unity的同学,大概也知道,Unity也在2020版本之后逐渐把输入系统也升级成了新版输入系统,为什么Unreal和Unity都热衷于升级输入系统呢?这之间又有什么联系…...

泛微E9与金蝶云星空的集成方案:实现审批流程与财务管理的无缝对接
泛微E9与金蝶云星空的集成方案:实现审批流程与财务管理的无缝对接 背景介绍: 在企业日常运营中,泛微OA-E9和金蝶云星空是两个关键的系统。泛微OA-E9是一款广受企业青睐的办公自动化软件,它通过流程管理、文档管理、协同办公等模…...
理解设计模式与 UML 类图:构建稳健软件架构的基石
在软件开发的广阔天地里,设计模式与 UML(统一建模语言)类图犹如两座灯塔,为开发者照亮前行的道路,指引着我们构建出高质量、可维护且易于扩展的软件系统。今天,就让我们一同深入探索单一职责、开闭原则、简…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
前端工具库lodash与lodash-es区别详解
lodash 和 lodash-es 是同一工具库的两个不同版本,核心功能完全一致,主要区别在于模块化格式和优化方式,适合不同的开发环境。以下是详细对比: 1. 模块化格式 lodash 使用 CommonJS 模块格式(require/module.exports&a…...