创建服务区图层 (网络分析)
摘要
创建服务区网络分析图层并设置其分析属性。服务区分析图层对于确定在指定中断成本范围内能从设施点位置访问的区域十分有用。
用法
语法
参数 | 说明 | 数据类型 |
in_network_dataset |
将在其中执行服务区分析的网络数据集。 | Network Dataset Layer |
out_network_analysis_layer |
要创建的服务区网络分析图层的名称。 | String |
impedance_attribute |
分析过程中用作阻抗的成本属性。 | String |
travel_from_to (可选) |
指定行至/离开设施点的方向。
使用此选项的结果是,在基于行驶方向的网络上,单向限制及阻抗差异会产生不同的服务区。例如,应该在远离设施点的方向上创建比萨外卖店的服务区,而医院的服务区应该创建在接近设施点的方向上。 | String |
default_break_values (可选) |
指示要计算的服务区范围的默认阻抗值。可通过对设施点指定中断值来覆盖默认值。 可以设置多个面中断来创建同心服务区。例如,要为同一设施点查找 2 分钟、3 分钟和 5 分钟服务区,请将“默认中断值”参数指定为“2 3 5”(2、3 和 5 这些数字之间应该以空格分隔)。 | String |
polygon_type (可选) |
指定要生成的面的类型。
如果是具有类似格网网络的市区数据,则概化多边形和详细多边形之间的差别最小。然而,对于山区道路和农村道路,详细多边形可能会呈现出比概化多边形更精确的结果。 | String |
merge (可选) |
指定用来合并共享相似中断值的面的选项。仅当为多个设施点生成面时,此选项才可用。
| String |
nesting_type (可选) |
指定选项,将同心服务区面创建为圆盘或圆环。仅当为这些设施点指定多个中断值时,此选项才可用。
| String |
line_type (可选) |
指定基于服务区分析生成的线的类型。对于大型服务区,选择 TRUE_LINES 或 TRUE_LINES_WITH_MEASURES 选项将增大分析所占用的内存量。
| String |
overlap (可选) |
Determines if overlapping lines are generated when the service area lines are computed.
| Boolean |
split (可选) |
| Boolean |
excluded_source_name [excluded_source_name,...] (可选) |
指定生成面时要排除的网络源的列表。所有面都将忽略排除的源中遍历元素的几何。 在生成面过程中,如果不想包括某些会创建低精度面或者对于服务区分析无关紧要的网络源时,此选项十分有用。例如,在街道和铁路的多方式网络上创建行驶时间服务区时,应该在面生成过程中选择排除铁路线,这样才能准确地对车辆可以行驶的区域进行建模。 从服务区多边形中排除网络源并不会阻止这些源受遍历。只会影响该服务区的多边形形状。如果要阻止遍历一个给定的网络源,必须在定义网络数据集时创建适当的限制。 | String |
accumulate_attribute_name [accumulate_attribute_name,...] (可选) |
分析过程中要累积的成本属性的列表。这些累积属性仅供参考;求解程序仅使用阻抗属性参数所指定的成本属性来计算路径。 对于每个累积的成本属性,均会向求解程序所输出的路径中添加一个 Total_[阻抗] 属性。 | String |
UTurn_policy (可选) |
限制或允许停靠点间网络遍历过程中可能出现在交汇点处的 U 形转弯。
| String |
restriction_attribute_name [restriction_attribute_name,...] (可选) |
分析过程中要应用的约束属性的列表。 | String |
polygon_trim (可选) |
| Boolean |
poly_trim_value (可选) |
指定在其中对服务区面进行修剪的距离范围。该参数包括距离的值和单位。默认值是 100 米。 | Linear unit |
lines_source_fields (可选) |
| Boolean |
代码示例
仅使用必需参数执行此工具
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.MakeServiceAreaLayer_na("Transportation/Streets_ND","FireStationCoverage", "Minutes")
使用所有参数执行此工具
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")
以下独立 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)