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

Сводка

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

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

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

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

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

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

Синтаксис

arcpy.na.BuildNetwork(in_network_dataset)
ParameterОбъяснениеТип данных
in_network_dataset

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

Network Dataset Layer

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

NameОбъяснениеТип данных
out_network_dataset

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

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

Пример кода

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

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

network = "C:/Data/Paris.gdb"
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

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