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

devtools/2024/11/29 1:16:58/

相信实验一大家已经完成了,对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.ppmy.cn/devtools/137795.html

相关文章

python学opencv|读取图像

【1】引言 前序学习了使用matplotlib模块进行画图,今天开始我们逐步尝试探索使用opencv来处理图片。 【2】学习资源 官网的学习链接如下: OpenCV: Getting Started with Images 不过读起来是英文版,可能略有难度,所以另推荐一…

YOLOv7论文讲解和代码复现

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

物联网实验室建设方案

一、物联网实验室建设 (1) 基础理论教学云平台 唯众基础理论教学云平台是一个专为物联网相关专业教学打造的综合性在线教学平台。该平台凭借先进的技术架构和丰富的教学资源,为师生提供了一个高效、便捷、互动的学习环境。以下是该平台的主要特点和功能描述&#…

Oracle-伪劣rowid和rownumber的用法

-- 伪列 ROWID 物理地址 -- 使用ROWID可以快速的定位表中的某一行 -- ROWID值唯一 用来删除重复数据 -- 建表造数测试 -- rowid 的用法 select rowid,d.* from dept_test d; -- 删除重复数据 select a.deptno,min(rowid) as rd from dept_test a group by a.deptno; sele…

STM32完全学习——使用标准库完成PWM输出

一、TIM2初始化 我这里使用的是STM32F407ZGT6这个芯片,我这里使用的是定时器TIM2来完成PWM输出,由于这里没有使用中断,因此不需要初始化NVIC,下面先来进行定时器的相关初始化 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;R…

Zabbix 模板翻译自动化教程

在企业 IT 运维管理中,Zabbix 作为一款强大的开源监控平台被广泛应用。而 Zabbix 模板作为监控配置的重要组成部分,用来定义监控项、触发器、图形等。随着国际化的需求增加,Zabbix 模板的翻译工作变得日益重要,特别是在需要为不同…

LeetCode 404.左叶子之和

题目:给定二叉树的根节点 root ,返回所有左叶子之和。 思路:一个节点为「左叶子」节点,当且仅当它是某个节点的左子节点,并且它是一个叶子结点。因此我们可以考虑对整 node 时,如果它的左子节点是一个叶子…

无人机舵机转速运行原理!

一、核心技术 PWM(脉冲宽度调制)技术 PWM技术通过调节电流脉冲的宽度,即改变电流在每个周期内的“开”与“关”的时间比例,来调节电机接收到的平均电流大小,进而控制电机的转速和扭矩。 在舵机中,PWM信号…