Crear dataset de red a partir de una plantilla (Network Analyst)

Resumen

Crea un nuevo dataset de red con el esquema incluido en el archivo de la plantilla de entrada (.xml). Todas las clases de entidad y tablas de entrada necesarias para crear el dataset de red deben existir previamente antes de ejecutar esta herramienta.

Uso

  • Esta herramienta permite crear un nuevo dataset de red utilizando el esquema del archivo de plantilla. Utilice la herramienta Crear plantilla a partir de un dataset de red para crear el esquema para el nuevo dataset de red. El nombre del dataset de red de salida se especifica en el archivo de plantilla de entrada.

  • El dataset de red recién creado se deberá construir utilizando la herramienta Construir red.

Parámetros

EtiquetaExplicaciónTipo de datos
Plantilla de dataset de red

El archivo de plantilla (.xml) creado mediante la herramienta Crear plantilla a partir de un dataset de red que contiene el esquema del dataset de red de salida que se va a crear.

File
Dataset de entidades de salida

El dataset de entidades que contiene las clases de entidad que formarán parte del dataset de red que se va a crear. La red se creará en este dataset utilizando el nombre especificado en la plantilla del dataset de red.

Feature Dataset

Salida derivada

EtiquetaExplicaciónTipo de datos
Red de salida

Un nuevo dataset de red con el esquema contenido en el archivo de plantilla.

Dataset de red

arcpy.management.CreateNetworkDatasetFromTemplate(network_dataset_template, output_feature_dataset)
NombreExplicaciónTipo de datos
network_dataset_template

El archivo de plantilla (.xml) creado mediante la herramienta Crear plantilla a partir de un dataset de red que contiene el esquema del dataset de red de salida que se va a crear.

File
output_feature_dataset

El dataset de entidades que contiene las clases de entidad que formarán parte del dataset de red que se va a crear. La red se creará en este dataset utilizando el nombre especificado en la plantilla del dataset de red.

Feature Dataset

Salida derivada

NombreExplicaciónTipo de datos
output_network

Un nuevo dataset de red con el esquema contenido en el archivo de plantilla.

Dataset de red

Muestra de código

Ejemplo 1 de CreateNetworkDatasetFromTemplate (ventana de Python)

Ejecutar la herramienta utilizando todos los parámetros.

new_network_location = "C:/data/NewNetwork.gdb/Transportation"
xml_template = "C:/data/NDTemplate.xml"
arcpy.na.CreateNetworkDatasetFromTemplate(new_network_location, xml_template)
Ejemplo 2 de CreateNetworkDatasetFromTemplate (script independiente)

El siguiente script independiente de Python muestra cómo se puede utilizar la herramienta CreateNetworkDatasetFromTemplate para crear un dataset de red nuevo a partir de una plantilla existente.

# Name: NetworkDatasetTemplate_workflow.py
# Description: Create a new network dataset with the same schema as an existing
#               network dataset
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
import os

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 local variables
    original_network = "C:/data/Region1.gdb/Transportation/Streets_ND"
    new_network_location = "C:/data/Region2.gdb/Transportation"
    xml_template = "C:/data/NDTemplate.xml"
    
    #Create an XML template from the original network dataset
    arcpy.na.CreateTemplateFromNetworkDataset(original_network, xml_template)

    #Create the new network dataset in the output location using the template.
    #The output location must already contain feature classes and tables with 
    #the same names and schema as the original network.
    arcpy.na.CreateNetworkDatasetFromTemplate(xml_template,
                                                new_network_location)
    
    #Build the new network dataset
    arcpy.na.BuildNetwork(os.path.join(new_network_location, "Streets_ND"))

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)))