Свойства слоя сетевых данных ArcGIS Network Analyst (arcpy)

Резюме

Функция Описать (Describe) возвращает следующие свойства слоёв Network Analyst.

Слой Network Analyst возвращает тип данных (dataType) у "NALayer".

Слой Network Analyst Layer хранит информацию о входных данных и параметрах, используемых в анализе сети с помощью дополнительного модуля ArcGIS Network Analyst.

Свойства

СвойствоОбъяснениеТип данных
network
(только чтение)

Объект Набора сетевых данных (Network Dataset).

Этот объект может использоваться для получения всех свойств, например, catalogPath, выделенного набора сетевых данных с помощью слоя анализа.

Object
nameString
(только чтение)

Имя объекта слоя Network Analyst.

String
solverName
(только чтение)

Механизм расчета Network Analyst, применяемый слоем. Каждый слой может ссылаться только на один механизм расчета. Это свойство возвращает следующие ключевые слова:

  • Механизм расчета маршрута
  • Механизм расчета ближайшего пункта обслуживания
  • Механизм расчета зон обслуживания
  • Матрица Источник-Назначение (OD cost matrix)
  • Механизм расчета задачи выбора маршрута транспорта (Vehicle Routing Problem Solver)
  • Механизм расчета Размещение-Распределение

String
impedance
(только чтение)

Этот стоимостный сетевой атрибут можно использовать в качестве импеданса в ходе сетевого анализа.

String
accumulators
(только чтение)

Разделенный точкой с запятой список сетевых атрибутов стоимости, совокупность которых учитывается в ходе данного анализа.

String
restrictions
(только чтение)

Разделенный точкой с запятой список атрибутов ограничения, применяемых в ходе данного анализа.

String
ignoreInvalidLocations
(только чтение)

Выражение Boolean, указывающее способ, с помощью которого механизм расчета находит неверные сетевые положения внутри классов Network Analyst.

Значение True указывает, что неверные положения игнорируются механизмом расчета. Значение False указывает, что неверные положения рассматриваются механизмом расчета.

Boolean
uTurns
(только чтение)

Указывает, как развороты на соединениях, которые могут возникать в ходе прохода по сети между остановками, рассматриваются механизмом расчета. Это свойство возвращает следующие ключевые слова:

  • ALLOW_UTURNS
  • NO_UTURNS
  • ALLOW_DEAD_ENDS_ONLY
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY

String
useHierarchy
(только чтение)

Указывает, используется Иерархия (Hierarchy) в слое Network Analyst Layer. Это свойство возвращает следующие ключевые слова:

  • USE_HIERARCHY
  • NO_HIERARCHY

String
hierarchyAttribute
(только чтение)

Имя атрибута иерархии.

String
hierarchyLevelCount
(только чтение)

Число рангов иерархии, применяемых для определения атрибута иерархии. Максимальное значение равно 3.

Integer
maxValueForHierarchyX
(только чтение)

Заданный атрибут иерархии может иметь значения, которые определяют ранги иерархии. максимальные значения для каждого ранга могут браться из свойства maxValueForHierarchyX, где X указывает на уровень иерархии. Например, максимальное значение первого ранга иерархии (используемого для определения главных дорог) берется из свойства maxValueForHierarchy1.

Свойство hierarchyLevelCount указывает число допустимых свойств maxValueForHierarchy для заданного атрибута иерархии. Например, если свойство hierarchyLevelCount возвращает значение 3, то объект Описание (Describe) будет поддерживать свойства MaxValueForHierarchy1 и MaxValueForHierarchy2.

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
(только чтение)

Возвращает список Python объектов описания, который ссылается на отдельные классы сетевого анализа (например, остановки и маршруты) как на слои.

Данное свойство нельзя использовать у слоя сетевого анализа, хранящегося на диске в виде файла слоя.

List
parameterCount
(только чтение)

Общее число параметров атрибутов указывается для всех сетевых атрибутов для выделенного набора сетевых данных, используемого слоем Network Analyst.

Integer
parameters
(только чтение)

Объект Network Attribute Parameter. Этот объект может применяться, чтобы определять параметры атрибутов, используемые в сетевом анализе.

Object

Пример кода

Пример свойств NetworkAnalystLayer

Отображение свойств для указанного файла слоя 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))
9/10/2013