Сводка
Предоставляет доступ к свойствам набора сетевых данных (только для чтения). Этот класс можно использовать для получения свойств и значений атрибутов ребер, узлов и поворотов набора сетевых данных, а также других свойств самого набора сетевых данных.
Синтаксис
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}, {travel_mode}) | Возвращает итератор ребер набора сетевых данных, который можно использовать для доступа к значениям определенных свойств ребер и сетевых атрибутов в указанное время дня. |
getDataSourceFromSourceID (source_id) | Возвращает путь к каталогу класса объектов исходного набора сетевых данных, идентифицированного по указанному идентификатору источника. |
junctions ({junction_properties}, {attribute_names}, {time_of_day}, {eids}, {travel_mode}) | Возвращает итератор соединений набора сетевых данных, который можно использовать для доступа к значениям определенных свойств соединений и сетевых атрибутов в указанное время дня. |
turns ({turn_properties}, {attribute_names}, {eids}, {travel_mode}) | Возвращает итератор элементов поворотов набора сетевых данных, которые используются для доступа к значению определенных свойств поворота и атрибутов сети. |
Методы
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}, {travel_mode})
Parameter | Объяснение | Тип данных |
edge_properties [edge_properties,...] | Список строк, отображающих извлекаемые свойства ребра сети. Для одного свойства можно использовать строку вместо списка строк. К числу доступных свойств относятся:
Для запроса свойств ISRESTRICTED, COST, TIME и DISTANCE необходимо указать значение для параметра travel_mode. | String |
attribute_names [attribute_names,...] | Список имен атрибутов набора сетевых данных, например, стоимостей или ограничений, для которых получается значение для каждого элемента сети. Если значение основано на времени, можно задать время дня с помощью параметра time_of_day. Для одного атрибута можно использовать строку вместо списка строк. | String |
time_of_day | Время суток, для которого нужно получить значения атрибутов, зависящих от времени, для этого сетевого элемента. Если значение времени суток не передается, будет возвращено значение, не зависящее от времени. | DateTime |
eids [eids,...] | Список значений EID, включаемых в курсор. Это позволяет возвращать только определенный поднабор элементов сети. Если в этот параметр не передать значение, будут возвращены все элементы сети. | Integer |
travel_mode | Режим передвижения, применяемый при запросе свойств ребра и значений атрибутов. Настройки режима передвижения могут повлиять на возвращенные свойства и значения атрибутов, в особенности если режим передвижения использует не значения по умолчанию для параметров атрибутов. Если режим передвижения задан, все значения, запрошенные из attribute_names, используют значения параметра атрибута по умолчанию, и свойства ISRESTRICTED, COST, TIME и DISTANCE недоступны. Режим передвижения должен быть указан как объект TravelMode. Можно использовать один и сетевых режимов передвижения, полученный при помощи свойства travelModes объекта NetworkDataset, или пользовательский объект TravelMode. | Object |
Тип данных | Объяснение |
Object | Для итерирования по возвращенным ребрам может использоваться объект NetworkDatasetEdgeCursor. Каждая строка - это кортеж со значениями элементов, заданными в параметрах ребра edge_properties и attribute_names. |
getDataSourceFromSourceID (source_id)
Parameter | Объяснение | Тип данных |
source_id | Идентификатор сетевого источника, для которого будет получен путь к каталогу соответствующего класса пространственных объектов. | Integer |
Тип данных | Объяснение |
String | Путь к каталогу класса объектов исходного набора сетевых данных. |
junctions ({junction_properties}, {attribute_names}, {time_of_day}, {eids}, {travel_mode})
Parameter | Объяснение | Тип данных |
junction_properties [junction_properties,...] | Список строк, отражающих получаемые свойства соединения сети. Для одного свойства можно использовать строку вместо списка строк. К числу доступных свойств относятся:
Чтобы запросить свойства ISRESTRICTED, COST, TIME и DISTANCE, необходимо указать значение для параметра travel_mode. | String |
attribute_names [attribute_names,...] | Список имен атрибутов набора сетевых данных, например, стоимостей или ограничений, для которых получается значение для каждого элемента сети. Если значение основано на времени, можно задать время дня с помощью параметра time_of_day. Для одного атрибута можно использовать строку вместо списка строк. | String |
time_of_day | Время дня, когда будут извлечены зависящие от времени значения атрибутов для этого сетевого элемента. Если значение времени суток не передается, будет возвращено значение, не зависящее от времени. | DateTime |
eids [eids,...] | Список значений EID, включаемых в курсор. Это позволяет возвращать только определенный поднабор элементов сети. Если в этот параметр не передать значение, будут возвращены все элементы сети. | Integer |
travel_mode | Режим передвижения, который применяется при запросе свойств соединения и значений атрибутов. Настройки режима передвижения могут влиять на возвращаемые значения свойств и атрибутов, особенно если этот режим передвижения использует значения, отличные от заданных по умолчанию, для каких бы параметров атрибутов они ни использовались. Если режим передвижения не задан, все запрашиваемые из attribute_names значения будут использовать значения параметров атрибутов по умолчанию, а свойства ISRESTRICTED, COST, TIME и DISTANCE недоступны. Режим передвижения должен указываться как объект TravelMode. Вы можете использовать один из режимов передвижения этой сети, полученный с помощью свойства travelModes объекта NetworkDataset или использовать пользовательский объект TravelMode. | Object |
Тип данных | Объяснение |
Object | Объект NetworkDatasetJunctionCursor, который можно использовать для итерирования возвращенных соединений. Каждая строка - это кортеж со значениями элементов, заданных в параметрах junction_properties и attribute_names для этого соединения. |
turns ({turn_properties}, {attribute_names}, {eids}, {travel_mode})
Parameter | Объяснение | Тип данных |
turn_properties [turn_properties,...] | Список строк, отражающих получаемые свойства поворота сети. Для одного свойства можно использовать строку вместо списка строк. К числу доступных свойств относятся:
Чтобы запросить свойства ISRESTRICTED, COST, TIME и DISTANCE, необходимо задать значение для параметра travel_mode. | String |
attribute_names [attribute_names,...] | Список имен атрибутов набора сетевых данных, например, стоимостей или ограничений, для которых получается значение для каждого элемента сети. Для одного атрибута можно использовать строку вместо списка строк. | String |
eids [eids,...] | Список значений EID, включаемых в курсор. Это позволяет возвращать только определенный поднабор элементов сети. Если в этот параметр не передать значение, будут возвращены все элементы сети. | Integer |
travel_mode | Режим передвижения, применяемый при запросе свойств поворота и атрибутивных значений. Настройки режима передвижения могут влиять на возвращаемое свойство и значения атрибутов, особенно если в режиме передвижения для любых параметров атрибутов используются значения, отличающиеся от заданных по умолчанию. Если режим передвижения не задан, все значения, запрошенные из attribute_names, используют значения атрибутивных параметров по умолчанию, а свойства ISRESTRICTED, COST, TIME и DISTANCE не доступны. Режим передвижения должен быть задан как объект TravelMode. Вы можете использовать один из режимов передвижения по сети, полученный из свойства travelModes объекта NetworkDataset, или использовать собственный объект TravelMode. | Object |
Тип данных | Объяснение |
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]
Получение стоимости и ограниченного статуса для всех ребер сети для режима передвижения Walking Time
# Retrieve the cost and restricted status for all network edges for the Walking Time travel mode
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 the edges in the network and print the cost to traverse it with the Walking Time travel mode and
# whether or not the edge is restricted.
for edge in nds.edges(["EID", "COST", "ISRESTRICTED"], travel_mode=nds.travelModes["Walking Time"]):
print(f"EID {edge[0]} -- COST: {edge[1]}; RESTRICTED: {edge[2]}")