交通地理信息系统实习教程(二)

news2024/11/26 10:23:40

 这篇文章服务于GIS背景用户以及有志于GIS的朋友

操作源数据位置:【免费】交通地理信息系统实习二源数据资源-CSDN文库

软件安装包位置:【免费】TransCad-交通地理信息系统软件资源-CSDN文库


  • 一、最短路径分析

1.1软件启动说明

这里需要给出一个必要的说明,TransCAD6.0软件在重启后会出现概率的闪退或无法打开现象,这里给出如下解决方案:

我们需要将同时放在TransCAD压缩包中的《TC6.0补丁》文件夹下的所有文件复制到TransCAD6.0的安装目录下,替换掉原文件即可。

接下来我们打开TCW软件即可以运行TransCAD6.0软件,TCW应用程序如图1-1所示:

图1-1 TCW应用程序

这里需要说明的是,若未重启也无法打开软件,也可以尝试将放在TransCAD压缩包中的《TC6.0补丁》文件夹下的所有文件复制到TransCAD6.0的安装目录下替换掉原文件。

1.2数据导入

在第一次实习中,我们便已大体上清楚TransCAD6.0的操作逻辑,这里我们参照实习指导书以及此前的操作进行本次的数据导入,在Procedures中勾选Network/Path和Routing/Logistics,如图1-2所示:

图1-2 Procedures勾选

接下来,打开以下地理文件:BOSTON.CDF,DEPOTS.DBD和STOPS.DBD,文件类型下拉框中选择Geographic File (* .cdf, * .dbd),如图1-3所示:

图1-3 选择Geographic File文件

1.3图例显示

接下来,我们需要将站点和仓库显示出来。这里,我们首先点击Map--Scale,将地图的显示比例改为1:40000,接下来点击STOPS层(即Customers)的显示符号,将其改为红色点状符号,大小为6;再将DEPOTS层的显示符号改为蓝色方形符号,大小为10;最后点击工具栏中的​对STOPS层的ID和DEPOTS层的NAME进行标注;操作如图1-4,结果如图1-5所示:

图1-4 图例显示操作

图1-5 图例实现结果

1.4保存文件

进行完如上操作后,我们便完成了一个阶段性的小目标,接下来我们只需要按照规定操作Save Workspace as到Lab3Data文件夹中,并命名为Lab3NetworkA.wrk,操作结果如图1-6所示:

图1-6 保存操作

1.5插入网络图层

为了在TransCAD中执行网络相关功能,需要有一个网络文件。我们首先激活Streets图层,然后点击Networks/Paths--Settings,打开Lab3Data中的MYBOSTON.NET网络文件;插入操作如图1-7所示:

图1-7 插入街道图层

1.6分析最短路径

进行完如上插入操作后,我们需要进行最短路径分析,接下来,点击Networks/Paths--Shortest Path,在弹出的窗口中点击​工具,选择两个仓库所对应的节点。点击右侧​工具,将LENGTH和TIME(min)的Skim Method都设置为All Links,然后依次设置Minimize为最短距离和最短时间,最后点击​工具即可求解;最短路径操作结果如图1-8所示,最短时间操作结果如图1-9所示:

图1-8 最短路径操作结果

图1-9 最短时间操作结果

1.7问题解答(first)

现在假设你在快递公司担任GIS-T分析员。你的第一个任务是找到街道网络中从第一仓库到第二仓库的最短路径,同时回答下列问题:

①两个仓库之间沿最短距离条件下的最短路径的总旅行时间和旅行距离是多少?(2分)

②沿着最短时间条件下的最短路径,两个仓库之间的总旅行时间和距离是多少?(2分) (注意:须写下测量单位)

③这两条最短路径使用的街道段是否相同?(2分)

解答:

如图1-10可知,沿最短距离条件下的最短路径的总旅行时间为8.4013mins,旅行距离为2.5884Miles

图1-10 最短距离条件下最短路径分析结果图

如图1-11可知,沿着最短时间条件下的最短路径的总旅行时间为7.0499mins,旅行距离为2.6941Miles

