(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)

相信实验一大家已经完成了,对Arcgis已进一步熟悉了,现在开启第二个实验

ArcMap实验--网络分析

目录

ArcMap实验--网络分析

1.1 网络分析介绍

1.2 实验内容及目的

1.2.1 实验内容

1.2.2 实验目的

2.2 实验方案

2.3 实验流程

2.3.1 实验准备

2.3.2 空间校正

2.3.3 数据更新

(1)建筑物数据更新

(2)土地利用数据更新

(3)道路数据更新

2.3.4 构建拓扑

(1)统一坐标系:

(2)建立文件地理数据库:

(3)导入:

(4)创建拓扑关系:

(5)修正拓扑错误:

(6)修正悬挂点的拓扑错误:

(7)修改伪结点的拓扑错误:

2.3.5 构建网络数据集

(1)数据准备:

(2)创建时间字段:

(3)计算时间字段值:

(4)创建道路网络数据集:

2.3.6最短路径分析

2.3.7 专题图输出


1.1 网络分析介绍

        网络的例子在现实生活中应用比较广泛,例如道路网、电力网、地下管网、物流网等。网络分析是网络的连通性加成本(消耗)分析问题。例如,道路网连通性是指两个定位点(如城市)之间是否有道路直接或间接连通;而成本的概念比较广泛,是指网络上某路径上的开销,它可以是路径长度、车辆运行时间、过路过桥费等。


1.2 实验内容及目的


1.2.1 实验内容

        本实验结合GIS相关技术,在实验一的基础上,利用拓扑修正、建立网络数据集、构建最短路径等方法,叠加时间成本等因素,对所给数据进行处理,并根据需求进行最佳路径分析。

(1)将osm_buildings_new.shp、osm_landuse_new.shp、osm_roads_new.shp 的数据进行空间纠正,使其处于图中正确的位置。

(2)将osm_buildings_new,shp、osm_landuse_new.shp、osm_roads_new.shp 更新到 osm
buildings.shp、osm_landuse.shp、osm_roads. shp 数据中。

(3)对更新后的数据进行检查,并对检查出的错误进行统计,最后处理错误,创建以osm命名的数据库,并进行数据入库。

(4)假设行驶的速度为3m/s,以osm_roads.shp为基础数据,建立包含距离成本和时间成本的网络数据集。
(5)计算从“objectid=9150”的建筑物到“objectid=16015”的建筑物的最短路径。


1.2.2 实验目的


(1)掌握空间校正方法和数据更新方法。
(2)掌握数据库和要素类的建立方式。

(3)掌握创建网络数据集的方法。
(4)掌握在网络数据集中构建最短路径的方法。

2.2 实验方案

        首先修正错误地块位置,将修正后的数据更新到原数据中,对更新后的数据进行拓扑检查.修正拓扑错误,然后对数据进行人库并构建网络数据集,求出距离成本及时间成本,从而求出指定坐标的最短路径,操作流程如下图所示:



(1)对土地利用、建筑物、道路数据进行空间校正:利用现有图层对新建的住宅小区等数据进行空间校正。

(2)更新到原数据:通过联合工具将新建的住宅小区等数据更新到原有数据中。

(3)数据拓扑检查与修复:根据实验要求选择拓扑规则,对道路数据进行拓扑构建并进行验证,对存在的错误进行修正。

(4)数据人库:建立osm数据库,将修改后的数据导人数据库中
(5)最短路径分析:建立新建住宅小区的道路网络数据集,设置距离与时间成本,求从“objectid=9150”的建筑物到“obiectid=16015”的建筑物的最短路径。

2.3 实验流程

2.3.1 实验准备


(1)链接文件夹,在ArcMap中打开目录,右键点击【文件夹连接】,点击【连接到文件夹】,将Data-2的数据加载到ArcMap目录中:

        将Data-2文件夹中的6个文件显示在页面中:

        新建实验2/Result文件夹,并在ArcMap中连接

(2)环境设置,在ArcMap主菜单中点击【地理处理】--【环境设置】

        将当前工作空间和临时工作空间分别设置为Data文件夹和Result文件夹

