练习 5:计算服务区和创建 OD 成本矩阵
在本练习中,将创建一系列面,用来表示在指定时间内从一个设施点可达到的距离。这些面也称为服务区面。本例将针对位于巴黎的六个仓库计算 3、5 和 10 分钟路程范围的服务区。
还将查找每个服务区中有多少个商店。将识别出需要重新定位的仓库,以更好地为这些商店提供服务。此外,还将创建一个“起始 - 目的地”成本矩阵,用于将货物从仓库运送到距离仓库十分钟车程范围内的所有商店。此矩阵用作物流、配送货物和路径分析等的输入。
Network Analyst 教程中本练习和其他练习所使用的数据可在 ArcGIS.com 中找到。数据下载完成后,可将其解压缩到所需位置。但是最好将其解压到 C:\arcgis\ArcTutor,因为本教程将此路径视作数据的默认位置。
准备视图
- 如果在 ArcMap 中打开了 Exercise05.mxd,请跳到步骤 6。
- 单击开始 > 所有程序 > ArcGIS > ArcMap 10.1 启动 ArcMap。
- 在 ArcMap - 启动 对话框中,单击现有地图 > 浏览更多。
-
浏览至 C:\ArcGIS\ArcTutor\Network Analyst\Tutorial。
这是本教程数据的默认安装位置。
-
双击 Exercise05.mxd。
将在 ArcMap 中打开该地图文档。
-
启用 ArcGIS Network Analyst 扩展模块。
-
单击自定义 > 扩展模块。
将打开扩展模块 对话框。
- 选中 Network Analyst。
- 单击关闭。
-
单击自定义 > 扩展模块。
-
单击自定义 > 工具条 > Network Analyst。
Network Analyst 工具条被添加到 ArcMap 中。
-
在 Network Analyst 工具条上,单击 Network Analyst 窗口按钮 。
打开可停靠的 Network Analyst 窗口。
如果未显示 Network Analyst 工具条,则需要添加该工具条。
如果未显示 Network Analyst 窗口,则需要添加该窗口。
可以停靠或取消停靠 Network Analyst 窗口。
创建服务区分析图层
-
在 Network Analyst 工具条上,单击 Network Analyst,然后单击新建服务区。
服务区分析图层即被添加到 Network Analyst 窗口中。网络分析类(设施点、面、线、点障碍、线障碍和面障碍)为空。
分析图层也将被添加到内容列表 窗口中。
添加设施点
接下来,将仓库添加为要生成服务区面的设施点。
-
按住 CTRL 键的同时,从内容列表 窗口中将 Warehouses 要素图层拖放到 Network Analyst 窗口的设施点类中。
六个仓库作为设施点加载并显示在地图中。
-
在 Network Analyst 窗口中,单击设施点 (6) 旁的加 (+) 号,可查看设施点列表。
设置分析参数
接下来,将指定基于行驶时间(使用分钟)计算服务区。将对每个设施点的三个服务区面进行计算,一个是 3 分钟,一个是 5 分钟,另一个是 10 分钟。将指定行驶方向为驶离设施点,而不是驶向设施点,不允许 U 形转弯,且必须遵守单向道限制。
-
单击 Network Analyst 窗口中的分析图层属性按钮。
将打开图层属性 对话框。
- 单击分析设置选项卡。
- 确保将阻抗设置为行驶时间(分钟)。
- 在默认中断文本框中输入 3 5 10。
- 在方向下,单击离开设施点。
- 从交汇点的 U 形转弯下拉列表中选择不允许。
- 选中忽略无效的位置。
- 在限制列表中选中 Oneway。
- 单击面生成选项卡。
- 确保选中生成面。
-
对于面类型,单击概化。
详细的面更准确,但生成这样的面需要更长的时间。
-
取消选中修剪面选项。
这是一个修剪外部面的后处理过程,用于移除凸出部分,但是运行时间较长。
-
单击叠置查看多个设施点选项。
每个设施点会形成单独的面。一个设施点的面可能会与附近的另一个设施点的面相互重叠。
-
单击环显示叠置类型。
将从较大中断值的面中排除较小中断值的区域。
- 单击应用保存设置。
- 单击线生成选项卡。
-
取消选中生成线。
尽管您不会从本练习中穿过的边生成线,但也可以选中此选项。
可以输出线、面或同时输出这两种结果。
- 单击确定。
运行计算服务区过程
-
在 Network Analyst 工具条上,单击求解按钮 。
服务区面即会出现在地图和 Network Analyst 窗口中。
- 在内容列表 窗口中,右键单击面子图层,然后选择属性。
- 单击符号系统选项卡。
-
单击符号字段名,然后选择翻转符号。(确保单击 - 而不是右键单击 - 符号;否则,不会出现快捷菜单。)
-
单击确定。
外部和内部服务区中断所在区域将有颜色的切换,使得 10 分钟中断所覆盖的区域更清晰。
识别位于所有服务区外部的商店
-
在内容列表 窗口中,单击 Stores 并将其拖动至图层列表中,以改善可见性。
-
单击选择 > 按位置选择。
-
在按位置选择 对话框中创建选择查询,以便从完全位于面中的商店中选择要素,如下图所示。
-
单击确定。
面内的商店已被选中;不过,您还要选取服务区面外的商店。
-
在内容列表 窗口中,右键单击商店,然后单击选择 > 切换选择。
此时,此选择将显示不在任何服务区面内的商店的分布情况。使用此选择识别仓库新位置所在的区域。最佳区域似乎位于地图的中央。
- 在工具 工具条上,单击清除所选要素按钮 。
重新定位最不容易到达的仓库位置
查看仓库 #2 的服务区面。在仓库 #2 的周围,没有任何在其 3、5 或 10 分钟服务区范围内的商店;因此,要重新定位此仓库的位置,以更好地为商店提供服务。
-
在 Network Analyst 窗口中,选择设施点 (6)下面的仓库 #2。
- 在 Network Analyst 工具条上,单击选择/移动网络位置工具 。
-
在地图视图中,将“仓库 #2”拖至地图的中央,如下图所示。
运行计算服务区过程
-
在 Network Analyst 工具条上,单击求解按钮 。
服务区面即会出现在地图和 Network Analyst 窗口中。
识别每个商店所在的服务区面
-
在内容列表 窗口中,右键单击商店,然后单击连接和关联 > 连接。
将打开连接数据 对话框。
-
选择基于空间位置的另一个图层的连接数据。
-
将面选作与此图层连接的图层。
-
单击落入其中的面按钮。
会将此面的属性添加至落入此面的所有点。
-
指定一个输出 shapefile 或要素类以保存数据连接结果,并将其命名为 StoresWithPoly。
-
单击确定。
ArcGIS 将执行此连接,并将新图层添加至地图文档中。
-
在内容列表 窗口中,右键单击新的 StoresWithPoly 要素图层,然后选择打开属性表。
表中的每行都显示商店名称和商店所落入面的名称。可以使用此表生成其他有用的目录,例如在 0 至 3 分钟服务区内的商店数量。
- 关闭属性表。
-
在 Network Analyst 窗口中,右键单击设施点 (6),然后选择导出数据。
将打开导出数据 对话框。
- 在导出下拉列表中,选择所有要素。
-
选择输出位置和类型(shapefile 或要素类)。
可以选择将要素类存储在 Paris 地理数据库中:C:\arcgis\ArcTutor\Network Analyst\Tutorial\Paris.gdb\New_Warehouses
-
单击确定。
随即显示提示消息,询问您是否要将导出数据添加到地图中。
-
单击否。
本练习的其余部分不需要使用此数据。
创建 OD 成本矩阵分析图层
也可以创建“起始 - 目的地”成本矩阵,以便将货物从新仓库运送到每个商店。此矩阵的结果可用于识别 10 分钟车程内的每个仓库所要服务的商店。而且,您可以查找从每个仓库到所要服务的商店的总行驶时间。
- 在内容列表 窗口中,取消选中服务区分析图层和StoresWithPoly要素图层,以改进地图的可读性。
-
在 Network Analyst 工具条上,单击 Network Analyst,然后单击新建 OD 成本矩阵。
OD 成本矩阵分析图层即被添加到 Network Analyst 窗口中。网络分析类(起始点、目的地、线、点障碍、线障碍和面障碍)为空。
分析图层也将被添加到内容列表 窗口中。
添加起始点
可以将服务区分析(如前面几节中所述)的设施点作为起始点。如果尚未完成服务区相关的练习,可以使用“仓库”要素图层作为起始点。
-
在 Network Analyst 窗口中,右键单击起始点 (0),然后选择加载位置。
将打开加载位置 对话框。
- 单击加载位置下拉列表中的服务区/设施点。(如果尚未完成先前的服务区分析相关练习,可以选择仓库。)
- 取消选中仅加载选定行。
-
在位置定位下,单击使用网络位置字段。(如果正加载“仓库”,请单击使用几何。)
如果使用网络位置字段,则 ArcGIS 将能够使用服务区设施点的已指定的位置再次将其指定为起始点。同使用空间搜索重新指定相比,这要快得多。
-
单击确定。
六个新的起始点即会显示在地图上,并列于起始点下 Network Analyst 窗口中。
添加目的地
- 在 Network Analyst 窗口中,右键单击 目的地 (0),然后选择加载位置。
- 在加载位置下拉列表中选择商店。
-
在位置分析属性下,从字段下拉列表选择 NOM 作为属性名称。
由于 NASolverConfiguration.xml 文件中没有配置法语字段名称 NOM,因此,ArcGIS 无法自动映射此字段名称。
-
单击确定。
此时,Network Analyst 窗口中列有 21 个目的地。
这些目的地也将显示在地图中。
设置分析参数
接下来,将指定基于行驶时间计算 OD 成本矩阵。要设置一个长度为 10 分钟的默认中断值,并确保在指定中断中找到所有目的地。此外,还要指定所有位置都允许 U 形转弯,输出 Shape 类型应为直线。由于所有行程均发生在道路上,因此必须遵守单行线限制。所有无效的位置(未找到的位置)都将被忽略。
-
单击 Network Analyst 窗口中的分析图层属性按钮。
- 单击分析设置选项卡。
- 确保将阻抗下拉列表设置为行驶时间(分钟)。
- 取消选中使用开始时间。
-
在默认中断值文本框中输入 10。
这会创建每个仓库与所有商店之间的距离小于等于 10 分钟车程的“起始 - 目的地”路径。由于阻抗属性的单位是分钟,因此将以分钟为单位。
- 确保将要查找的目的地设置为<全部>。
- 单击交汇点的 U 形转弯下拉箭头,然后选择允许。
- 确保将输出 Shape 类型设置为直线。
- 确保选中忽略无效的位置。
-
在限制列表中选中 Oneway。
-
单击确定。
参数设置即被保存。
运行创建 OD 成本矩阵过程
-
在 Network Analyst 工具条上,单击求解按钮 。
OD 线将出现在地图上。在本例中有 24 条线。您计算得到的路线数可能与此不同,这具体取决于“仓库 #2”重新定位后的位置。
- 如果未显示“服务区”图层,则打开该图层,以便在仓库服务区的顶部显示“OD 成本矩阵”图层。
将商店分配给仓库
基于 OD 成本矩阵,现在可以识别每个仓库可以服务的商店。
-
在 Network Analyst 窗口中,右键单击 线 (24),然后选择打开属性表。
线属性表将被打开。
- 如果不打算继续做其他练习,请退出 ArcMap。单击否放弃任何更改。
-
如果打算继续做其他练习,请按照以下子步骤操作。
-
单击文件 > 新建。
将打开新建文档 对话框。
- 单击确定。
- 系统提示保存更改时,单击否。
-
单击文件 > 新建。
线属性表表示每个仓库与商店之间的距离小于等于 10 分钟车程的“起始 - 目的地”成本矩阵。OriginID 列中包含仓库的 ID。DestinationID 列中包含商店的 ID。DestinationRank 是分配给每个目的地的等级,仓库基于总行驶时间来为这些目的地提供服务。例如,在下表中,对于仓库 #1,DestinationID 2 的等级为 1,DestinationID 3 的等级为 2。这是因为从仓库 #1 到 DestinationID 2 花费的时间较少。(您的数字可能与此不同,因为您的分析结果取决于起始点和目的地的源要素类。)
OD 成本矩阵用于显示每个仓库所服务的商店,以及每条路线的总行驶时间。有些商店与多个仓库之间的距离均在 10 分钟的行程范围内,因此,可以接受其中任意一个仓库的服务。OD 成本矩阵也可用作物流路径优化模型中的输入,此类模型使用“起始–目的地”矩阵来分配货物和服务。