网络分析图层属性

摘要

Describe 函数可返回 Network Analyst 图层的以下属性。

对于 Network Analyst 图层,Describe dataType 属性将返回 "NALayer" 的值。

Network Analyst 图层包含了通过 Network Analyst 扩展模块分析网络问题时使用的输入和参数的信息。

属性

属性说明数据类型
network
(只读)

网络数据集对象。

该对象可用于获取分析图层所使用的基础网络数据集的所有属性,例如 catalogPath

Object
nameString
(只读)

Network Analyst 图层的名称。

String
solverName
(只读)

图层所引用的 Network Analyst 求解程序。 每个图层仅能引用一个求解程序。 此属性返回以下关键字:

  • 路径求解程序
  • 最近设施点求解程序
  • 服务区求解程序
  • OD 成本矩阵求解程序
  • 车辆路线问题求解程序
  • 位置分配求解程序

String
impedance
(只读)

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

String
accumulators
(只读)

累积为分析一部分的网络成本属性的,用分号分隔的列表。

String
restrictions
(只读)

适用于分析的限制属性的,用分号分隔的列表。

String
ignoreInvalidLocations
(只读)

表明求解程序考虑 Network Analyst 类中无效网络位置的方式的布尔表达式。

True 值表明无效位置已被求解程序忽略。 False 值表明无效位置不会被求解程序忽略。

Boolean
uTurns
(只读)

指示求解程序如何处理停靠点之间的网络遍历时在交汇点处产生的 U 形转弯。 此属性返回以下关键字:

  • ALLOW_UTURNS
  • NO_UTURNS
  • ALLOW_DEAD_ENDS_ONLY
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY

String
useHierarchy
(只读)

表明 Network Analyst 图层是否使用等级。 此属性返回以下关键字:

  • USE_HIERARCHY
  • NO_HIERARCHY

String
hierarchyAttribute
(只读)

等级属性的名称。

String
hierarchyLevelCount
(只读)

用于定义等级属性的等级范围数。 最大值为 3。

Integer
maxValueForHierarchyX
(只读)

给定的等级属性具有可定义等级范围的值。 每个范围的最大值可从 maxValueForHierarchyX 属性中获取,其中 X 代表等级级别。 例如,第一个等级范围的最大值(用于定义主要道路)可从 maxValueForHierarchy1 属性中获取。

使用 hierarchyLevelCount 属性确定给定等级属性的 maxValueForHierarchy 属性的可能数量。 例如,如果 hierarchyLevelCount 属性返回 3,则 Describe 对象将支持 MaxValueForHierarchy1MaxValueForHierarchy2 属性。

Integer
locatorCount
(只读)

用于通过搜索确定网络位置的类的总数。

Integer
locators
(只读)

Network Analyst 定位器对象。 该对象可用于获取用于查找网络位置的类的名称、捕捉类型以及搜索查询信息。

Object
findClosest
(只读)

用于指示定位网络分析对象时搜索网络源要素的方式。 此属性返回以下关键字:

  • MATCH_TO_CLOSEST
  • PRIORITY

String
searchTolerance
(只读)

用于指示查找网络位置时所用搜索容差和单位的,用空格分隔的字符串。

String
excludeRestrictedElements
(只读)

表明是否可将网络分析对象仅定位于网络源的可遍历部分。该属性会返回下列关键字:

  • INCLUDE
  • EXCLUDE

String
solverProperties
(只读)

Network Analyst 求解程序对象。 该对象可用于确定 Network Analyst 图层中特定于求解程序的属性。

Object
children
(只读)

返回将各个网络分析类(例如停靠点和路线)引用为图层Describe 对象的列表。

将网络分析图层作为图层文件存储于磁盘上时不能使用该属性。

List
parameterCount
(只读)

所有由 Network Analyst 图层所使用的基础网络数据集的网络属性定义的属性参数的总量。

Integer
parameters
(只读)

网络属性参数对象。 可利用该对象确定用于网络分析的属性参数。

Object

代码示例

Network Analyst 图层属性示例

显示指定 Network Analyst 图层文件的属性。

# Name: NALayerProperties_ex01.py
# Description: Lists all the properties that can be derived by describing a 
#              network analysis layer.

import arcpy

#Arguments..
#in_layer is the name of the Network Analysis layer file to be described.  
in_layer = "C:/Data/Route.lyr"  

#Get the description object using Describe. 
desc = arcpy.Describe(in_layer) 

