Сводка
Предоставляет доступ к свойствам набора сетевых данных (только для чтения). Этот класс можно использовать для получения свойств и значений атрибутов ребер, узлов и поворотов набора сетевых данных, а также других свойств самого набора сетевых данных.
Синтаксис
NetworkDataset (in_network)
Parameter | Объяснение | Тип данных |
in_network | Набор сетевых данных, свойства которого вы хотите получить. Аргумент можно задать с помощью пути к каталогу ч набором сетевых данных, объекту слоя набора сетевых данных или строки с именем слоя набора сетевых данных. | String |
Свойства
Владение | Объяснение | Тип данных |
buildTimestamp (только чтение) | Дата и время последнего построения набора сетевых данных. | DateTime |
isBuilt (только чтение) | Указывает, был ли построен набор сетевых данных. Значение False означает, что набор сетевых данных надо перестроить для сохранения изменений. | Boolean |
travelModes (только чтение) | Возвращает словарь объектов режимов передвижения, которые доступны в наборе сетевых данных. Ключи словаря – это имена режимов передвижения, а значения словаря – это объекты режимов передвижения. Это свойство возвращает такие же выходные данные, как и функция GetTravelModes. | Dictionary |
Обзор метода
Метод | Объяснение |
checkIntersectingFeatures (feature_layer, cutoff) | Возвращает значение Boolean, определяющее, является ли количество исходных объектов-ребер из заданного набора сетевых данных, которые пересекаются объектами в заданном векторном слое, меньшим или равным заданной предельной величине. Эта функция применяется для ограничения количества объектов, которые могут быть загружены, как линейные или полигональные барьеры в слой сетевого анализа. Этот метод схож с функцией CheckIntersectingFeatures. |
describe () | Возвращает объект Describe, содержащий дополнительные свойства набора сетевых данных. Это равнозначно использованию команды arcpy.Describe для набора сетевых данных. |
edges ({edge_properties}, {attribute_names}, {time_of_day}, {eids}) | Возвращает итератор ребер набора сетевых данных, который можно использовать для доступа к значениям определенных свойств ребер и сетевых атрибутов в указанное время дня. |
getDataSourceFromSourceID (source_id) | Возвращает путь к каталогу класса объектов исходного набора сетевых данных, идентифицированного по указанному идентификатору источника. |
junctions ({junction_properties}, {attribute_names}, {time_of_day}, {eids}) | Возвращает итератор соединений набора сетевых данных, который можно использовать для доступа к значениям определенных свойств соединений и сетевых атрибутов в указанное время дня. |
turns ({turn_properties}, {attribute_names}, {eids}) | Возвращает итератор элементов поворотов набора сетевых данных, которые используются для доступа к значению определенных свойств поворота и атрибутов сети. |
Методы
checkIntersectingFeatures (feature_layer, cutoff)
Parameter | Объяснение | Тип данных |
feature_layer | Объект Layer с объектами, пересекающими источники ребер сети. Любой набор выделения или запрос на определения в объекте слоя учитывается и может использоваться для указания поднабора объектов. | Layer |
cutoff | Максимальное число пересекающих объектов. | Integer |
Тип данных | Объяснение |
Boolean | Возвращает True, если число пересекающих объектов меньше или равно значению cutoff. Возвращает False, если число пересекающих объектов превышает значение cutoff. |
describe ()
Тип данных | Объяснение |
Object | Объект Describe набора сетевых данных. |
edges ({edge_properties}, {attribute_names}, {time_of_day}, {eids})
Parameter | Объяснение | Тип данных |
edge_properties [edge_properties,...] | Список строк, отображающих извлекаемые свойства ребра сети. Для одного свойства можно использовать строку вместо списка строк. К числу доступных свойств относятся:
| String |
attribute_names [attribute_names,...] | Список имен атрибутов набора сетевых данных, таких как затраты или ограничения, для которых нужно получить значение для каждого элемента сети. Если значение основано на времени, можно задать время дня с помощью параметра time_of_day. Для одного атрибута можно использовать строку вместо списка строк. | String |
time_of_day | Время суток, для которого нужно получить значения атрибутов, зависящих от времени, для этого сетевого элемента. Если значение времени суток не передается, будет возвращено значение, не зависящее от времени. | DateTime |
eids [eids,...] | Список значений EID, включаемых в курсор. Это позволяет возвращать только определенный поднабор элементов сети. Если в этот параметр не передать значение, будут возвращены все элементы сети. | Integer |
Тип данных | Объяснение |
Object | Для итерирования по возвращенным ребрам может использоваться объект NetworkDatasetEdgeCursor. Каждая строка - это кортеж со значениями элементов, заданными в параметрах ребра edge_properties и attribute_names. |
getDataSourceFromSourceID (source_id)
Parameter | Объяснение | Тип данных |
source_id | Идентификатор сетевого источника, для которого будет получен путь к каталогу соответствующего класса пространственных объектов. | Integer |
Тип данных | Объяснение |
String | Путь к каталогу класса объектов исходного набора сетевых данных. |
junctions ({junction_properties}, {attribute_names}, {time_of_day}, {eids})
Parameter | Объяснение | Тип данных |
junction_properties [junction_properties,...] | Список строк, отражающих получаемые свойства соединения сети. Для одного свойства можно использовать строку вместо списка строк. К числу доступных свойств относятся:
| String |
attribute_names [attribute_names,...] | Список имен атрибутов набора сетевых данных, например, стоимостей или ограничений, для которых получается значение для каждого элемента сети. Если значение основано на времени, можно задать время дня с помощью параметра time_of_day. Для одного атрибута можно использовать строку вместо списка строк. | String |
time_of_day | Время дня, когда будут извлечены зависящие от времени значения атрибутов для этого сетевого элемента. Если значение времени суток не передается, будет возвращено значение, не зависящее от времени. | DateTime |
eids [eids,...] | Список значений EID, включаемых в курсор. Это позволяет возвращать только определенный поднабор элементов сети. Если в этот параметр не передать значение, будут возвращены все элементы сети. | Integer |
Тип данных | Объяснение |
Object | Объект NetworkDatasetJunctionCursor, который можно использовать для итерирования возвращенных соединений. Каждая строка - это кортеж со значениями элементов, заданных в параметрах junction_properties и attribute_names для этого соединения. |
turns ({turn_properties}, {attribute_names}, {eids})
Parameter | Объяснение | Тип данных |
turn_properties [turn_properties,...] | Список строк, отражающих получаемые свойства поворота сети. Для одного свойства можно использовать строку вместо списка строк. К числу доступных свойств относятся:
| String |
attribute_names [attribute_names,...] | Список имен атрибутов набора сетевых данных, например, стоимостей или ограничений, для которых получается значение для каждого элемента сети. Для одного атрибута можно использовать строку вместо списка строк. | String |
eids [eids,...] | Список значений EID, которые включаются в курсор. Этот позволяет вам возвратить поднабор сетевых элементов. Если для этого параметра значение не передается, будут возвращены все элементы сети. | Integer |
Тип данных | Объяснение |
Object | Объект NetworkDatasetTurnCursor, который можно использовать для итерирования возвращенных поворотов. Каждая строка - это кортеж со значениями элементов, заданных в параметрах turn_properties и attribute_names для этого поворота. |
Пример кода
Выдает время в пути для каждого ребра сети, по которому не ограничено движение автомобилей.
# Print the travel time for each edge in the network that is not restricted to automobiles
import datetime
import arcpy
arcpy.CheckOutExtension("network")
nds_path = r"E:\TutorialData\Network Analyst\Tutorial\SanDiego.gdb\Transportation\Streets_ND"
# Initialize the NetworkDataset object
nds = arcpy.nax.NetworkDataset(nds_path)
# Print network dataset build information
print(f"Network dataset is built: {nds.isBuilt}")
print(f"Most recent build time: {nds.buildTimestamp}")
# Iterate through all the edges in the network and get the TravelTime cost attribute
# value for a specific time of day. Only print the value if the edge is not restricted
# to automobiles
edges = nds.edges("EID", ["TravelTime", "Driving an Automobile"], datetime.datetime(2019, 4, 19, 8, 0, 0))
for edge in edges:
if not edge[2]:
print(f"TravelTime for EID {edge[0]}: {edge[1]}")
Получает значения ObjectID всех узлов для всех ребер, которые участвуют в поворотах.
# Retrieve the ObjectIDs of all junctions for all edges that participate in turns
import arcpy
arcpy.CheckOutExtension("network")
nds_path = r"E:\TutorialData\Network Analyst\Tutorial\SanDiego.gdb\Transportation\Streets_ND"
# Initialize the NetworkDataset object
nds = arcpy.nax.NetworkDataset(nds_path)
# Iterate through all turns in the network and get the edges that participate
turns = nds.turns(["SOURCEOID", "EDGEEIDS"])
for turn in turns:
# For the edges in the turn, get the from and to junctions
edges = nds.edges(["SOURCEOID", "FROMJUNCTION", "TOJUNCTION"], eids=turn[1])
for edge in edges:
# For the from and to junction, get the SOURCEOID
junctions = nds.junctions("SOURCEOID", eids=[edge[1], edge[2]])
junctionOIDs = [j[0] for j in junctions]