Заполнить поля альтернативных ID (Network Analyst)

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

Создает и заполняет дополнительные поля классов пространственных объектов-поворотов, ссылающиеся на ребра в сети по альтернативным ID. Альтернативные ID помогают сохранить целостность объектов-поворотов, если исходные данные ребер редактируются таким образом, что их значения ObjectId изменяются.

Более подробно о разворотах в наборе сетевых данных

Использование

  • Поля Edge#FID в классе пространственных объектов-поворотов обращаются к ObjectID линейного объекта в источнике ребер в сети. Однако ObjectID управляются системой и могут измениться в процессе некоторых операций редактирования. Чтобы убедиться, что объекты-повороты сохраняют корректную ссылку на объекты ребер после такого типа рабочего процесса редактирования, используйте следующий рабочий процесс:

    1. Создайте и заполните поле уникальных ID в каждом классе объектов источника ребер сети. Или используйте поле уникальных ID, включенное в данные от поставщика данных, если оно есть.
    2. Запустите инструмент Заполнить альтернативные поля идентификаторов, чтобы создать и заполнить набор полей альтернативных ID (AltID#) в классах пространственных объектов-поворотов набора сетевых данных. Инструмент заполняет поля альтернативных ID назначенными уникальными значениями идентификаторов из источников ребер, связывая каждый объект-поворот с подходящим источником ребер через альтернативные поля ID в дополнение к полям Edge#FID.
    3. Выполните операции изменения, которые могут изменить ObjectID источников ребер.
    4. Запустите инструмент Обновить по полям альтернативных ID, чтобы обновить поля Edge#FID в классах пространственных объектов-поворотов путем поиска значений ObjectID соответствующих объектов источников ребер с помощью значений полей альтернативных ID.

  • Инструмент создает и заполняет новые поля AltID#, где # - это максимальное число ребер на поворот. Например, для классов пространственных объектов-поворотов, которые поддерживают повороты до трех ребер, инструмент создает и заполняет поля AltID1, AltID2 и AltID3.

Параметры

ПодписьОписаниеТип данных
Входной набор сетевых данных

Набор сетевых данных, объекты-повороты которого должны получить поля альтернативных ID. Поле создается во всех классах пространственных объектов-поворотов, которые добавляются в набор сетевых данных в качестве источника поворотов.

Network Dataset Layer
Имя поля альтернативных ID

Название поля альтернативного идентификатора в источниках объектов ребер набора сетевых данных. Все источники объектов ребер, на которые ссылаются повороты, должны иметь одинаковые имена для поля альтернативного ID.

String

Производные выходные данные

ПодписьОписаниеТип данных
Обновленный входной набор сетевых данных

Обновленный набор сетевых данных.

Network Dataset Layer

arcpy.management.PopulateAlternateIDFields(in_network_dataset, alternate_ID_field_name)
ИмяОписаниеТип данных
in_network_dataset

Набор сетевых данных, объекты-повороты которого должны получить поля альтернативных ID. Поле создается во всех классах пространственных объектов-поворотов, которые добавляются в набор сетевых данных в качестве источника поворотов.

Network Dataset Layer
alternate_ID_field_name

Название поля альтернативного идентификатора в источниках объектов ребер набора сетевых данных. Все источники объектов ребер, на которые ссылаются повороты, должны иметь одинаковые имена для поля альтернативного ID.

String

Производные выходные данные

ИмяОписаниеТип данных
out_network_dataset

Обновленный набор сетевых данных.

Network Dataset Layer

Пример кода

PopulateAlternateIDFields, пример 1 (окно Python)

Выполните инструмент с использованием всех параметров.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.PopulateAlternateIDFields(network, "ID")
PopulateAlternateIDFields, пример 2 (автономный скрипт)

Следующий скрипт Python демонстрирует использование функции PopulateAlternateIDFields в качестве автономного скрипта.

# Name: PopulateAlternateIDFields_ex02.py
# Description: Create and populate the alternate ID fields for all turn sources
#              in the network dataset.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy

#Set environment settings
arcpy.env.workspace = "C:/data/SanFrancisco.gdb/Transportation"

#Set local variables
inNetworkDataset = "Streets_ND"
altIDFieldName = "ID"

#Populate alternate IDs on all turn sources in the network dataset
arcpy.na.PopulateAlternateIDFields(inNetworkDataset,altIDFieldName)

print("Script completed successfully.")