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. | 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. Sugerencia: si el valor de parámetro incluye un **arreglo, separe los elementos en el **arreglo con el carácter con que actualmente esté configurado el separador de caracteres 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 "5,10,15". | String |
Ejemplo de código
Ejecutar la herramienta utilizando todos los parámetros
import arcpy arcpy.UpdateAnalysisLayerAttributeParameter_na("Route","HeightRestriction", "MaxHeight",12.0)
La siguiente secuencia de comandos de Python independiente muestra cómo se puede utilizar la herramienta UpdateAnalysisLayerAttributeParameter para encontrar la mejor ruta que evite pasos elevados o túneles de bajo margen para ciertos vehículos.
# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py # Description: Find the best route that avoids low clearance overpasses or # tunnels for certain vehicles and save results 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/RhodeIsland.gdb" env.overwriteOutput = True #Set local variables inNetworkDataset = "Transportation/Streets_ND" outNALayer = "BestTruckRoute" impedanceAttribute = "TravelTime" accumulateAttribute = ['Length'] parameterizedAttribute = "HeightRestriction" restrictions = ["Oneway", parameterizedAttribute, "TurnRestriction"] searchTolerance = "2000 Meters" parameterName = "VehicleHeight" truckHeight = 15 inStops = "Analysis/DeliveryLocations" outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr" #Make a new route layer. Along with the total travel time, we also want to #find out the total distance. So we accumulate "Length" attribute. We want #to obey the oneway, turn restrictions and since we are routing trucks that #need a particular clearence, we want to use Height restriction. arcpy.MakeRouteLayer_na(inNetworkDataset, outNALayer, impedanceAttribute, "", "", "", accumulateAttribute,"NO_UTURNS", restrictions) #Load the Delivery locations as stops using default field map arcpy.AddLocations_na(outNALayer, "Stops", inStops, "", searchTolerance) #As we wish to route trucks which require a clearance of 15 meters, #we will set the VehicleHeight parameter on HeightRestriction attribute. #This would mean that all streets which have a clearance of less than 15 #meters will be restricted. arcpy.UpdateAnalysisLayerAttributeParameter_na(outNALayer, parameterizedAttribute, parameterName, truckHeight) #Solve the route layer arcpy.Solve_na(outNALayer) #Save the solved route layer as a layer file on disk using relative paths arcpy.SaveToLayerFile_management(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)