NetworkDataset

Сводка

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

Синтаксис

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,...]

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

  • EIDID ребра.
  • SOURCEID ID исходного класса объектов.
  • SOURCEOID ObjectID объекта исходного класса объектов, из которого получено это ребро сети.
  • FROMPOSITION Расстояние вдоль исходного объекта, с которого начинается это ребро сети. Ребро сети может быть частичным объектом исходного класса объектов.
  • TOPOSITION Расстояние вдоль исходного объекта, на котором заканчивается это ребро сети.
  • DIRECTION Значение Boolean, указывающее, соответствует ли направление ребра направлению оцифровки исходного объекта. Значение True означает, что направление ребра соответствует направлению оцифровки, а значение False - что направление ребра противоположно направлению оцифровки.
  • FROMJUNCTION EID начального объекта-соединения ребра.
  • TOJUNCTION EID конечного объекта-соединения ребра.
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,...]

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

  • EIDID соединения.
  • SOURCEID ID исходного класса объектов соединения.
  • SOURCEOID ObjectID объекта исходного класса объектов, из которого получено это соединение сети.
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,...]

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

  • EIDID поворота.
  • SOURCEID ID исходного класса объектов для поворота.
  • SOURCEOID ObjectID объекта исходного класса объектов, из которого получен этот поворот сети.
  • EDGEEIDS Упорядоченный список значений EID ребер сети, участвующих в этом повороте.
String
attribute_names
[attribute_names,...]

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

String
eids
[eids,...]

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

Integer
Значение отраженного сигнала
Тип данныхОбъяснение
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]