图1-11 最短时间条件下最短路径分析结果图

如图1-12可知,这两条最短路径使用的街道段并不相同,但在某些街道有重叠(最短距离条件下的路径为绿色,最短时间条件下的路径为

图1-12 路径分析对比图

1.8清除操作

这里为了不对后续操作步骤产生影响,我们需要对业已完成部分进行清除操作,即清除显示屏上的最短路径。


  • 二、TSP问题分析

这里我们的实际操作依旧是参照王老师给定的实习指导书中的内容。进行TSP即“履行推销员分析”。

2.1数据导入

为了进行后续分析,我们仍需要继续导入数据。首先点击Map—Layers,把街道网络(CDF Nodes Layer)的节点层在地图上显示出来;如图2-1所示:

图2-1 节点层显示

2.2创建数据集

接下来我们需要创建一个新的选择集,包括TSP之旅的所有站点。点击Tool–Selection选项,以交互方式选择第一仓库和ID为1至10的网络节点,将该选择集命名为"TSPstops",这里需要注意的是必须将第一仓库作为选择集的第一个条目;操作如图2-2所示,结果如图2-3所示:

图2-2 建立TSPstops数据集

图2-3 数据集建立完成视图

2.3保存文件

进行完如上操作后,我们便完成了一个阶段性的小目标,接下来我们只需要按照规定操作Save Workspace as到Lab3Data文件夹中,并命名为Lab3NetworkB.wrk,操作结果如图2-4所示:

图2-4 保存结果示意图

2.4隐藏CDF Nodes layer图层

为了进行TSP分析操作,这里我们需要隐藏CDF Nodes layer图层,操作示意如图2-5所示:

图2-5 隐藏CDF Nodes layer图层

2.5 TSP分析

接下来我们直接借助TransCAD的Traveling Salesman Problem分析工具进行TSP分析。首先,点击Networks/Paths–Traveling Salesman Problem,在Stops框中选择TSPstops,在Minimize框中选择[TIME (min)],并勾选Display directions框;最后点击ok,即可得到输出结果;操作示意如图2-6所示,操作结果如图2-7所示:

图2-6 TSP分析操作示意图

图2-7 TSP分析操作结果图

2.6分析XML文件

接下来,关闭Traveling Salesman Problem窗口,TransCAD将在Internet Explorer窗口或TXT窗口中显示驾驶指南。将这个XML文件(V6.0)或TXT文件(V4.5)保存并命名为"TSPdirections.xml"或"TSPdirecions.txt";这里我使用的是TransCAD6.0,故打开的是.xml文件,如图2-8所示:

图2-8 在Excel中打开的TSPdirections.xml文件

2.7删除TSP路线

为了进行后续VRP问题分析,这里我们需要删除已有的TSP路线,直接右键点击删除即可。操作如图2-9所示:

图2-9 删除TSP路线

2.8问题解答(second)

这个TSP之旅的总行程时间是多少?(2分)

阅读文件"TSPdirections.xml",上面的行驶路线表明,最后一个行程段是"从第11站到第12站"。为什么在旅行推销员问题的结果中会出现第12站?什么是第12站? (3分)

解答:

如图2-10可知,总行程时间为32.3881mins

图2-10 TSP总时间视图

如图2-11可知,第1站和最终的第12站都是第一仓库First Depot,从Excel文件表即行驶路线表里可以看到,出发的第一站fromnode 编号为108139,最后一个行程段中的tonode编号仍是108139,因此第12站就是出发的第一仓库。推测可能由于该车走一圈后最终还是会回到起点第一仓库。

图2-11 Excel分析图

2.9文件保存

进行完如上操作后,我们便又完成了一个阶段性的小目标,接下来我们只需要按照规定操作Save Workspace as到Lab3Data文件夹中,并命名为Lab3NetworkC.wrk,操作结果如图2-12所示:

图2-12 保存Lab3NetworkC.wrk文件

  • 三、VRP分析

3.1数据导入

首先,我们需要更新DEPOTS层的属性表中,即输入开放时间,由题已知第一仓库(ID=26)经营一辆运载能力为40个单位,成本为200美元的送货车,第二仓库(ID=27)经营一辆运载能力为70个单位,成本为300美元的送货车。接下来只需创建一个车辆表并输入相关数据,将此表保存在Lab3Data文件夹中,然后命名为VehicleTable1.bin;操作示意如图3-1、图3-2、图3-3和图3-4所示:

图3-1 在DEPOTS层的属性表中更新时间

图3-2 创建新的车辆表

图3-3 添加车辆表信息

图3-4 保存操作

3.2创建矩阵

接下来点击Routing/Logistics—Vehicle Routing,点击Matrix File框右侧的"..."按钮,打开Lab3Data文件夹中的VRP_MAT.MTX矩阵文件,作为该车辆路径问题中使用的路径规划矩阵(见下图);同时在Vehicle选项中选择上一步建立的VehicleTable1.bin文件;操作示意如图3-5和图3-6所示:

图3-5 Vehicle Routing建立操作

图3-6 Cities属性表视图

3.3 VRP操作

接下来,我们可以使用已经加载/创建的数据解决VRP。将输出的路线表保存在Lab3Data中,并命名为VRP_RouteTable1.bin,然后看到Internet Explorer窗口中显示的VRP行程报告,这里我使用的是TransCAD6.0,故保存此报告并命名为"VRP_ItineraryReport1.xml";操作示意如图3-7、图3-8和图3-9所示:

图3-7 创建路线示意图

图3-8 选择示意图

图3-9 保存操作示意图

3.4问题解答(third)

①从第一车厂派出的车辆的"总时间"和"Depart Load"是多少?从第一车厂派出的车辆为哪些客户提供服务?(注意:按照该车所服务的客户的顺序,列出车站的编号) (5分)

②该车辆在第二仓库的"总时间"和"Depart Load"是多少?这辆车在第二仓库的出发时间和返回时间是什么?这辆车为多少客户提供服务?(6分)

③是否有客户没有被这两辆车所服务?如果有,有多少?(3分)

解答:

由图3-10及图3-11可知,第一仓库的总时间为4h35mins;Depart Load是40.0。从第一车厂派出的车辆提供服务的站点依次是:Stop 24,Stop 1,Stop 2,Stop 22(共4个客户)

图3-10 route2视图

图3-11 first站点视图

由图3-12及图3-13可知,第二仓库的总时间为7h23min;Depart Load是60.0。这辆车在第二仓库的出发时间为1:23pm,返回时间为8:46pm,服务次序分别为:Stop12、 Stop11、Stop14、Stop15、Stop8、Stop18(6个客户)

图3-12 route1视图

图3-13 second站点视图

还有未被这两辆车服务的客户,共计15个客户。

3.5增加车辆VRP分析

接下来,修改车辆表,重新解决VRP。将新输出的路线表命名为VRP_RouteTable2,并将其保存在Lab3Data文件夹中。然后,将新的输出行程文件保存并命名为VRP_ItineraryReport2;操作示意如图所示:

图3-14 属性表添加车辆信息操作示意图

图3-15 输出示意图

图3-16 保存到作业文件夹

3.6问题解答(forth)

①这三辆车从两个仓库出发,是否有可能为所有25个客户提供服务?列出这三辆车各自服务的站点编号。另外请列出这三辆车都不提供服务的站点ID(如果存在这种站点)。(5分)

解答:

由图3-17可知,增加一辆车后仍不能为所有客户提供服务。

第一辆车服务的站点为(按服务次序):Stop 9Stop10(共2个)

第二辆车服务的站点为:Stop 14Stop15Stop17Stop16Stop11(共5个)

第三辆车服务的站点为:Stop 1Stop2Stop25Stop5Stop21Stop22Stop4Stop3Stop6Stop12(共10个)

这三辆车都不提供服务的站点为:Stop 7Stop8Stop13Stop18Stop19Stop20Stop23Stop24(共8个)

图3-17 三车路线示意图

四、实习总结

这次实习不仅是对我课堂学习的检验,更是对我实践能力的锻炼和提升。这次实习主要是利用TransCAD软件进行最短路径分析(SPA)、交通网络路径分析(TRP)和车辆路径问题(VRP)的实践操作。这些分析方法是交通规划、物流管理和地理信息系统应用中的重要工具,对于提高交通效率和优化资源配置具有重要意义。

在最短路径分析中,通过TransCAD构建了交通网络模型,并设置了起始点和终点。通过软件的分析功能,得到了网络中的最短路径及其相关属性,如距离、时间等。

在TRP分析中,考虑了更多的约束条件,如道路通行能力、车辆类型等。通过设定不同的参数和条件,得到了更加符合实际需求的路径分析结果。

在VRP分析中,则更为复杂。需要综合考虑多个配送点、车辆数量、装载量等因素,以找到最优的车辆路径方案。这要求我们不断地调整参数和尝试不同的策略,最终得到了满意的解决方案。

在实习过程中,我也遇到了很多挑战和困难。有时候,我会因为模型构建不当或参数设置不合理而导致分析结果不准确。但是,通过不断地试错和向助教学姐请教,我逐渐克服了这些困难,并提高了自己的操作能力。

这次GIS-T实习让我深刻体会到了理论与实践相结合的重要性。感谢老师和学姐的悉心指导和帮助!在未来的学习和实践中,我将继续努力,争取取得更好的成绩。

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

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

相关文章

快来参加【顶尖赛事】LIC·2024 语言与智能技术竞赛

语言与智能技术竞赛(LIC)是由中国中文信息学会(CIPS)和中国计算机学会(CCF)联合主办,百度公司、中国中文信息学会评测工作委员会和中国计算机学会自然语言处理专委会承办的中文NLP顶级赛事&…

qt移植到imx6ull运行(qt部署到imx6ull)

这个事情对于小白来说确实不是很友好,会经常出现错误,我弄了两天终于弄好了 我主要参考了https://blog.csdn.net/m0_61738650/article/details/131269561 https://blog.csdn.net/m0_61738650/article/details/131171914这两个教程 我现在来简述一下流程…

AI+新能源充电桩数据集

需要的同学私信联系,推荐关注上面图片右下角的订阅号平台 自取下载。 随着我国新能源汽车市场的蓬勃发展,充电桩的需求量日益增加,充电桩的智能化程度不仅影响充电站运营商的经营效益,也大大影响着用户的充电体验。AI技术可以涵盖…

深入浅出:ConcurrentLinkedQueue源码分析与实战

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

C++青少年简明教程:C++中的常量、变量、表达式和语句

C青少年简明教程:C中的常量、变量、表达式和语句 在C编程中,常量、变量、表达式和语句是基本的编程概念。 常量(Constants):在程序中具有固定值的数据称为常量。常量可以是字面值,如整数、浮点数、字符或…

西门子博途WINCC动画之旋转运动

概述 本例将介绍在西门子 TIA Portal HMI 中旋转运动动画的一种实现方法。本例以风机、搅拌器和传送带为例,按下启动按钮开始转动,按下停止按钮停止转动。 第1步: 添加 PLC 设备。​博途TIA/WINCC社区VX群 ​博途TIA/WINCC社区VX群 选择西…

基于SpringBoot的酒店(预约)客房管理系统的设计与实现+毕业论文

系统介绍 酒店客房管理系统为酒店管理者和用户、清洁人员提供一个在线管理酒店客房的系统。在网站的设计中,一共分为了两个模块设计,一个是前台模块,一个是后台模块,前台主要用于提供查看客房信息,酒店资讯&#xff0…

iOS MRC那句话

混编时使用MRC文件需要使用这句话 -fno-objc-arc在下图中显示的位置添加

5月13号作业

使用消息队列实现的2个终端之间的互相聊天 并使用信号控制消息队列的读取方式: 当键盘按ctrlc的时候,切换消息读取方式,一般情况为读取指定编号的消息,按ctrlc之后,指定的编号不读取,读取其他所有编号的消息…

004.可观察对象与观察者

Rx非常适合事件驱动的应用程序。这是有意义的,因为事件(作为)(如前所述)是创建时变值的命令式方法。从历史上看,事件驱动编程主要出现在客户端技术中,因为作为事件实现的用户交互。例如,你可能工作过使用OnMouseMove或OnKeyPressed事件。正因…

commvault学习(7):恢复oracle

在实际生产环境中,oracle的恢复方式大部分是异机恢复。 环境: 备份机:windows server2008,ip:192.168.20.56 恢复目标机:windows server2008,ip:192.168.20.55 CS、MA&#xff1…

acw165. 小猫爬山-DFS剪枝与优化

题目 思路 暴搜顺序:从前往后依次枚举每只小猫,枚举当前这只小猫应该放在哪一辆车上,递归完n层之后,就可以知道所有方案中的最少车辆总数剪枝的情况: 优化搜索顺序:大部分情况下,应该优先搜索分…

Java抽象类:为何它是你代码架构的基石?

目录 1、抽象类的概念 2、抽象类语法 3、抽象类特性 4、抽象类的作用 5、 完结散花 个人主页:秋风起,再归来~ 文章专栏:javaSE的修炼之路 个人格言:悟已往之不谏,知来者犹可追 克…

FPGA OSD 方案,应用于XBOX游戏机收费等领域

FPGA方案,HDMI IN接收原始HDMI 信号,HDMI OUT输出叠加字符/图片后的HDMI信号 客户应用:XBOX游戏机收费 主要特性: 1.支持多分辨率格式显示 2.支持OSD 叠加多个图层 3.支持字体大小随意配置 4.支持字体格式随意配置 5.零延时&…

GStreamer中如何自定义配置线程优先级

1.引言 如果看了gstreamer官方教程配置多线程出现编译不过的问题了,不妨进来看看这篇文章或许能解决一些编译问题。 GStreamer 本质上是多线程的,并且是完全线程安全的。大多数线程内部对应用程序是隐藏的,这应该使应用程序开发更容易。但是&…

测试项目实战--安享理财2(Jmeter接口测试)

说明: 1.访问地址: 本项目实战使用的是传智播客的安享理财项目(找了半天这个项目能免费用且能够满足测试实战需求) 前台:http://121.43.169.97:8081/ 后台:http://121.43.169.97:8082/ (点赞收藏…

机器人开发项目实现过程

比赛项目实现过程 第一步:设置远程桌面连接 登录机器人系统,设置网络,参考远程桌面连接20230525.mp4 外接显示器、鼠标和键盘 登录系统 账户:robuster 密码:123456 建议,手机开热点,机器人…

开关电源功率测试方法:输入、输出功率测试步骤

在现代电子设备中,开关电源扮演着至关重要的角色,其效率和稳定性直接影响到整个系统的性能。因此,对开关电源进行功率测试成为了电源管理的重要环节。本文将详细介绍如何使用DC-DC电源模块测试系统对开关电源的输入输出功率进行准确测量&…

RabbitMQ(四种使用模式)

文章目录 1.Fanout(广播模式)1.基本介绍2.需求分析3.具体实现1.编写配置类 RabbitMQConfig.java2.编写生产者,发送消息到交换机 MQSender.java3.编写消费者,接受消息 MQReceiver.java4.控制层调用方法,发送信息到交换机…

大厂Java面试题:MyBatis中是如何实现动态SQL的?有哪些动态SQL元素(标签)?描述下动态SQL的实现原理。

大家好,我是王有志。 今天给大家带来的是一道来自京东的 MyBatis 面试题:MyBatis 中是如何实现动态 SQL 的?有哪些动态 SQL 元素(标签)?描述下动态 SQL 的实现原理。 MyBatis 中提供了 7 个动态 SQL 语句…