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

(长期更新)《零基础入门 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,写博客的本意是记录自己学习过程,并在日后忘记了某些步骤能回来找,而不是上网搜别人的。所以博客质量可能不咋地,大家有啥问题可以评论区讨论,勿喷!!!

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

相关文章:

(长期更新)《零基础入门 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 空间校正…...

go语言 Pool实现资源池管理数据库连接资源或其他常用需要共享的资源

go Pool Pool用于展示如何使用有缓冲的通道实现资源池,来管理可以在任意数量的goroutine之间共享及独立使用的资源。这种模式在需要共享一组静态资源的情况(如共享数据库连接或者内存缓冲区)下非 常有用。如果goroutine需要从池里得到这些资…...

mysql一个事务最少几次IO操作

事务的IO操作过程 开始事务:用户发起一个事务,例如执行START TRANSACTION;,此时事务开始。读取和修改数据:用户读取和修改数据时,InnoDB首先从Buffer Pool查找所需的数据页。如果数据页不在Buffer Pool中,…...

运输层总结

运输层协议:端到端协议 面向连接的传输控制协议 TCP无连接的用户数据报协议 UDP - 主要任务:为相 互通信的应用进程 提供 逻辑通信服务 - 屏蔽:运输层向高层用户 屏蔽 了下面网络核心的细节(如网络拓扑、所采用 的路由选择协议等…...

【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...

React 前端框架1

一、React 简介 (一)什么是 React React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开源并维护。它采用了组件化的开发思想,允许开发者将复杂的 UI 拆分成一个个独立、可复用的小组件,就如同搭积木一般&am…...

【真正离线安装】Adobe Flash Player 32.0.0.156 插件离线安装包下载(无需联网安装)

网上很多人声称并提供的flash离线安装包是需要联网才能安装成功的,其实就是在线安装包,而这里提供的是真正的离线安装包,无需联网即可安装成功。 点击下面地址下载离线安装包: Adobe Flash Player 32.0.0.156 for IE Adobe Fla…...

数据采集时,不同地区的动态IP数据质量有什么差异?

在数据采集的广阔世界中,动态IP扮演着至关重要的角色。它们不仅帮助我们突破地域限制,还能够提供多样化的数据来源。但是,不同地区的动态IP在数据质量上是否存在差异呢?本文将探讨这一问题,并为您提供实用的见解。 动…...

【Python爬虫五十个小案例】爬取猫眼电影Top100

博客主页:小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介:分享五十个Python爬虫小案例 🐍引言 猫眼电影是国内知名的电影票务与资讯平台,其中Top100榜单是影迷和电影产业观察者关注的重点。通过爬取猫眼电影Top10…...

等保测评和 ISO27001 都是信息保护,区别是什么?

ISO27001 和等级保护(等保)都是信息安全领域重要的标准和制度,但它们在多个方面存在区别: 定义和性质 ISO27001 它是国际标准化组织(ISO)发布的信息安全管理体系标准,其目的是帮助组织建立、实…...

Linux系统编程之进程创建

概述 在Linux系统中,通过创建新的进程,我们可以实现多任务处理、并发执行和资源隔离等功能。创建进程的主要方法为:fork、vfork、clone。下面,我们将分别进行介绍。 fork fork是最常用的创建新进程的方法。当一个进程调用fork时&a…...

JAVA-IO

目录 IO流 一 字节流 1 FileOutStream 1 书写: 2 换行书写与续写: 2 FileInputStream 1 读取数据 2 循环读取: 二 字符流 1 FileReader 1 空参的read()方法读取数据: 2 有参的read()方法读取数据: 3 指定字…...

动态系统特征分析:特征向量、特征值、频率与阻尼比、参与因子计算方法

特征值和特征向量在动态系统分析中是核心工具,广泛用于电力系统小信号稳定性、机械系统模态分析等领域。以下详细介绍计算方法及应用。 1. 求解特征值与特征向量 对于一个 n n n\times n nn的系统矩阵 A A A: 右特征向量与特征值 特征值( λ \lambd…...

乐鑫发布 esp-iot-solution v2.0 版本

今天,乐鑫很高兴地宣布,esp-iot-solution v2.0 版本已经发布,release/v2.0 分支下的正式版本组件将为用户提供为期两年的 Bugfix 维护(直到 2027.01.25 ESP-IDF v5.3 EOL)。该版本将物联网开发中常用的功能进行了分类整…...

动态代理如何加强安全性

在当今这个信息爆炸、网络无孔不入的时代,我们的每一次点击、每一次浏览都可能留下痕迹,成为潜在的安全隐患。如何在享受网络便利的同时,有效保护自己的隐私和信息安全,成为了每位网络使用者必须面对的重要课题。动态代理服务器&a…...

Flutter 之 InheritedWidget

InheritedWidget 是 Flutter 框架中的一个重要类,用于在 Widget 树中共享数据。它是 Flutter 中数据传递和状态管理的基础之一。通过 InheritedWidget,你可以让子 Widget 在不需要显式传递数据的情况下,访问祖先 Widget 中的数据。这种机制对…...

AI 助力开发新篇章:云开发 Copilot 深度体验与技术解析

本文 一、引言:技术浪潮中的个人视角1.1 AI 和低代码的崛起1.2 为什么选择云开发 Copilot? 二、云开发 Copilot 的核心功能解析2.1 自然语言驱动的低代码开发2.1.1 自然语言输入示例2.1.2 代码生成的模块化支持 2.2 实时预览与调整2.2.1 实时预览窗口功能…...

MyBatis-Plus介绍及基本使用

文章目录 概述介绍MyBatis-Plus 常用配置分页插件配置类注解配置 快速入门maven 依赖编写配置文件编写启动类编写 MybatisPlus 配置类 代码生成器:MybatisPlusGeneratormaven依赖代码生成器核心类 概述 介绍 MyBatis-Plus(简称 MP)是一个 M…...

SpringBoot 整合 Avro 与 Kafka

优质博文:IT-BLOG-CN 【需求】:生产者发送数据至 kafka 序列化使用 Avro,消费者通过 Avro 进行反序列化,并将数据通过 MyBatisPlus 存入数据库。 一、环境介绍 【1】Apache Avro 1.8;【2】Spring Kafka 1.2&#xf…...

支持JT1078和GB28181的流媒体服务器-LKM启动配置文件参数说明

流媒体服务器地址:https://github.com/lkmio/lkm GB28181信令,模拟多个国标设备工具:https://github.com/lkmio/gb-cms 文章目录 gop_cachegop_buffer_sizeprobe_timeoutwrite_timeoutmw_latencylisten_ippublic_ipidle_timeoutreceive_timeo…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

dify打造数据可视化图表

一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...