创建服务区图层 (网络分析)

摘要

创建服务区网络分析图层并设置其分析属性。服务区分析图层对于确定在指定中断成本范围内能从设施点位置访问的区域十分有用。

用法

语法

MakeServiceAreaLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {travel_from_to}, {default_break_values}, {polygon_type}, {merge}, {nesting_type}, {line_type}, {overlap}, {split}, {excluded_source_name}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {polygon_trim}, {poly_trim_value}, {lines_source_fields})
参数说明数据类型
in_network_dataset

将在其中执行服务区分析的网络数据集。

Network Dataset Layer
out_network_analysis_layer

要创建的服务区网络分析图层的名称。

String
impedance_attribute

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

String
travel_from_to
(可选)

指定行至/离开设施点的方向。

  • TRAVEL_FROM在远离设施点的方向上创建服务区。
  • TRAVEL_TO在接近设施点的方向上创建服务区。

使用此选项的结果是,在基于行驶方向的网络上,单向限制及阻抗差异会产生不同的服务区。例如,应该在远离设施点的方向上创建比萨外卖店的服务区,而医院的服务区应该创建在接近设施点的方向上。

String
default_break_values
(可选)

指示要计算的服务区范围的默认阻抗值。可通过对设施点指定中断值来覆盖默认值。

可以设置多个面中断来创建同心服务区。例如,要为同一设施点查找 2 分钟、3 分钟和 5 分钟服务区,请将“默认中断值”参数指定为“2 3 5”(2、3 和 5 这些数字之间应该以空格分隔)。

String
polygon_type
(可选)

指定要生成的面的类型。

  • SIMPLE_POLYS创建生成速度快并且相当精确的概化面,边缘除外。这是默认设置。
  • DETAILED_POLYS创建详细面,用于对服务区线进行精确建模并且可包含未到达区域的岛。这种面比概化面的生成速度慢。
  • NO_POLYS在仅需要服务区线的情况下,将关闭“面生成”选项。

如果是具有类似格网网络的市区数据,则概化多边形和详细多边形之间的差别最小。然而,对于山区道路和农村道路,详细多边形可能会呈现出比概化多边形更精确的结果。

String
merge
(可选)

指定用来合并共享相似中断值的面的选项。仅当为多个设施点生成面时,此选项才可用。

  • NO_MERGE为各个设施点创建单独的面。这些面可以相互叠加。
  • NO_OVERLAP为各个设施点创建最接近的单独面。这些面不会相互叠加。
  • MERGE 连接具有相同中断值的多个设施点的面。
String
nesting_type
(可选)

指定选项,将同心服务区面创建为圆盘或圆环。仅当为这些设施点指定多个中断值时,此选项才可用。

  • RINGS不包括较小中断的区域。这将在连续的中断之间创建面。如果要查找从一个中断到另一个中断的区域,请使用此选项。
  • DISKS 在设施点与中断之间创建面。例如,如果创建 5 分钟和 10 分钟服务区,则 10 分钟服务区面将包含 5 分钟服务区面下面的区域。如果要为各个中断查找从设施点到中断的整个区域,请使用此选项。
String
line_type
(可选)

指定基于服务区分析生成的线的类型。对于大型服务区,选择 TRUE_LINES 或 TRUE_LINES_WITH_MEASURES 选项将增大分析所占用的内存量。

  • NO_LINES不生成线。这是默认设置。
  • TRUE_LINES生成没有测量值的线。
  • TRUE_LINES_WITH_MEASURES生成具有测量值的线。基于插入了中间结点的边上每个端点的阻抗值生成测量值。如果对性能要求较高,请勿使用此选项。
String
overlap
(可选)

Determines if overlapping lines are generated when the service area lines are computed.

  • OVERLAP 当设施点具有重合的服务区线时,将包含各个设施点的单独线要素。
  • NON_OVERLAP 每个服务区线最多被包含一次,并将它与最近(阻抗最小)的设施点相关联。
