Actualizar parámetro de atributos de la capa de análisis (Network Analyst)

Resumen

Actualiza el valor de parámetro de atributos de red para una capa de análisis de red. La herramienta se debe utilizar para actualizar el valor de un parámetro de atributos para una capa de análisis de red antes de ejecutar la herramienta Solucionar. Esto garantiza que la operación de resolución utilizará el valor de parámetro de atributos especificado para producir los resultados adecuados.

Uso

  • Los atributos de red parametrizados se utilizan para modelar el aspecto dinámico del valor de un atributo. Por ejemplo, un túnel con una restricción de altura de 12 pies se puede modelar utilizando un parámetro. En este caso, se debe especificar la altura del vehículo en pies como el valor de parámetro. Esta restricción evaluará si el vehículo es más alto que 12 pies. En forma similar, un puente puede tener un parámetro para especificar una restricción de peso.

  • Esta herramienta sólo se debe usar con capas de análisis de red que tengan atributos de red con parámetros definidos.

  • Esta herramienta se puede utilizar para cambiar varias veces el valor de un parámetro existente antes de resolver una capa de análisis de red.

Parámetros

EtiquetaExplicaciónTipo de datos
Capa de análisis de red de entrada

La capa de análisis de red para la que se actualizará el valor de parámetro de atributos.

Network Analyst Layer
Atributos

El atributo de red cuyo parámetro de atributos se actualizará.

String
Parámetro

El parámetro de atributo de red que se actualizará. Los parámetros de tipo Objeto no se pueden actualizar utilizando esta herramienta.

String
Valor
(Opcional)

El valor que se establecerá para el parámetro de atributos. Puede ser una cadena de caracteres, un número, una fecha o un valor booleano (Verdadero, Falso). Si no se especifica el valor, el valor de los parámetros de atributos se establecerá en Nulo.

Si el parámetro de atributo tiene un tipo de uso de restricción, el valor se puede especificar como una palabra clave de cadena de caracteres o un valor numérico. La palabra clave de la cadena de caracteres o el valor numérico determina si el atributo de restricción prohíbe, evita o prefiere los elementos de red a los que está asociado. Además, el grado para el cual los elementos de red se evitan o prefieren se puede definir al elegir las palabras clave ALTO, MEDIO o BAJO. Se admiten las siguientes palabras clave:

  • PROHIBITED
  • AVOID_HIGH
  • AVOID_MEDIUM
  • AVOID_MEDIUM
  • PREFER_LOW
  • PREFER_MEDIUM
  • PREFER_HIGH

Los valores numéricos que son mayores que 1 hacen que se eviten los elementos restringidos; cuanto mayor sea el número, más elementos se evitarán. Los valores numéricos entre cero y uno hacen que se prefieran los elementos restringidos; cuanto menor sea el número, más elementos restringidos se preferirán. Los números negativos prohíben los elementos restringidos.

Sugerencia:

Si el valor de parámetro incluye un arreglo, separe los elementos en el arreglo con el carácter de separador localizado. Por ejemplo, en los EE.UU., generalmente se utiliza una coma para separar los elementos. De este modo, la representación de un conjunto de tres números se verá del modo siguiente: "5,10,15".

String

Salida derivada

EtiquetaExplicaciónTipo de datos
Capa de análisis de red de entrada actualizada

La capa de análisis de red actualizada.

Capa de Network Analyst

arcpy.management.UpdateAnalysisLayerAttributeParameter(in_network_analysis_layer, parameterized_attribute, attribute_parameter_name, {attribute_parameter_value})
NombreExplicaciónTipo de datos
in_network_analysis_layer

La capa de análisis de red para la que se actualizará el valor de parámetro de atributos.

Network Analyst Layer
parameterized_attribute

El atributo de red cuyo parámetro de atributos se actualizará.

String
attribute_parameter_name

El parámetro de atributo de red que se actualizará. Los parámetros de tipo Objeto no se pueden actualizar utilizando esta herramienta.

String
attribute_parameter_value
(Opcional)