2.3.2 空间校正

        对“osm_landuse_new”数据进行空间校正

点击【开始编辑】,出现编辑工具条,设置数据为【osm_landuse_new】--【继续】

        选择【自定义】--【工具条】--【空间校正】

        出现空间校正工具条,点击【设置校正数据】--【以下图层中的所有要素】,勾选【osm_buidings_new】、【osm_roads_new】、【osm_landuse_new】,点击【确定】

        点击新建位移链接工具

        这个链接因为没有给具体坐标,只能凭感觉连,误差还是蛮大的。我这儿勾画出了几个道路连接线,还是比较明显的,大家也连这几个特征点,或者多边形的尖角也行(实验指导书上是这样的,但我感觉这样难度会很大,误差也很大)

        按上面所述,构建链接如下:

        点击校正,成功校正:

        点击【编辑条】--【停止编辑】,并保存校正后的数据

2.3.3 数据更新

(1)建筑物数据更新

        在ArcToolbox中点击【分析工具】-【叠加分析】-【联合】

        框中选中“osm_buildings”和“osm_buildings_new”两个图层,对建筑物数据进行更并命名为“osm_buildings_Union.shp”,点击确定。

(2)土地利用数据更新

        将“osm_landuse_new”更新到“osm_landuse”中,在ArcToolbox中点击【分析工具】-【叠加分析】-【联合】,在输入框中选中“osm_landuse”和“osm_landuse_new”两个图层,对土地利用数据进行更新并命名为“osm_landuse_Union.shp”。

(3)道路数据更新

        将“osm_roads_new”更新到“osm_roads”中,在ArcToolbox中点击【分析工具】--【叠加分析】--【交集取反】

        在“输人要素”中输人“osm_roads”,在“更新要素”中输入“osm_roads_new”,对道路数据进行更新,得到“osm_roads_SymDiff”。

        数据更新后结果如下图所示:

2.3.4 构建拓扑


(1)统一坐标系:

        在ArcToolbox中点击【数据管理工具】--【投影与变换】--【要素】-【投影】

        输人土地利用联合数据,输人坐标系为“Xinn_1980_3_Degree_GK_Zone_39”,确定输出路径及名称,点击【确定】完成坐标系的统一。

(2)建立文件地理数据库:

        在ArcMap目录中右键点击Result文件夹,点击【新建】--【文件地理数据库】,命名为“osm”。

        在osm数据库下新建要素数据集,命名为“dataset”

        选择地理坐标系与 osm_buildings 图层一致的坐标系“Xian_1980_3_Degree_GK_Zone_39”,容差设为默认,点击【下一步】直到【确定】。


