NetworkDataset

Краткая информация

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

Синтаксис

NetworkDataset (in_network)
ПараметрОписаниеТип данных
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)
ПараметрОписаниеТип данных
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})
ПараметрОписаниеТип данных
edge_properties
[edge_properties,...]

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

  • EIDID ребра.
  • SOURCEID ID исходного класса объектов.
  • SOURCEOID ObjectID объекта исходного класса объектов, из которого получено это ребро сети.
  • FROMPOSITION Расстояние вдоль исходного объекта, с которого начинается это ребро сети. Ребро сети может быть частичным объектом исходного класса объектов.
  • TOPOSITION Расстояние вдоль исходного объекта, на котором заканчивается это ребро сети.
  • DIRECTION Значение Boolean, указывающее, соответствует ли направление ребра направлению оцифровки исходного объекта. Значение True указывает, что направление ребра соответствует направлению оцифровки, а значение False - что направление ребра противоположно направлению оцифровки.
  • FROMJUNCTION EID начального объекта-соединения ребра.
  • TOJUNCTION EID конечного объекта-соединения ребра.
  • ISRESTRICTEDЗначение Boolean, указывающее, ограничено ли ребро для определенного режима передвижения.
  • COSTСтоимость для прохождения ребра для определенного режима передвижения.
  • TIMEСтоимость времени для прохождения ребра для определенного режима передвижения.
  • DISTANCEСтоимость расстояния, понесенная для прохождения ребра для определенного режима передвижения.

Для запроса свойств 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)
ПараметрОписаниеТип данных
source_id

Идентификатор сетевого источника, для которого будет получен путь к каталогу соответствующего класса пространственных объектов.

Integer
Возвращаемое значение
Тип данныхОписание
String

Путь к каталогу класса объектов исходного набора сетевых данных.

junctions ({junction_properties}, {attribute_names}, {time_of_day}, {eids}, {travel_mode})
ПараметрОписаниеТип данных
junction_properties
[junction_properties,...]

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

  • EIDID соединения.
  • SOURCEID ID исходного класса объектов соединения.
  • SOURCEOID ObjectID объекта исходного класса объектов, из которого получено это соединение сети.
  • ISRESTRICTEDЛогическое значение, указывающее, ограничено ли это соединение для указанного режима передвижения.
  • COSTСтоимость прохождения соединения для указанного режима передвижения.
  • TIMEВременная стоимость прохождения соединения для указанного режима передвижения.
  • DISTANCEСтоимость по расстоянию, понесенная при прохождении соединения для указанного режима передвижения.

Чтобы запросить свойства 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})
ПараметрОписаниеТип данных
turn_properties
[turn_properties,...]

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

  • EIDID поворота.
  • SOURCEID ID исходного класса объектов для поворота.
  • SOURCEOID ObjectID объекта исходного класса объектов, из которого получен этот поворот сети.
  • EDGEEIDS Упорядоченный список значений EID ребер сети, участвующих в этом повороте.
  • ISRESTRICTEDБулево значение, показывающее, запрещен ли поворот для выбранного режима передвижения.
  • COSTСтоимость перемещения по повороту для выбранного режима передвижения.
  • TIMEВременная стоимость перемещения по повороту для выбранного режима передвижения.
  • DISTANCEСтоимость расстояния перемещения по повороту для выбранного режима передвижения.

Чтобы запросить свойства 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 для этого поворота.

Пример кода

Пример 1 NetworkDataset

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

# 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]}")
Пример 2 NetworkDataset

Получает значения 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]
Пример 3 NetworkDataset

Получение стоимости и ограниченного статуса для всех ребер сети для режима передвижения 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]}")