Boolean
split
(可选)
  • SPLIT将两个中断之间的每条线分割为两条线,各自位于其对应中断内。如果要按中断对服务区线进行符号化,此选项很有用。否则,使用 NO_SPLIT 选项以达到最佳性能。
  • NO_SPLIT在中断的边界处不对线进行分割。这是默认设置。
Boolean
excluded_source_name
[excluded_source_name,...]
(可选)

指定生成面时要排除的网络源的列表。所有面都将忽略排除的源中遍历元素的几何。

在生成面过程中,如果不想包括某些会创建低精度面或者对于服务区分析无关紧要的网络源时,此选项十分有用。例如,在街道和铁路的多方式网络上创建行驶时间服务区时,应该在面生成过程中选择排除铁路线,这样才能准确地对车辆可以行驶的区域进行建模。

从服务区多边形中排除网络源并不会阻止这些源受遍历。只会影响该服务区的多边形形状。如果要阻止遍历一个给定的网络源,必须在定义网络数据集时创建适当的限制。

String
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
polygon_trim
(可选)
  • TRIM_POLYS对包含服务区外围边的面进行修剪,以使其外边达到指定的距离。这在网络非常稀疏且不需要服务区覆盖大片不含要素的区域时十分有用。
  • NO_TRIM_POLYS不修剪面。
Boolean
poly_trim_value
(可选)

指定在其中对服务区面进行修剪的距离范围。该参数包括距离的值和单位。默认值是 100 米。

Linear unit
lines_source_fields
(可选)
  • LINES_SOURCE_FIELDS 向服务区线添加 SourceID、SourceOID、FromPosition 和 ToPosition 字段,以保存分析过程中已遍历的基础源要素的信息。可用于将服务区线的结果连接到原始源数据。
  • NO_LINES_SOURCE_FIELDS不向服务区线添加源字段(SourceID、SourceOID、FromPosition 和 ToPosition)。
Boolean

代码示例

MakeServiceAreaLayer 示例 1(Python 窗口)

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

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

使用所有参数执行此工具

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.MakeServiceAreaLayer_na("Transportation/ParisNet","WarehouseCoverage",
                              "Drivetime","TRAVEL_FROM","5 10 15", 
                              "SIMPLE_POLYS", "NO_OVERLAP","RINGS","TRUE_LINES",
                              "NON_OVERLAP","NO_SPLIT",
                              ["Metro_Lines","Transfer_Stations",
                               "Transfer_Street_Station"],
                              ["Meters","Drivetime"],"ALLOW_DEAD_ENDS_ONLY",
                              ["Oneway"],"NO_TRIM_POLYS","",
                              "LINES_SOURCE_FIELDS")
MakeServiceAreaLayer 示例 3(工作流)

以下独立 Python 脚本演示了如何使用 MakeServiceAreaLayer 工具在消防站周围生成 1 分钟、2 分钟和 3 分钟服务区。

# Name: MakeServiceAreaLayer_Workflow.py
# Description: Generate 1-,2-,3- minute service area around fire stations and 
#              save the results to a layer file on disk. The service area 
#              polygons can be used to visualize the areas that do not have 
#              adequate coverage from the fire stations 
# 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 = "FireStationCoverage"
    impedanceAttribute = "TravelTime"
    inFacilities = "Analysis/FireStations"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new service area layer. We wish to generate the service area 
    #polygons as rings, so that we can easily visualize the coverage for any 
    #given location. We also want overlapping polygons as we can determine the 
    #number of fire stations that cover a given location. We will specify these
    #options while creating the new service area layer.
    arcpy.MakeServiceAreaLayer_na(inNetworkDataset, outNALayer, 
                                  impedanceAttribute, "TRAVEL_FROM", "1 2 3", 
                                  "SIMPLE_POLYS", "NO_MERGE", "RINGS")
    
    #Load the fire stations as facilities using deafult field mappings and 
    #default search tolerance
    arcpy.AddLocations_na(outNALayer, "Facilities", inFacilities, "","")    
    
    #Solve the service area layer
    arcpy.Solve_na(outNALayer)
    
    #Save the solved service area 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