(3)导入:

        右键点击【dataset】要素集,点击【导入】-【批量导人】

        在输入框中选择“osm_roadsSymDif{”“osm_landuse_Union_Project”和“osm_buildings_Union”,点击【确定】。

(4)创建拓扑关系:

        右键点击【dataset】数据集,点击【新建拓扑】

        选择参与到拓扑中的数据“osm_roads_SymDiff”,根据实验要求设置拓扑规则,即不能有悬挂点不能有伪结点。

(5)修正拓扑错误:

        验证拓扑,打开编辑器,在拓扑工具条下的错误检查器園下查看错误所有错误如下图所示。

        这里你可能会出现一个错误(能直接得到上幅图当我下面是废话,直接跳到第6步),选择拓扑应该选择【地理数据库拓扑】,但点击不了,如果您点击的地图拓扑中的图层,就会发现【拓扑工具条】中的【错误检查器】是灰色的,无法点击。

        这是为什么呢?其实原因很简单,因为您构建的拓扑关系是在空间数据库中,而不是外部的图层,所以拓扑没选上,也就没有错误检查器这一说法(毕竟你都没连接到拓扑文件上)

        我的解决方法是,新开一个ArcMap文件,你就会发现,没有问题了,地理数据库拓扑是能选择的,错误选择器也就能点击了。

修改错误:

不能有伪节点: 伪节点是指两条线段相连,但是连接处2个端点之间存在一定距离,没有连接上。这个功能检查出一条线由若干线段组成,各线段间存在不连通的情况。比如一条电线由若干段组成,在路径分析时,各个电线之间不能不连通。

不能有悬挂点(dangles):线的端点不和其他相连。该端点叫悬挂点。比如在道路网中,除了死胡同,不允许某条道路的端点为悬挂点。

(6)修正悬挂点的拓扑错误:

        点击【osm_roads_SymDiff-不能有悬挂点】→【立即搜索】,右键点击错误处,点击【缩放至图层】,观察该处错误是否异常。若异常则标记为异常,右健点击错误处·点击【延伸】或【捕提】,该处拓扑错误被纠正,修改完所有错误后点击【编辑】-【保存编辑内容】

        像这种,我认为是道路到了死胡同,无路可走,所以选择右键添加为异常(延伸和裁剪都不合理)

        像这种边缘的点,我的理解是直接当作异常处理,右键点击添加至异常即可

(7)修改伪结点的拓扑错误:

        点击【osm_roads_SymDiff-不能有伪结点】-【搜索全部】,右键点击错误处,点击【缩放至图层】,观察该处错误是否异常。若异常则标记为异常右键点击错误处,点击【合并】或者【合并到最长要素】,该处拓扑错误被纠正,修改完所有错误后点击【编辑】【停止编辑】-【保存编辑内容】。至此,所有拓扑错误修改完毕。

2.3.5 构建网络数据集


(1)数据准备:

        在ArcMap空白处点击鼠标右键,选择【高级编辑】工具条,启动编辑器,中所有道路数据,用高级编辑工具下的打断相交线出拆分线要素。

        可能有的选手会出现打断相交线为灰色,不可选。这是为啥呢?首先,确认您选择的是线要素,毕竟点要素和面要素没有打断相交线这一说法,即确认左侧内容列表线要素数据为选中状态(一般单击显示蓝色);然后显示层中鼠标左键选中整个图形,打开高级编辑器,点击打断相交线(最好别关闭拓扑)

        默认误差为0.001m,点击确认,开始打断相交线。

        得到拆分后的图形:


(2)创建时间字段:

        打开osm_roads_SymDiff图层的属性表

        点击左上角的【表选项】【添加字段】,将“类型”设置为“双精度”,点击确定。

(3)计算时间字段值:

        选中时间字段,右键点击【字段计算器】

        根据提供的速度3m/s.在输人框中输人“[Shape_Length]/3”(图2.23),点击【确定】,完成时间字段的计算,结果如图2.24所示。

(4)创建道路网络数据集:

        找到原data数据库,右键点击新建网络数据集。

        点击"Enter",选择“默认选项: 是”来使用默认的转弯模型,点击"Enter"。

        点击【添加】,添加时间属性,单位为秒,数据类型为双精度,点击确定。

        当询问是否为此网络数据集建立行驶方向设置时,选择“否”。点击“Enter”。

        勾选【构建服务区索引】

        确认构建的网络数据集要素是否齐全,不齐全则退出重新构建,齐全直接“Enter"

        点击Enter,并显示到图层中:

2.3.6最短路径分析


        (1)点击【自定义】--【工具条】--【网络分析】打开网络分析工具条,点击【新建】。(注意是Network Analist,而不是几何网络分析工具)

        点击属性表左上角,点击【查找与替换】

        分别输入“objectid=9150”和“objectid=16015”,点击左侧小三角,ctrl+点击另一个点,选中两个建筑物,关闭属性表,两点在图层中高亮表示。

(2)点击网络分析工具条上的【创建网络工具】,在两个建筑物旁的道路上分别点击,然后点击工具条上的【求解】从而对两个建筑物之间的路径进行最短路径求解,其结果如下图所示。

        点击【创建网络位置】

        可能有些人这个按钮是灰色的,无法点击,这是因为没有添加拓展,点击【自定义】--【添加拓展】

       勾选网络分析,这时,你就会发现【创建网络位置】变成可点击了。然后将标记的两个点旁边道路点击一下,以创建路径起点和终点,点击【计算】

        完成最短路径规划,但我这里还要点问题,我这图很明显不是最短路径,绕了一圈,我分析原因是修改拓扑错误时偷了懒,很多地方没看就直接设置为异常,导致中间那儿还存在伪节点或悬挂点,导致道路不通。因为懒得再弄一遍,就这样了,大家将就着看。

2.3.7 专题图输出

        点击【视图(V)】--【布局视图(L)】。这将切换到布局视图,以便你可以设置页面大小和添加地图元素。

        点击菜单栏中的【文件】-【页面和打印设置】,设置合适的宽度和高度,点击确定。

        点击菜单栏【插入】--【文本】

        输入合适的标题并移动到合适的位置

        输入时间文本

        还可以加图例、指北针等其他东西

        点击菜单栏,【新建】--【导出地图】,导出为自己想要的格式。

由于我也是刚接触Arcgis,写博客的本意是记录自己学习过程,并在日后忘记了某些步骤能回来找,而不是上网搜别人的。所以博客质量可能不咋地,大家有啥问题可以评论区讨论,勿喷!!!

到这里,您已经完成实验二,博主将继续更新,期待您的三连!!!!!!!!!!!!!!!!

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

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

相关文章

iPhone 17 Air基本确认,3个大动作

近段时间,果粉圈都在讨论一个尚未发布的新品:iPhone 17 Air,苹果又要来整新活了。 从供应链消息来看,iPhone 17 Air本质上是Plus的替代品,主要是在维持“大屏”这一卖点的同时,增加了“轻薄”属性&#xff…

H5 Admin后台管理系统、用户权限管理设计、按钮级别、数据级别、html+bootstrap后台管理前端界面设计

一、前言 一个高颜值后台管理模板,Light Year Admin后台管理系统模板是一个基于Bootstrap v3.3.7的纯HTML模板,目前也已经更新了基于Bootstrap 4.4.1的版本。都有iframe以及非iframe的两种不同的形式供大家选择使用。简洁而清新的后台模板,功…

Windows环境基于ecplise的spring boot框架新建spring start project

SpringToolSuite4 新建项目实例 前言Windows基于ecplise 工具的spring boot 架构 前言 使用Spring boot 框架向前端传输数据 Windows基于ecplise 工具的spring boot 架构 spring-tool-suite-4官网下载链接spring tool,下载太慢的话可以使用迅雷加速,右…

理解 CAP 理论:分布式系统中的权衡与选择 | 常用组件中的CP和AP

CAP定理是分布式系统设计中的一个基本定理,它指出在一个分布式计算系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)三者不可同时实现&#xff…