El valor que se establecerá para el parámetro de atributos. Puede ser una cadena de caracteres, un número, una fecha o un valor booleano (Verdadero, Falso). Si no se especifica el valor, el valor de los parámetros de atributos se establecerá en Nulo.

Si el parámetro de atributo tiene un tipo de uso de restricción, el valor se puede especificar como una palabra clave de cadena de caracteres o un valor numérico. La palabra clave de la cadena de caracteres o el valor numérico determina si el atributo de restricción prohíbe, evita o prefiere los elementos de red a los que está asociado. Además, el grado para el cual los elementos de red se evitan o prefieren se puede definir al elegir las palabras clave ALTO, MEDIO o BAJO. Se admiten las siguientes palabras clave:

  • PROHIBITED
  • AVOID_HIGH
  • AVOID_MEDIUM
  • AVOID_MEDIUM
  • PREFER_LOW
  • PREFER_MEDIUM
  • PREFER_HIGH

Los valores numéricos que son mayores que 1 hacen que se eviten los elementos restringidos; cuanto mayor sea el número, más elementos se evitarán. Los valores numéricos entre cero y uno hacen que se prefieran los elementos restringidos; cuanto menor sea el número, más elementos restringidos se preferirán. Los números negativos prohíben los elementos restringidos.

Sugerencia:

Si el valor de parámetro incluye un arreglo, separe los elementos en el arreglo con el carácter de separador localizado. Por ejemplo, en los EE.UU., generalmente se utiliza una coma para separar los elementos. De este modo, la representación de un conjunto de tres números se verá del modo siguiente: "5,10,15".

String

Salida derivada

NombreExplicaciónTipo de datos
output_layer

La capa de análisis de red actualizada.

Capa de Network Analyst

Muestra de código

Ejemplo 1 de UpdateAnalysisLayerAttributeParameter (ventana de Python)

Ejecute la herramienta utilizando todos los parámetros.

arcpy.na.UpdateAnalysisLayerAttributeParameter("Route", "Height Restriction",
                                               "Vehicle Height (feet)", 12.0)
Ejemplo 2 de UpdateAnalysisLayerAttributeParameter (flujo de trabajo)

El siguiente script de Python independiente muestra cómo utilizar la herramienta UpdateAnalysisLayerAttributeParameter para encontrar la mejor ruta para camiones que eviten pasos elevados o túneles de bajo margen y carreteras de peaje y prefieran las rutas designadas para camiones.

# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py
# Description: Use the network dataset's length and height restriction attribute
#               parameters to find a route suitable for transporting a large
#               wind turbine blade. The results are saved to a layer file.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env
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 environment settings
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set local variables
    input_gdb = "C:/Data/SanDiego.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "WindTurbineRoute"
    impedance = "Meters"
    restrictions = ["Driving a Truck", "Height Restriction", "Oneway",
            "Length Restriction", "National STAA and Locally Preferred Routes"]
    seaport = os.path.join(input_gdb, "Analysis", "Port")
    wind_farm = os.path.join(input_gdb, "Analysis", "WindFarm")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Make a new route layer. Use restriction attributes relevant to trucking
    #oversize loads
    result_object = arcpy.na.MakeRouteLayer(network, layer_name, impedance,
                                        restriction_attribute_name=restrictions)

    #Get the layer object from the result object. The route layer can
    #now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    #Set the vehicle height and length attribute parameters to the dimensions of
    #the wind turbine transport truck. If these dimensions exceed the limits
    #associated with a street feature, that street will be restricted, and the
    #resulting route will avoid it.
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Height Restriction", "Vehicle Height (feet)", 13.25)
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Length Restriction", "Vehicle Length (feet)", 80)

    #Load the origin and destination points as Stops in the Route
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    stops_layer_name = sublayer_names["Stops"]
    arcpy.na.AddLocations(layer_object, stops_layer_name, seaport, "", "")
    arcpy.na.AddLocations(layer_object, stops_layer_name, wind_farm, "", "",
                            append="APPEND")

    #Solve the route layer
    arcpy.na.Solve(layer_object)

    #Save the solved route layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

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