创建路径分析图层 (网络分析)

摘要

创建路径网络分析图层并设置其分析属性。路径分析图层可用于根据指定的网络成本确定一组网络位置之间的最佳路径。

用法

语法

MakeRouteLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {find_best_order}, {ordering_type}, {time_windows}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {start_date_time})
参数说明数据类型
in_network_dataset

将在其中执行路径分析的网络数据集。

Network Dataset Layer
out_network_analysis_layer

要创建的路径网络分析图层的名称。

String
impedance_attribute

分析过程中用作阻抗的成本属性。

String
find_best_order
(可选)
  • FIND_BEST_ORDER将记录停靠点以查找最佳路径。此选项将路径分析由最短路径问题变为流动推销员问题 (TSP)。
  • USE_INPUT_ORDER将按照输入顺序访问停靠点。这是默认设置。
Boolean
ordering_type
(可选)

当使用 FIND_BEST_ORDER 时,将指定停靠点的顺序。

  • PRESERVE_BOTHPreserves the first and last stops by input order as the first and last stops in the route.
  • PRESERVE_FIRSTPreserves the first stop by input order as the first stop in the route, but the last stop is free to be reordered.
  • PRESERVE_LASTPreserves the last stop by input order as the last stop in the route, but the first stop is free to be reordered.
  • PRESERVE_NONEFrees both the first and last stop to be reordered.
String
time_windows
(可选)

Specifies if time windows will be used at the stops.

  • USE_TIMEWINDOWS路径将在停靠点处使用时间窗。如果在时间窗之前到达停靠点,则在时间窗打开前将会有一段等待时间。如果在时间窗之后到达停靠点,将会出现时间窗冲突。当计算路径时,最小阻抗抵消了总的时间窗冲突。仅当阻抗使用时间单位时此选项才可用。
  • NO_TIMEWINDOWS路径将在停靠点处忽略时间窗。这是默认设置。
Boolean
accumulate_attribute_name
[accumulate_attribute_name,...]
(可选)

分析过程中要累积的成本属性的列表。这些累积属性仅供参考;求解程序仅使用阻抗属性参数所指定的成本属性来计算路径。

对于每个累积的成本属性,均会向求解程序所输出的路径中添加一个 Total_[阻抗] 属性。

String
UTurn_policy
(可选)

限制或允许停靠点间网络遍历过程中可能出现在交汇点处的 U 形转弯。

  • ALLOW_UTURNS无论在交汇点处有几条相邻边,均允许 U 形转弯。
  • NO_UTURNS在所有交汇点处均禁止 U 形转弯。不过请注意,即使已选择该设置,在网络位置仍允许 U 形转弯;但是可以通过设置个别网络位置的 CurbApproach 属性来禁止 U 形转弯。
  • ALLOW_DEAD_ENDS_ONLY除仅有一条相邻边的交汇点(死角)外,其他交汇点均禁止 U 形转弯。
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY在恰好有两条相邻边相遇的交汇点处禁止 U 形转弯,但是交叉点(任何三条或三条以上相邻边的交汇点)或死角(仅有一条相邻边的交汇点)处允许。
String
restriction_attribute_name
[restriction_attribute_name,...]
(可选)

分析过程中要应用的约束属性的列表。

String
hierarchy
(可选)
  • USE_HIERARCHY 使用等级属性进行分析。使用等级的结果是,求解程序更偏好高阶边而不是低阶边。分等级求解的速度更快,并且可用于模拟驾驶员在可能的情况下选择在高速公路而非地方道路上行驶(即使行程可能更远)的偏好。只有输入网络数据集具有等级属性时,此选项才有效。
  • NO_HIERARCHY不使用等级属性进行分析。如果不使用等级属性,则会为网络数据集生成精确的路径。

如果未在用于执行分析的网络数据集中定义等级属性,该参数将不可用。在这种情况下,使用“#”作为参数值。

Boolean
hierarchy_settings
(可选)

旧版本旧版本:

在版本 10 之前,可使用此参数将网络数据集中建立的默认等级范围更改为其他范围以用于分析。而版本 10 中不再支持此参数,并且应将其指定为空字符串。如果您要更改等级范围以进行分析,请更新网络数据集中的默认等级范围。

Network Analyst Hierarchy Settings
output_path_shape
(可选)

