Построить сеть (Network Analyst)

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

Восстановление связности сети и атрибутивной информации набора сетевых данных. Набор сетевых данных необходимо построить заново после внесения изменений в атрибуты или объекты участвующего в наборе класса исходных объектов. После изменения исходного класса объектов, чтобы ускорить процесс компоновки, инструмент создает сетевые связи только в измененных областях. Однако при изменении сетевых атрибутов выполняется перестроение всего экстента набора сетевых данных. Это может очень сильно замедлить работу при больших размерах сетевых данных.

Более подробно о том, при каких изменениях наборов сетевых данных потребуется повторное построение

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

  • Если при построении сети будут выявлены какие-либо ошибки, вы увидите сообщение с предупреждением. Просмотрите и найдите эти ошибки, так как они указывают на потенциальные проблемы, которые могут помешать сети работать должным образом.

    Более подробно об ошибках построении сети

  • Перед построением набора сетевых данных необходимо получить эксклюзивную блокировку схемы для набора данных и используемых исходных классов объектов. Это значит, что используемые классы объектов никто не будет редактировать в процессе построения. Если получить эксклюзивную блокировку схемы не удастся, произойдет сбой.

Параметры

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

Создаваемый набор сетевых данных.

Network Dataset Layer
Обязательное полное построение
(Дополнительный)

Указывает, будет ли построена вся сеть целиком или только части сети в измененных областях.

  • Отмечено – будет построена вся сеть.
  • Не отмечено — только те части сети, которые менялись с момента последнего построения, будут построены заново. Это значение по умолчанию
Boolean

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

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

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

Network Dataset Layer

arcpy.na.BuildNetwork(in_network_dataset, {force_full_build})
ИмяОписаниеТип данных
in_network_dataset

Создаваемый набор сетевых данных.

Network Dataset Layer
force_full_build
(Дополнительный)

Указывает, будет ли построена вся сеть целиком или только части сети в измененных областях.

  • FORCE_FULL_BUILDБудет построена вся сеть.
  • NO_FORCE_FULL_BUILDТолько те части сети, которые менялись с момента последнего построения, будут построены заново. Это значение по умолчанию
Boolean

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

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

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

Network Dataset Layer

Пример кода

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

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

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

В следующем скрипте Python показано, как использовать функцию BuildNetwork в автономном скрипте.

# Name: BuildNetwork_ex02.py
# Description: Build a network dataset.
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env
import sys
import os
import shutil

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    
    #Build the network dataset
    arcpy.BuildNetwork_na(inNetworkDataset)
    
    #If there are any build errors, they are recorded in a BuildErrors.txt file
    #present in the system temp directory. So copy this file to the directory
    #containing this script
    
    #First get the path to the system temp directory
    tempDir = os.environ.get("TEMP")
    if tempDir:
        shutil.copy2(os.path.join(tempDir,"BuildErrors.txt"),sys.path[0])
    
    print("Script completed successfully.")

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print("An error occurred on line %i" % tb.tb_lineno)
    print(str(e))

Информация о лицензиях

  • Basic: Обязательно Network Analyst
  • Standard: Обязательно Network Analyst
  • Advanced: Обязательно Network Analyst

Связанные разделы