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.
-
Se pueden crear nuevos parámetros de atributos desde el cuadro de diálogo de propiedades de dataset de red en la ventana Catálogo o en ArcCatalog.
Sintaxis
Parámetro | Explicación | Tipo 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:
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. 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
Ejecuta la herramienta utilizando todos los parámetros.
import arcpy
arcpy.na.UpdateAnalysisLayerAttributeParameter("Route", "Height Restriction",
"Vehicle Height (feet)", 12.0)
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)