为分析所输出的路径要素指定形状类型。

  • TRUE_LINES_WITH_MEASURES输出路径将具有基础网络源的精确形状。而且,输出还包括线性参考的路径测量值。测量值从第一个停靠点增加并记录累积阻抗以达到指定位置。
  • TRUE_LINES_WITHOUT_MEASURES输出路径将具有基础网络源的精确形状。
  • STRAIGHT_LINES输出路径形状为两个停靠点之间的一条直线。
  • NO_LINES将不会为输出路径生成任何形状。

无论选择何种输出 shape 类型,最佳路径始终由网络阻抗(而非欧氏距离)决定。这表示只是路径形状不同,而对网络进行的基础遍历则相同。

String
start_date_time
(可选)

指定路径的开始日期和时间。路径开始时间通常用于查找基于阻抗属性(随当日时间变化)的路径。例如,开始时间 9 AM 可用于查找被认为是高峰时段流量的路径。此参数的默认值为 8:00 AM。可将日期和时间指定为 10/21/05 10:30 AM。如果路径历时多天,则仅指定开始时间,然后使用当前日期。

可使用以下日期来指定一周中的每一天,而无需使用特定的日期。

  • 今天 -- 12/30/1899
  • 星期日 -- 12/31/1899
  • 星期一 -- 1/1/1900
  • 星期二 -- 1/2/1900
  • 星期三 -- 1/3/1900
  • 星期四 -- 1/4/1900
  • 星期五 -- 1/5/1900
  • 星期六 -- 1/6/1900
例如,要指定开始时间为星期二下午 5:00 的路径,可将参数值指定为 1/2/1900 5:00 PM。

求解结束后,在输出路径中填充路径的开始时间与结束时间。也会在生成指示时使用这些开始时间和结束时间。

仅当将基于时间的成本属性指定为阻抗属性时,此选项才有效。

Date

代码示例

MakeRouteLayer 示例 1(Python 窗口)

仅使用必需参数执行此工具

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeRouteLayer_na("Transportation/Streets_ND","WorkRoute","Minutes")
MakeRouteLayer 示例 2(Python 窗口)

使用所有参数执行此工具

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeRouteLayer_na("Transportation/Streets_ND","InspectionRoute","Minutes",
                        "FIND_BEST_ORDER","PRESERVE_BOTH","USE_TIMEWINDOWS",
                        ["Meters","Minutes"],
                        "ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY",["Oneway"],
                        "USE_HIERARCHY","","TRUE_LINES_WITH_MEASURES",
                        "1/1/1900 9:00 AM")
MakeRouteLayer 示例 3(工作流)

以下独立 Python 脚本演示了如何使用 MakeRouteLayer 工具查找最佳路径以访问地理编码的停靠点位置。

# Name: MakeRouteLayer_Workflow.py
# Description: Find a best route to visit the stop locations and save the 
#              route to a layer file. The stop locations are geocoded from a 
#              text file containing the addresses.
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayer = "BestRoute"
    impedanceAttribute = "TravelTime"
    inAddressLocator = "SanFranciscoLocator"
    inAddressTable = "C:/data/StopAddresses.csv"
    inAddressFields = "Street Address VISIBLE NONE"
    fieldMappings = "Name Address #"
    outStops = "GeocodedStops"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new Route layer. Once the route layer is created, it can be 
    #referenced using its name.  
    arcpy.MakeRouteLayer_na(inNetworkDataset, outNALayer, impedanceAttribute)
    
    #Geocode the stop locations from a csv file containing the addresses.
    #The Geocode Addresses tool can use a text or csv file as input table
    #as long as the first line in the file contains the field names.
    arcpy.GeocodeAddresses_geocoding(inAddressTable, inAddressLocator, 
                                     inAddressFields, outStops)
    
    #Load the geocoded address locations as stop smapping the address field from
    #geocoded stop features as Name property.
    arcpy.AddLocations_na(outNALayer,"Stops", outStops, fieldMappings, "")
    
    #Solve the route layer, ignore any invalid locations such as those that
    #can not be geocoded
    arcpy.Solve_na(outNALayer,"SKIP")
    
    #Save the solved route layer as a layer file on disk with relative paths
    arcpy.SaveToLayerFile_management(outNALayer,outLayerFile,"RELATIVE")
    
    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occured on line %i" % tb.tb_lineno
    print str(e)

环境

相关主题


7/10/2012