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