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

Nivel de licencia:BasicStandardAdvanced

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

Sintaxis

UpdateAnalysisLayerAttributeParameter_na (in_network_analysis_layer, parameterized_attribute, attribute_parameter_name, {attribute_parameter_value})
ParámetroExplicació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.

ArcGIS 10.1 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 texto 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.

SugerenciaSugerencia:

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. Por lo que la representación de un conjunto de tres números se verá como lo siguiente: "5,10, 15 " .

String

Ejemplo de código

Ejemplo 1 de UpdateAnalysisLayerAttributeParameter (ventana de Python)

Ejecuta la herramienta utilizando todos los parámetros.

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

La siguiente secuencia de comandos de Python independiente muestra cómo utilizar la herramienta Actualizar parámetros de atributos de la capa de análisis para encontrar la mejor ruta para camiones que eviten pasos elevados o túneles de bajo margen, eviten carreteras con peaje, y prefieran las rutas designadas de camiones.

# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py
# Description: Find the best route for trucks that avoids low clearance 
#              overpasses or tunnels, avoids toll roads and prefers desginated
#              truck routes. The results are saved to a layer file.
# 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/SanDiego.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayerName = "BestTruckRoute"
    impedanceAttribute = "TravelTime"
    accumulateAttribute = ['Meters']
    tollRoadRestriction = "Avoid Toll Roads"
    preferTruckRouteRestriction = "National STAA Preferred Route"
    parameterName = "Restriction Usage"
    inStops = "Analysis/Customers"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Make a new route layer. Along with the total travel time, we also want to
    #find out the total distance. So we accumulate "Meters" attribute. We will
    #create the route layer with defaultrestrictions and add the additional 
    #restrictions that we want the routes to honor.
    outNALayer = arcpy.na.MakeRouteLayer(inNetworkDataset, outNALayerName,
                                         impedanceAttribute, "", "", "",
                                         accumulateAttribute,"NO_UTURNS")
    #Get the layer object from the result object. The route layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the route layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    stopsLayerName = subLayerNames["Stops"]
    
    #Modify the restriction attributes for the route layer. We don't want to use
    #Driving an Automobile restriction and wan't to use Driving a Truck,
    #Avoid Toll Roads and National STAA Preferred Route restrictions.
    solverProperties = arcpy.na.GetSolverProperties(outNALayer)
    defaultRestrictions = solverProperties.restrictions
    defaultRestrictions.remove("Driving an Automobile")
    defaultRestrictions += ["Driving a Truck", tollRoadRestriction,
                            preferTruckRouteRestriction]
    solverProperties.restrictions = defaultRestrictions
    
    #Load the Delivery locations as stops using default field mappings
    arcpy.na.AddLocations(outNALayer, stopsLayerName, inStops, "", "")
    
    #As we wish avoid toll roads as much as possible and highly prefer the 
    #designated turck routes, we set the appropriate parameter values for the 
    #Restriction Usage parameter for these two restriction attributes.
    arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer, tollRoadRestriction,
                                                   parameterName, "AVOID_HIGH")
    arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer,
                                                   preferTruckRouteRestriction,
                                                   parameterName, "PREFER_HIGH")
    
    #Solve the route layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved route layer as a layer file on disk using relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"RELATIVE")
    
    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)

Entornos

Temas relacionados

Información sobre licencias

ArcGIS for Desktop Basic: Sí
ArcGIS for Desktop Standard: Sí
ArcGIS for Desktop Advanced: Sí
5/10/2014