练习 2:创建多方式网络数据集
练习 1 演示如何为单一交通模式创建网络;但是,旅行者和通勤者通常使用几种交通方式,如在人行道上步行、在道路网上行驶以及搭乘火车。货物也会以多种交通方式运送,如火车、轮船、卡车和飞机。在本练习中,您将从要素数据集中的多个要素类创建多方式网络数据集。
启动“新建网络数据集”向导。
- 单击开始 > 所有程序 > ArcGIS > ArcCatalog 10 启动 ArcCatalog。
-
启用“网络分析”扩展模块。
-
单击自定义 > 扩展模块。
将打开扩展模块 对话框。
- 选中网络分析。
- 单击关闭。
-
单击自定义 > 扩展模块。
-
如果尚未连接到 Network Analyst 教程的文件夹,则需要按照以下子步骤创建一个。
-
在标准工具 工具条上,单击连接到文件夹按钮 。
将打开连接到文件夹对话框。
-
导航到含有 ArcGIS Network Analyst 教程数据的文件夹。
教程数据的默认存储位置是 C:\ArcGIS\ArcTutor\Network Analyst\Tutorial。
-
单击确定。
文件夹快捷菜单将添加到目录树 的文件夹连接下。
-
在标准工具 工具条上,单击连接到文件夹按钮 。
- 在目录树 中,展开 ...\ArcTutor\Network Analyst\Tutorial > Exercise02 > Paris.gdb。
-
单击交通要素数据集。
它包含的要素类将列于 ArcCatalog 的内容选项卡上。
-
右键单击交通要素数据集并单击新建 > 网络数据集。
将打开新建网络数据集 向导。
命名网络并选择源要素类
-
输入 ParisMultimodal_ND 作为您的网络数据集的名称。
-
单击下一步。
将显示用于选择加入到网络数据集中的要素类的向导页。
-
单击全选选择要作为源加入到网络中的所有要素类。
- 单击下一步。
-
单击是在网络中构建转弯模型。
尽管此网络不存在任何转弯要素类,选择是将允许网络数据集支持通用转弯并为您提供在创建网络后随时添加转弯要素的选项。
-
单击下一步。
将显示设置连通性页面。
设置连通性和高程策略
建立 ArcGIS Network Analyst 中的连通性要从定义连通性组开始。每个边源只能被分配到一个连通性组中,每个交汇点源可被分配到一个或多个连通性组中。一个联通性组中可以包含任意数量的源。网络元素的连接方式取决于元素所在的连通性组。例如,对于创建自两个不同源元要素类的两个边,如果它们处在相同连通性组中,则可以进行连接。如果处在不同连通性组中,除非用同时参与了这两个连通性组的交汇点连接这两个边,否则不可以连接这两个边。
您将通过以下步骤创建连通性组。
-
单击连通性以设置网络的连通性模型。
将打开连通性 对话框。
-
单击组列数向上箭头一次可将连通性组的数量增加到 2。
将在连通性组表中创建第二个连通性组的列。
- 单击 Streets 行并选中标注为 2 的列下的复选框将 Streets 源移动到连通性组 2。
-
单击 Metro_Entrances 行并选中标注为 2 的列下的复选框以在组 1 和组 2 中包含源要素类。
地铁入口是街道与通向地铁站的人行道之间的转移点。
-
将 Metro_Entrances 行的连通性策略从遵循改为覆盖。
- 单击确定返回新建网络数据集 向导。
- 单击下一步。
-
此数据集不存在高程数据;因此单击无。
-
单击下一步。
向导将显示网络数据集的属性。
Metro_Entrances 的每个要素与街道要素类的折点重合。但是,街道要素类具有端点连通性策略。由于地铁入口需要在重合折点处连接到街道,因此必须将 Metro_Entrances 设置为覆盖街道的默认端点连通性。
网络数据集中的高程设置进一步定义了连通性。为了帮助理解,假设两条边在 X 和 Y 空间内端点重合,但高程不同(一个端点高于另一个)。此外,假设连通性策略设置为端点。如果忽略高程,两条边相连。但如果考虑高程,它们就不相连。
有两种方式可构建高程模型:使用几何中的实际高程值或使用高程字段中的逻辑高程值。
移除属性
网络属性用于控制导航。常见示例有用作网络阻抗的成本属性,或禁止双向穿越或单向穿越(如单行线)的约束属性。
ArcGIS Network Analyst 将分析源要素类并查找常见字段,如“米”、“分钟”(FT_Minutes 和 TF_Minutes,分别用于每个方向)和“单向”。如果找到此类字段,它将自动创建对应网络属性并分配相应字段。(通过单击赋值器可进行查看。)
Network Analyst 将自动为巴黎的街道数据配置五个属性:HierarchyNavStreets、Meters、Minutes、Oneway 和 Road Class。
尽管您可能会保留网络数据集的等级属性,但以下步骤还是要简要地说明如何通过移除 HierarchyNavStreets 来移除网络属性。
- 单击 HierarchyNavStreets。
- 单击移除。
现在,网络只剩下四个属性。
验证和创建网络属性
此网络数据集的一个目标是构建行人时间和驾驶时间的模型。在执行网络分析时,这允许您在两个时间成本中进行选择。例如,您可以选择回答“在街道上步行并搭乘地铁的行人从 A 点到 B 点的最快路径是那条?”或者“驾车行驶的人的最快路径是哪条?”要做到这一点,必须设置两个时间成本属性:PedestrianTime 和 DriveTime。
-
选择 Minutes 行,单击重命名,输入 DriveTime,然后按 ENTER。
-
单击添加。
将打开添加新属性 对话框。
- 在名称文本框中输入 PedestrianTime。
- 将使用类型设置为成本。
- 将单位改为分钟。
-
将数据类型设置为双精度。
-
单击确定。
将关闭添加新属性 对话框,并在属性列表中添加 PedestrianTime。
Network Analyst 在源数据中自动检测到的 Minutes 属性代表行驶时间,因此您可以将它改为更适合的名称。
三种成本属性(Meters、DriveTime 和 PedestrianTime)具有黄色的警告符号,提示您赋值器存在的潜在问题,赋值器可指定网络属性值的计算方式。
在以下三部分中,您将要配置赋值器。
配置 Meters 赋值器
您将在本部分和以下几部分中设置各种赋值器。Meters 赋值器会计算网络中边的距离成本。
-
选择 Meters,然后单击赋值器。
将打开赋值器 对话框。您可以在此处查看和编辑赋值器类型以及它在网络中的每个源的值。您可以看到交汇点和转弯源始终具有一个关联的赋值器,而边源具有两个:每个行驶方向(“自-至”和“自-至”方向)一个。
-
在按住 SHIFT 键的同时,单击 Transfer_Stations 自-至行并单击 Transfer_Street_Station 至-自行。
将选中四个带有警告符号的行。
-
右键单击任何所选行并单击类型 > 字段。
警告符号会变为红色错误符号,表示未完成向字段赋值器分配值。
-
在仍然选中四行的情况下,右键单击任意一行并单击值 > SHAPE_LENGTH。
这样会将所选源要素类的 SHAPE_LENGTH 字段中的值指定给 Meters 属性关联的网络边要素。
-
单击应用。
Meters 网络属性将会配置为获取长度值。对于从 Metro_Lines、Streets、Transfer_Stations 和 Transfer_Street_Station 源创建的网络要素,属性值将分别提取自其 Meters、METERS、Shape_Length 和 SHAPE_LENGTH 字段。
ArcGIS Network Analyst 会检查所有源要素类并尝试自动为 Meters 属性指定赋值器。在本例中,它发现 Metro_Lines 和 Streets 源具有名为 Meters 的字段,因此它将赋值器设置为从这些字段中提取值。相同的长度值将会指定给边源的“自-至”和“至-自”方向。
Network Analyst 无法在 Transfer_Stations 和 Transfer_Street_Station 源中找到 meters 的字段。因此,将显示警告符号来表示存在潜在问题。
配置 DriveTime 和 Oneway 赋值器
因为汽车只在街道上行驶,各种源的赋值器也应作相应设置。
-
从属性下拉列表中,选择 DriveTime。
Streets 源的 DriveTime 值已由 Network Analyst 自动填充;但是,其他边源会显示警告符号,因为它们没有被指定值。这些源需要标记为受限。地铁站也需要限制,以防止新网络分析对象放在那里。
-
确保选中了所有带警告符号的行(Metro_Lines、Transfer_Stations 和 Transfer_Street_Station)。
如果尚未选中,可通过单击一行并在按住 CTRL 键的同时单击其他行来选中它们。
- 按住 CTRL 键并单击 Metro_Stations 将它添加到所选内容中。
-
右键单击任一所选行并单击类型 > 常量。
其余行仍然为选中状态,它们的赋值器类型同样会更改为常量。
-
再次右键单击任一所选行,但是这次单击值 > 属性。
将出现常量值输入框。
-
输入 -1 并按 ENTER。
全部所选行的值将更改为 -1。Network Analyst 将所有成本值为 -1 的元素视为受限。因此,将 DriveTime 属性用作网络分析中的阻抗时,这些源是不可遍历的。
- 单击应用。
-
从赋值器 对话框顶部的属性下拉列表中,选择 Oneway。
属性值框目前显示 Oneway 网络属性的赋值器,它已被自动指定 Streets 源的值。
与地铁系统相关的源不需要单向约束。
-
单击任一 Streets 行并单击赋值器属性按钮 。
您将看到用于确定街道是否为单向的表达式。
- 单击取消返回到赋值器 对话框。
配置 PedestrianTime 赋值器
PedestrianTime 网络属性表示行人在网络中行走花费的时间。在本组步骤中,您将为搭乘地铁或沿街行走的行人指定相应的行程时间。
-
从赋值器 对话框顶部的属性下拉列表中,选择 PedestrianTime。
应该已选中以下源所在的行:Metro_Lines、Transfer_Stations 和 Transfer_Street_Station。
- 右键单击任一所选行并单击类型 > 字段。
-
再次右键单击任一所选行,但是这次单击值 > TRANSITTIM。
TRANSITTIM 字段将存储使用交通系统的行人的时间成本。街道也需要行人时间值,但是计算方式不同。
- 单击 Streets 自-至行选中它。按住 CTRL 键并单击 Streets 至-从行选中这两行。
-
右键单击任一所选行并单击值 > 属性。
将打开字段赋值器 对话框。
- 双击字段 METERS 将它移动到值 = 文本框并在字段赋值器 中完成表达式 [METERS] * 60 / 3000 的输入,如下所示。
-
单击验证确保表达式正确;如有错误,应予以修复。
-
单击确定返回到赋值器 对话框。
- 单击确定返回新建网络数据集 向导。
- 单击下一步。
配置方向
当在网络数据集中计算路径时,您能够在算出结果的同时得出行驶方向。网络数据集必须至少具有一个带文本属性(用于记录街道名称信息)和距离属性(用于显示需要下一个相关行进策略之前边源所经过的距离)的边源。
- 单击是设置方向。
-
单击方向。
将打开网络方向属性 对话框。
-
在常规选项卡上,单击源下拉列表并选择 Streets。
- 在街道名字段列表中,单击主要选中它。
-
单击名称列并选择 FULL NAME。
- 单击确定返回新建网络数据集 向导。
-
单击下一步。
将显示所有设置的摘要信息供您查看。
接下来将指定用于为网络分析结果报告方向的字段。
创建和构建网络数据集
设置完网络数据集的运作方式后,您需要创建并构建它。创建过程很快,主要是创建逻辑网络的容器。
-
单击完成。
将启动进度条,显示 Network Analyst 正在创建网络数据集。
-
单击是。
将启动“构建网络数据集”进度条;构建过程结束后它会消失。
新的网络数据集 ParisMultimodal_ND 及系统交汇点要素类 ParisMultimodal_ND_Junctions 已添加到 ArcCatalog。
- 通过单击网络数据集名称并单击预览选项卡预览网络数据集。
- 关闭 ArcCatalog。
创建网络后,系统问您是否要构建它。构建过程会确定哪些网络元素是互相连接的,并填充网络数据集属性。必须先构建网络才能对其执行网络分析。