Свойства слоя сетевых данных 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, применяемый слоем. Каждый слой может ссылаться только на один механизм расчета. Это свойство возвращает следующие ключевые слова:
| String |
impedance (только чтение) |
Этот стоимостный сетевой атрибут можно использовать в качестве импеданса в ходе сетевого анализа. | String |
accumulators (только чтение) |
Разделенный точкой с запятой список сетевых атрибутов стоимости, совокупность которых учитывается в ходе данного анализа. | String |
restrictions (только чтение) |
Разделенный точкой с запятой список атрибутов ограничения, применяемых в ходе данного анализа. | String |
ignoreInvalidLocations (только чтение) |
Выражение Boolean, указывающее способ, с помощью которого механизм расчета находит неверные сетевые положения внутри классов Network Analyst. Значение True указывает, что неверные положения игнорируются механизмом расчета. Значение False указывает, что неверные положения рассматриваются механизмом расчета. | Boolean |
uTurns (только чтение) |
Указывает, как развороты на соединениях, которые могут возникать в ходе прохода по сети между остановками, рассматриваются механизмом расчета. Это свойство возвращает следующие ключевые слова:
| String |
useHierarchy (только чтение) |
Указывает, используется Иерархия (Hierarchy) в слое Network Analyst Layer. Это свойство возвращает следующие ключевые слова:
| 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 (только чтение) |
Указывает, как осуществляется поиск объектов в ходе установки положений объектов сетевого анализа. Это свойство возвращает следующие ключевые слова:
| String |
searchTolerance (только чтение) |
Строка, разделенная пробелами, задающая допуск поиска и единицы, используемые при нахождении сетевых положений. | String |
excludeRestrictedElements (только чтение) | Указывает, могут ли объекты сетевого анализа быть расположены только на проходимых участках сети. Это свойство возвращает следующие ключевые слова:
| String |
solverProperties (только чтение) |
Объект Network Analyst Solver. Этот объект может применяться, чтобы определять специфические свойства механизма расчета в слое Network Analyst. | Object |
children (только чтение) |
Возвращает список Python объектов описания, который ссылается на отдельные классы сетевого анализа (например, остановки и маршруты) как на слои. Данное свойство нельзя использовать у слоя сетевого анализа, хранящегося на диске в виде файла слоя. | List |
parameterCount (только чтение) |
Общее число параметров атрибутов указывается для всех сетевых атрибутов для выделенного набора сетевых данных, используемого слоем Network Analyst. | Integer |
parameters (только чтение) |
Объект Network Attribute Parameter. Этот объект может применяться, чтобы определять параметры атрибутов, используемые в сетевом анализе. | Object |
Пример кода
Отображение свойств для указанного файла слоя 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))