Network Analyst 图层属性

摘要

Describe 函数会返回 Network Analyst 图层的下述属性。

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

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

属性

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

Network Dataset 对象。

该对象可用于获取分析图层所使用的基础网络数据集的所有属性,例如 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 Locator 对象。 该对象可用于获取用于查找网络位置的类的名称、捕捉类型以及搜索查询信息。

Object
findClosest
(只读)

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

  • MATCH_TO_CLOSEST
  • PRIORITY

String
searchTolerance
(只读)

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

String
excludeRestrictedElements
(只读)

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

  • INCLUDE
  • EXCLUDE

String
solverProperties
(只读)

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

注:
最后一公里配送网络图层没有此属性。

Object
children
(只读)

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

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

List
parameterCount
(只读)

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

Integer
parameters
(只读)

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

Object
SolverOverrides
(只读)

注:

此属性仅限内部使用。

String

代码示例

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))

在本主题中