AttributeError: module ‘cv2.dnn‘ has no attribute ‘DictValue‘如何解决?

AttributeError: module cv2.dnn has no attribute DictValue如何解决? 出现场景出错原因解决方案 出现场景 当在代码中导入opencv的时候:import cv2,出现: 出错原因 查看大家出现的错误,发现是因为opencv版本问题…

Java Class类文件结构

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

ThinkPHP开发的原生微信小程序二手物品回收小程序管理系统源码

二手物品回收小程序 一款基于ThinkPHP开发的原生微信小程序二手物品回收小程序管理系统。支持线上下单、免费上门取件、评估价格等功能。提供全部无加密源码,支持私有化部署。

分布式专题(1)之Redis持久化、主从与哨兵架构详解

一、Redis持久化 1.1 RDB快照(snapshot) 在默认的情况下,Redis将内存数据快照保存名字为:dump.rdb的二进制文件中,当然你在配置文件redis.conf中修改对应的二进制文件名。 redis开启RDB快照,可以在redis中…

day1:ansible

ansible-doc <module_name>&#xff08;如果没有网&#xff0c;那这个超级有用&#xff09; 这个很有用&#xff0c;用来查单个模块的文档。 ansible-doc -l 列出所有模块 ansible-doc -s <module_name> 查看更详细的模块文档。 ansible-doc --help 使用 --help …

unity 2D像素种田游戏学习记录(自用)

