Слияние сети (Dissolve Network) (Network Analyst)
Краткая информация
Создает новый набор сетевых данных, уменьшая количество линейных объектов до минимального необходимого для корректного моделирования входного набора сетевых данных. Получаемый на выходе более эффективный набор сетевых данных требует меньше времени для выполнения анализа, отрисовки результатов и создания путевых листов. Инструмент создает набор сетевых данных и классы объектов источников; при этом входной набор сетевых данных с его объектами источников остаются неизменными.
Более подробно о том, как работает инструмент Слияние сети (Dissolve Network)Рисунок
Использование
-
Этот инструмент не создает готовую сеть. Для создания нового набора сетевых данных перед выполнение анализа используйте инструмент Построить сеть (Build Network).
-
Набор сетевых данных и классы объектов, созданные в выходной рабочей области базы геоданных имеют одни и те же имена набора классов объектов, набора сетевых данных и класс объектов. Инструмент не запустится, если в рабочей области базы геоданных уже существует хоть один набор данных с таким именем.
-
В выходной класс линейных объектов переносятся только те поля из входных классов объектов, которые используются в наборе сетевых данных. Примеры полей:
- Поля высоты объектов сети
- Поля, используемые в функциях вычисления атрибутов сетей (длина, время, ограничения движения, иерархия и пр.)
- Поля, используемые при создании путевых листов (названия улиц, дорожные указательные знаки и пр.)
Синтаксис
Параметр | Объяснение | Тип данных |
in_network_dataset |
Набор сетевых данных, в котором будет произведено слияние ребер. Входной набор сетевых данных должен храниться в файловой или персональной базе геоданных с одним источником ребер. Допускается наличие любого количества источников соединений и источников поворотов. Источник ребер должен содержать следующие объекты:
Входной набор сетевых данных должен быть построен до использования этого инструмента. | Network Dataset Layer |
out_workspace_location |
Рабочая область базы геоданных, в которой будет создан набор сетевых данных с объединенными ребрами. Рабочая область должна представлять базу геоданных ArcGIS 10 или более поздней версии, и это должна быть другая база геоданных, а не та же база геоданных, в которой хранится входной набор сетевых данных. | Workspace |
Пример кода
Выполните инструмент с использованием всех параметров.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.DissolveNetwork("Transportation/Streets_ND","C:/Data/DissolvedNet.gdb")
В следующем автономном скрипте Python показано, как с помощью инструмента DissolveNetwork можно создавать новый набор сетевых данных с меньшим количеством линейных объектов ребер.
# Name: DissolveNetwork_Workflow.py
# Description: Creates a new network dataset with reduced number of line
# features in a new file geodatabase workspace. After dissolving,
# the network dataset is also built so that it can be used to
# perform network analyses.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb"
env.overwriteOutput = True
#Set local variables
inNetworkDataset = "Transportation/Streets_ND"
outFolder = "C:/data/output"
outputGDBName = "SanFranciscoDissolved"
#Create a new file geodatabase that will contain the dissolved network
result = arcpy.management.CreateFileGDB(outFolder, outputGDBName)
#Get the path to the newly created file gdb from the result object.
outputGDB = result.getOutput(0)
#Dissolve the network dataset
result = arcpy.na.DissolveNetwork(inNetworkDataset, outputGDB)
#Get the path to the dissolved network dataset from the result object
dissolvedNetworkDataset = result.getOutput(0)
#The dissolved network dataset is unbuilt. So build the network dataset
arcpy.na.BuildNetwork(dissolvedNetworkDataset)
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 occured on line %i" % tb.tb_lineno
print str(e)