(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)
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)统一坐标系:
在AreToolbox中点击【数据管理工具】--【投影与变换】--【要素】-【投影】
输人土地利用联合数据,输人坐标系为“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)】。这将切换到布局视图,以便你可以设置页面大小和添加地图元素。
点击菜单栏中的【文件】-【页面和打印设置】,设置合适的宽度和高度,点击确定。
点击菜单栏【插入】--【文本】
输入合适的标题并移动到合适的位置
输入时间文本
还可以加图例、指北针等其他东西
点击菜单栏,【新建】--【导出地图】,导出为自己想要的格式。
到这里,您已经完成实验二,博主将继续更新,期待您的三连!!!!!!!!!!!!!!!!