一、透明度排序轴 改变sprite的排序方式&#xff0c;默认按照z轴进行排序&#xff08;离摄像机的远近&#xff09;。可以将其改变成y轴的排序方式&#xff0c;这样可以使2D人物走在草丛的下方就不被遮挡&#xff0c;走在草丛上方就被遮挡&#xff0c;如下图。 在项目设置-图形…

关于GaussDB

一、GaussDB的层级关系 &#xff0c;关于schemas的定位&#xff0c;到底是个什么&#xff0c;其实就可以理解为一个文件夹 数据库服务器 --> databases --> schemas --> tables schema类似于文件夹&#xff0c;一个数据库database里面可以有多个文件夹&#xff0c;每…

【CKA】Kubernetes(k8s)认证之CKA考题讲解

CKA考题讲解 0.考试101 0.1 kubectl命令⾃动补全 在 bash 中设置当前 shell 的⾃动补全&#xff0c;要先安装 bash-completion 包。 echo "source <(kubectl completion bash)" >> ~/.bashrc还可以在补全时为 kubectl 使⽤⼀个速记别名&#xff1a; al…

第4章:颜色和背景 --[CSS零基础入门]

在 CSS 中,颜色和背景属性是用于美化网页元素的重要工具。你可以通过多种方式定义颜色,并且可以设置元素的背景颜色、图像、渐变等。以下是关于如何在 CSS 中使用颜色和背景的一些关键点和示例。 1.颜色表示法 当然!以下是使用不同颜色表示法的 CSS 示例,包括 RGB、RGBA、…

linux-12 关于shell(十一)ls

登录系统输入用户名和密码以后&#xff0c;会显示给我们一个命令提示符&#xff0c;就意味着我们在这里就可以输入命令了&#xff0c;给一个命令&#xff0c;这个命令必须要可执行&#xff0c;那问题是我的命令怎么去使用&#xff0c;命令格式有印象吗&#xff1f;在命令提示符…

java+ssm+mysql校园物品租赁网

项目介绍&#xff1a; 使用javassmmysql开发的校园物品租赁网&#xff0c;系统包含管理员、用户角色&#xff0c;功能如下&#xff1a; 管理员&#xff1a;用户管理&#xff1b;物品管理&#xff08;物品种类、物品信息、评论信息&#xff09;&#xff1b;订单管理&#xff1…

肝了半年,我整理出了这篇云计算学习路线(新手必备,从入门到精通)

大家好&#xff01;我是凯哥&#xff0c;今天给大家分享一下云计算学习路线图。这是我按照自己最开始学习云计算的时候的学习路线&#xff0c;并且结合自己从业多年所涉及的知识精心总结的云计算的思维导图。这是凯哥精心总结的&#xff0c;花费了不少精力哦&#xff0c;希望对…

31.下一个排列 python

下一个排列 题目题目描述示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a;提示&#xff1a;题目链接 题解解题思路python实现代码解释&#xff1a;提交结果 题目 题目描述 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3…

【OpenCV】平滑图像

二维卷积(图像滤波) 与一维信号一样&#xff0c;图像也可以通过各种低通滤波器&#xff08;LPF&#xff09;、高通滤波器&#xff08;HPF&#xff09;等进行过滤。LPF 有助于消除噪音、模糊图像等。HPF 滤波器有助于在图像中找到边缘。 opencv 提供了函数 **cv.filter2D()**&…

springSecurity自定义登陆接口和JWT认证过滤器

下面我会根据该流程图去自定义接口&#xff1a; 我们需要做的任务有&#xff1a; 登陆&#xff1a;1、通过ProviderManager的方法进行认证&#xff0c;生成jwt&#xff1b;2、把用户信息存入redis&#xff1b;3、自定义UserDetailsService实现到数据库查询数据的方法。 校验&a…

PowerShell install 一键部署postgres17

postgres 前言 PostgreSQL 是一个功能强大的开源对象关系数据库系统,拥有超过 35 年的积极开发经验 这为其赢得了可靠性、功能稳健性和性能的良好声誉。 通过官方文档可以找到大量描述如何安装和使用 PostgreSQL 的信息。 开源社区提供了许多有用的地方来熟悉PostgreSQL, 了…