arcpy.AddMessage(" ")
arcpy.AddMessage("== Description of network analysis layer " + in_layer + " ==")
arcpy.AddMessage(" ") 

#Print general infomation.
justify = 35 
nds = desc.network 
solvername = desc.solverName 
arcpy.AddMessage("---- General information:") 
arcpy.AddMessage(" %*s: %s" % (justify, "Network" , nds.catalogPath)) 
arcpy.AddMessage(" %*s: %s" % (justify, "SolverName" , desc.solverName)) 
arcpy.AddMessage(" %*s: %s" % (justify, "Impedance" , desc.impedance)) 
arcpy.AddMessage(" %*s: %s" % (justify, "Accumulators" , desc.accumulators)) 
arcpy.AddMessage(" %*s: %s" % (justify, "Restrictions" , desc.restrictions)) 
arcpy.AddMessage(" %*s: %s" % (justify, "Ignore invalid locations?" , 
                str(desc.ignoreInvalidLocations))) 
arcpy.AddMessage(" %*s: %s" % (justify, "UTurn policy" , desc.UTurns)) 
arcpy.AddMessage(" %*s: %s" % (justify, "Using hierarchy?" , desc.useHierarchy))
arcpy.AddMessage(" %*s: %s" % (justify, "Exclude Restricted Elements?" ,
                               desc.excludeRestrictedElements))
arcpy.AddMessage(" ") 

#A note about the dynamic properties (indicated by X in the help system)
#In order to access the dynamic properties use Python's built in getattr()
#function. In order to find out if a dynamic property is supported by the 
#describe object, use Python's built in hasattr() function. 

# Print attribute parameter information
arcpy.AddMessage(" ---- Attribute Parameter information ----") 
count = desc.parameterCount 
if count == 0: 
    arcpy.AddMessage(" ---- No Attribute Parameters defined ----") 
else: 
    parameters = desc.parameters 
    for i in range(0, count): 
        attributeName = getattr(parameters,"attributeName" + str(i)) 
        parameterName = getattr(parameters, "parameterName" + str(i)) 
        parameterValue = getattr(parameters, "parameterValue" + str(i)) 
        arcpy.AddMessage(" %*s: %s: %s" % (justify, attributeName, 
                                           parameterName, parameterValue))   

# Print hierarchy information
if desc.useHierarchy.lower() == "use_hierarchy": 
    arcpy.AddMessage(" ---- Hierarchy information ----")
    arcpy.AddMessage(" %*s: %s" % (justify, "Hierarchy Attribute Name",
                                   desc.hierarchyAttribute)) 
    count = desc.hierarchyLevelCount
    arcpy.AddMessage(" %*s: %d" % (justify, "Hierarchy Level Count" , count)) 
    
    for i in range(0, count ): 
        levelRange = "" 
        if i == 0:      
            levelUB = getattr(desc,"maxValueForHierarchy" + str(i+1))            
            levelRange = "up to %s" % levelUB 
        elif i == (count - 1): 
            prevLevelUB = getattr(desc, "maxValueForHierarchy" + str(i)) 
            levelRange = "%s and higher" % (prevLevelUB + 1)
        else: 
            prevLevelUB =  getattr(desc, "maxValueForHierarchy" + str(i)) 
            levelUB = getattr(desc,"maxValueForHierarchy" + str(i + 1)) 
            levelRange = "%s - %s" % ((prevLevelUB + 1), levelUB)
        
        arcpy.AddMessage(" %*s %d range: %s" % (justify, "level", (i + 1), 
                                                levelRange))

    arcpy.AddMessage(" ") 

# Print locator information. 
arcpy.AddMessage("---- Locator information:") 
count = desc.locatorCount 
arcpy.AddMessage(" %*s: %d" % (justify, "Count" , count)) 
arcpy.AddMessage(" %*s: %s" % (justify, "Find Closest?" , desc.findClosest)) 
arcpy.AddMessage(" %*s: %s" % (justify, "Search Tolerance", 
                               desc.searchTolerance))
arcpy.AddMessage(" %*s: %s" % (justify, "Exclude Restricted Elements",
                               desc.excludeRestrictedElements))
locators = desc.locators 
for i in range(0, count): 
    sourceName = getattr(locators, "source" + str(i)) 
    sourceType = getattr(locators, "snapType" + str(i))
    searchQuery = getattr(locators, "searchQuery" + str(i))
    arcpy.AddMessage(" %*s: %s" %(justify, sourceName, sourceType))
    arcpy.AddMessage(" %*s: %s" %(justify, sourceName, searchQuery))

在本主题中