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