上机六交通网络构建和设施服务区分析.docx
《上机六交通网络构建和设施服务区分析.docx》由会员分享,可在线阅读,更多相关《上机六交通网络构建和设施服务区分析.docx(14页珍藏版)》请在冰豆网上搜索。
上机六交通网络构建和设施服务区分析
上机六:
交通网络构建和设施服务区分析
本练习将利用ArcGIS精确地构建城市交通网络,包括道路线形、道路通畅情况、车速、路口禁转、单行线、高架路、路障等。
然后在此基础上计算最短车行路径和设施的服务区域。
在操作过程中,主要通过ArcGIS的“网络分析”扩展模块来完成,在第一次使用该模块之前需要首先加载该模块,可点击菜单【自定义】→【扩展模块…】,在【扩展模块】对话框中勾选其中的【NetworkAnalyst】选项。
一、道路交通网络的构建
基础数据简介
要进行和路网有关的分析,首先要在计算机中模拟出现实的道路情况。
本练习的数据取自某城市的局部路网,打开地图文档“chap08\练习数据\道路交通网络的构建\交通网络.mxd”,可以看到路网的基本情况。
该路网存放在个人地理数据库【道路】要素类中。
【道路】要素类是由几何线段构成的,每段线代表一段道路,所有道路都在路口打断。
*说明一:
平面交叉口是多条道路相交的地方,一定要把所有道路在路口打断(图A),或者在道路交点处为每条道路增加一个中间折点(图B),只有这样ArcGIS网络模型才会认为这些道路是相交的,并识别这个路口。
此外,也有不需要打断或增加中间折点的情况,例如一条路通过桥梁跨越另一条路,那么这两条路实际上是不相交的(图C)。
*说明二:
为了把两条线在交点处打断,可以在编辑状态下,使用【高级编辑】工具栏中的【线相交】工具。
查看【道路】要素类的属性可以看到它有4个自定义属性:
ROAD_TYPE:
道路类型;
Shape_Length:
路段长度(单位:
米);
DriveTime:
车行时间(单位:
分钟);
WalkTime:
步行时间(单位:
分钟)。
道路交通网络简单建模
交通网络建模是一项十分复杂的工作,首先建议一个最简单的交通网络模型,不考虑单行线、路口禁转等情况。
步骤1:
启动ArcMap,打开地图文档【chap08\练习数据\道路交通网络的构建\交通网络.mxd】,点击菜单【自定义】→【扩展模块…】,在【扩展模块】对话框中勾选其中的【NetworkAnalyst】选项。
步骤2:
新建网络数据集。
在【目录】面板中,浏览到【chap08\练习数据\道路交通网络的构建\交通网络.mdb\路网】项,右键点击【路网】要素数据集,在弹出菜单中选择【新建】→【网络数据集…】。
之后会弹出【新建网络数据集】向导对话框。
步骤3:
输入网络数据集的名称【交通网络】,然后点击【下一步】。
步骤4:
选择要参与网络模型的要素类。
勾选【道路】要素类,然后点击【下一步】。
步骤5:
设置路口转弯。
接受默认【是】和【通用转弯】,意味着所有路口均可以随意转弯,点击【下一步】。
步骤6:
设置连通性,规定线和线如何联通。
点击【连通性…】按钮,显示【连通性】对话框。
该对话框列表显示了参与网络模型的要素类。
这是模型中暂时只有【道路】要素类。
点击【道路】行的【连通性策略】列对应的单元格,弹出一个下拉列表,从中选择【端点】,意味着一条线只能通过端点和相接的另一条线连通(如果选择【任意节点】则意味着一条线可以通过其上的任何折点(包括端点)和另一条线连通,当然连通处也必须是另一条线上的折点)。
点【确定】返回,然后点击【下一步】。
步骤7:
设置高程建模。
网络模型还可以根据高程建立连通性,例如两条线交于端点,但两端点的高程不同,则不会建立连通。
这里接受默认设置,点【下一步】。
步骤8:
为网络指定通行成本、等级、限制等属性。
ArcGIS会从参与网络的要素类的属性中自动识别一些基本属性。
这里系统自动识别了【Minutes】属性,作为网络通行成本,单位是【分钟】。
选中【Minutes】行,然后点击【赋值器…】(或直接双击改行),可以查看该设置的详细参数,如下,其中有两条记录。
两条记录的【源】都是【道路】要素类。
两条记录的【方向】分别是【自—至】和【至—自】,分别代表道路通行的两个方向,一个是从道路起点到终点,另一个是从终点到起点(注;线的起点是绘制改线的第一点,终点是最后一点)。
两条记录的【元素】都是【边】,代表路网上的线段。
两条记录的【类型】都是【字段】,其【值】是【DriveTime】,意味着根据【道路】要素类的属性字段【DriveTime】中的值来确定通行成本。
系统识别的是正确的,点【确定】返回前一对话框。
右键点击【Minutes】行,在弹出菜单中选择【重命名】,将【Minutes】更名为【车行时间】。
步骤9:
新建路程成本属性。
点击【添加…】按钮,显示【添加新属性】对话框,如下图所示,设置名称为【路程】,使用类型选择【成本】,单位选择为【米】,数据类型选择【双精度】,点【确定】返回。
这时属性列表中新添了【路程】属性行,但是改行前面有警告符号
,意味着设置还存在问题。
选择【路程】属性后,点击【赋值器…】按钮,显示【赋值器】对话框,按下图所示进行设置,这样设置意味着用【道路】要素类的长度字段【Shape_Length】的值作为网络模型中网段的双向通行成本。
点【确定】返回。
将【路程】属性作为默认属性。
右键点击【路程】属性,在弹出菜单中选择【默认情况下使用】,之后该属性前会出现符号
,【D】代表“default”。
之后进行网络分析时会把它作为默认的网络属性,而不是之前的【车行时间】属性。
步骤10:
完成设置。
点【下一步】,为网络建立行驶方向设置时,选择【否】,点【下一步】,然后点【完成】结束设置。
之后会弹出对话框,询问【新网络数据集已创建,是否立即构建】,点【是】。
网络构建完成后提示【是否还要将参与到“交通网络”中的所有要素类添加到地图】,点【是】。
至此,一个简单的网络模型已经构建完毕。
模拟单行线
前面建立了一个简单的路网模型,紧接之前步骤,为其添加一些单行线路段。
步骤1:
为【道路】要素类添加【Oneway】字段。
网络模型将根据该字段确定是否单行,什么方向单行。
在【目录】面板中右键点击【道路】要素类,在弹出菜单中选择【属性…】,显示【要素类属性】对话框,切换到【字段】选项卡。
在【字段名】列点击任意一个空单元格,输入【Oneway】,数据类型选择【短整型】,【字段属性】栏设置如下图所示,默认值设为【0】意味着所有路段默认都不是单行线。
点【确定】完成。
步骤2:
让【道路】图层显示线段方向。
右键点击【道路】图层,在弹出菜单中选择【属性…】,显示【图层属性】对话框,切换到【符号系统】选项卡。
点击【符号】栏中的样式按钮,弹出【符号选择器】,选择【ArrowRightMiddle】样式,并把颜色设为墨绿,点【确定】。
点【确定】完成图层属性设置。
设置完成后,图中每条路段中间都多了一个表示线段绘制方向的箭头,如下图所示。
步骤3:
录入【Oneway】字段的属性。
点击【标准工具】工具条中的选择元素工具
,然后按住【Shift】键,依次选择下图所示路段,该路段位于路网的左下角。
右键点击【道路】图层,在弹出菜单中选择【打开属性表】,显示【表】对话框,右键点击表头【Oneway】,在弹出菜单中选择【字段计算器…】,显示【字段计算器】对话框,在【Oneway=】下输入【1】,点【确定】。
这里设为【1】意味着只允许沿道路箭头方向通行。
按住【Shift】键,依次选择路网左下角的第二条道路,如下图所示,将这条路的【Oneway】属性设为【-1】,设为【-1】意味着只允许沿道路箭头的反方向通行。
步骤4:
设置网络属性。
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【属性…】,显示【网络数据集属性】。
在该对话框中可以对路网作全面调整。
切换到【属性】选项卡。
添加道路限行属性。
点击【添加…】按钮,显示【添加新属性】对话框,输入【名称】为【道路限行】,【使用类型】选择【限制】,意味着该属性是用于限制网络通行的;勾选【默认情况下使用】,使该属性默认参与所有网络分析。
设置后如下图所示。
点【确定】。
选择前面新建的【道路限行】属性,点击【赋值器…】按钮,显示【赋值器】对话框,将道路的【自-至】行和【至-自】行的类型都设置为【字段】。
右键点击道路【自-至】行,在弹出菜单中选择【值】→【属性…】,显示【字段赋值器】对话框。
在【预逻辑VB脚本代码】栏输入:
【restricted=False
If[Oneway]=-1Thenrestricted=True】
在【值=】栏输入【restricted】。
设置好如下图所示。
该设置的涵义是如果【Oneway】的值等于-1,那么沿道路箭头方向限行,亦即只允许沿道路箭头的反方向通行。
点【确定】返回。
双击道路【至-自】行,弹出【字段赋值器】对话框。
在【预逻辑VB脚本代码】栏输入:
【restricted=False
If[Oneway]=1Thenrestricted=True】
在【值=】栏输入【restricted】。
设置好如下图所示。
该设置的涵义是如果【Oneway】的值等于1,那么沿道路箭头反方向限行,亦即只允许沿道路箭头的方向通行。
点击【确定】完成【道路限行】属性的设置。
点击【确定】完成网络数据集属性的设置。
步骤5:
重新构建网络模型。
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【构建】。
模拟禁止转弯
紧接之前步骤,为网络增加一些禁止转弯的路口。
步骤1:
新增转弯要素类。
在【目录】面板中,右键点击【路网】要素数据集,在弹出菜单中选择【新建】→【要素类…】,显示【新建要素类】对话框。
将【名称】设为【路口转弯】,【类型】选择【转弯要素】,【选择转弯要素类所属的网络数据集】栏选择之前构建好的【交通网络】。
点【下一步】,然后点【完成】。
之后,新建的【路口转弯】要素类被添加到当前地图文档,并显示在【内容列表】面板中。
步骤2:
编辑转弯要素类。
启动编辑。
点击【编辑器】工具条中的
下拉按钮,在下拉菜单中选择【开始编辑】,显示【创建要素】面板。
启动捕捉。
右键点击任意工具条,在弹出菜单中选择【捕捉】,显示【捕捉】工具条。
工具条中保证【边捕捉】、【折点捕捉】和【端点捕捉】处于选中状态;点击【捕捉】下拉按钮,勾选【使用捕捉】和【交点捕捉】。
在【创建要素】面板中点击【路口转弯】绘图模板。
绘制转弯要素,禁止下图中由北至南的小路进入主干道时左转。
利用捕捉,依次点击小路、交叉点,然后双击主干道,如图所示,如此就绘出了左转弯的通行轨迹。
绘制转弯要素,禁止主干道掉头。
利用捕捉,依次点击主干道、掉头地点,再回过头再次点击主干道,如下图所示,如此就绘出了掉头的通行轨迹。
停止并保存编辑,点【编辑器】工具条中的
下拉按钮,在下拉菜单中选择【停止编辑】,弹出保存对话框时,点【是】保存编辑内容。
步骤3:
设置网络属性。
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【属性…】,显示【网络数据集属性】。
切换到【转弯】选项卡。
由于【路口转弯】要素类在创建时已经选择属于【交通网络】,所以这里已经出现在转弯列表中,如果之前没有设置,这需要点击【添加…】按钮,为网络添加转弯要素类。
切换到【属性】选项卡,添加转弯属性。
点击【添加…】按钮,显示【添加新属性】对话框,设置新属性的【名称】为【转弯限制】,设置【使用类型】为【限制】,勾选【默认情况下使用】,使该属性默认参与所有网络分析;点【确定】完成新属性的添加。
选择上面新建的【转弯限制】属性,点击【赋值器…】按钮,显示【赋值器】对话框,将【路口转弯】行的【类型】设置为【常量】,【值】设置为【使用约束条件】,意味着只要存在该要素的位置都不许按要素方向转弯。
点【确定】。
点【确定】,完成网络属性设置。
步骤4:
重新构建网络模型。
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【构建】。
模拟路口红灯等候
紧接之前步骤,为路网模型添加路口通行时间。
步骤1:
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【属性…】,显示【网络数据集属性】。
步骤2:
切换到【属性】选项卡,选择【车行时间】属性,然后点击【赋值器…】按钮,显示【赋值器】对话框。
步骤3:
在【赋值器】对话框中,切换到【默认值】选项卡。
将【转弯】属性的【类型】设置为【通用转弯延迟】。
双击【转弯】行的【值】列对应的单元格,显示【通用转弯延迟赋值器】对话框。
设置各个方向的平均通行时间,其单位是秒,其中【平直从地方到地方道路不穿过任何道路】市值两条路首尾相接,相接处没有路口,此时通行时间一般是“0”。
步骤4:
在所有弹出对话框中,点【确定】完成设置。
步骤5:
重新构建网络模型。
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【构建】。
模拟地铁
紧接之前步骤,为路网模型添加地下轨道交通网。
步骤1:
将【路网】要素数据集下的【地铁】和【地铁出入口】要素类添加到当前地图文档。
步骤2:
设置网络。
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【属性…】,显示【网络数据集属性】。
切换到【源】选项卡。
点击【添加…】按钮,为网络添加【地铁】和【地铁出入口】要素类。
切换到【连通性】选项卡。
将【组列数】栏设置为【2】,意味着将有2组网络;将【地铁】设置到组【2】;取消勾选【地铁】行的列【1】,然后勾选【地铁】行的列【2】;类似地将【道路】设置到组【1】;对于【地铁出入口】,同时勾选该行的列【1】和列【2】,意味着它将被两组共享。
点击【地铁出入口】的【连通性策略】,将其从【依边线连通】更改为【交点处连通】,意味着该要素拥有更高的连通权利,它将不遵循【道路】或【地铁】在该交汇点的连通属性,它将在任何重合节点处连接到各组网络的边。
切换到【属性】选项卡,由于新添的要素改变了以前设置好的属性,此时很多属性都出现了错误警告。
下面一个个进行修改。
双击【车行时间】,显示【赋值器】对话框。
这时地铁的两条属性都因为存在错误而被自动选择了,右键单击它们,在弹出菜单中选择【类型】→【常数】;再次点击右键,在弹出菜单中选择【值】→【属性】,弹出【常量值】对话框,输入【-1】,回车。
这样设置意味着不允许通行,很显然地铁是不允许车辆通行的;此时警告已经消除,点【确定】完成车行时间的设置。
双击【路程】,将两条【地铁】和两条【道路】的【类型】设置为【字段】,【值】设置为【Shape_Length】。
点【确定】,完成网络属性设置。
步骤3:
在地铁出入口成打断地铁和道路线条。
启动编辑。
点击【编辑器】工具条中的
下拉按钮,在下拉菜单中选择【开始编辑】,然后再在下拉菜单中选择【更多编辑工具】→【高级编辑】,显示【高级编辑】工具条。
交点处打断。
在【高级编辑】工具条中选择【线相交】工具
,然后依次点击地铁出入口处的道路和地铁线条,最后在空白处再点击一次左键确认,则两条相交线在交点处相互被打断成四条线。
停止并保存编辑,点【编辑器】工具条中的
下拉按钮,在下拉菜单中选择【停止编辑】,弹出保存对话框时,点【是】保存编辑内容。
步骤4:
重新构建网络模型。
在【目录】面板中,右键点击【交通网络】,在弹出菜单中选择【构建】。
至此,一个比较复杂的城市交通路网已经构建完毕。
二、最短路径的计算
步骤1:
启动ArcMap,打开地图文档【chap08\练习数据\网络分析\最短路径分析.mxd】,其中包含一个完整的交通网络模型。
步骤2:
启动【NetworkAnalyst】工具条。
在任意工具条上单击右键,在弹出菜单中选择【NetworkAnalyst】,显示【NetworkAnalyst】工具条。
这是工具条中的【网络数据集】栏显示为【交通网络】,证明系统已经自动识别了该网络模型,并把它作为默认的网络分析对象。
步骤3:
启动路径分析。
点击【NetworkAnalyst】工具条上的按钮【NetworkAnalyst】,在下拉菜单中选择【新建路径】,之后会显示【NetworkAnalyst】面板,并且,【内容列表】面板中新添了【路径】图层。
步骤4:
分析工具的设置。
设置停靠点。
在【NetworkAnalyst】面板中选择【停靠点】,然后点击【NetworkAnalyst】工具条上的【创建网络位置工具】
,在图面上的路径分析启动和终点各点击一次,这两个点会被同步添加到【NetworkAnalyst】面板的【停靠点】项目下。
设置障碍,例如某条路正在维修不能通行。
在【NetworkAnalyst】面板中选择【点障碍】,然后还是点击【NetworkAnalyst】工具条上的创建网络位置工具】
,再点击图面上的障碍路段,该路段会标记一个障碍标志
。
设置分析属性。
点击【NetworkAnalyst】面板右上角的【属性】按钮
,显示【图层属性】对话框。
切换到【分析设置】选项卡。
其默认【阻抗】是【路程(米)】,将其更改成【车行时间(分钟)】,意味着根据车行时间来计算最短路径。
点【确定】完成设置。
步骤5:
路径求解。
点击【NetworkAnalyst】工具条上的【求解】工具条
,短暂运算后,得到计算结果
步骤6:
查看详细数据。
右键点击【NetworkAnalyst】面板中的【路径】项下的路线【图形选择1—图形选择2】,在弹出菜单中选择【属性…】,显示【属性】对话框。
列表中【Total_车行时间】为累计的阻抗值,这里是车行时间。
三、设施服务区分析
步骤1:
启动ArcMap,打开地图文档【chap08\练习数据\网络分析\设施服务区分析.mxd】,其中包含一个完整的交通网络模型,以及一个【小学】图层。
步骤2:
启动服务区分析。
点击【NetworkAnalyst】工具条上的按钮【NetworkAnalyst】,在下拉菜单中选择【新建服务区】,之后会显示【NetworkAnalyst】面板,并且,【内容列表】面板中新添了【服务区】图层。
步骤3:
加载设施点。
在【NetworkAnalyst】面板中,右键点击【设施点】项,在弹出菜单中选择【加载位置…】,显示【加载位置】对话框。
将【加载自】栏设置为【小学】,意味着根据【小学】要素类确定设施点的位置。
点【确定】后,19个小学的位置被提取出来成为了设施点。
步骤4:
设置服务区分析的属性。
点击【NetworkAnalyst】面板右上角的【属性】按钮
,显示【图层属性】对话框。
切换到【分析设置】选项卡。
选择【阻抗】为【路程(米)】,【默认中断】设为【500800】,这意味着将生成小学的500米和800米服务区。
点【确定】。
步骤5:
服务区求解。
点击【NetworkAnalyst】工具条上的【求解】工具
,短暂运算后,得到计算结果。