Hacer la capa de la ruta (Network Analyst)
Resumen
Crea una capa de análisis de red de ruta y establece sus propiedades de análisis. Una capa de análisis de ruta es útil para determinar la mejor ruta entre un conjunto de ubicaciones de red en función de un costo de red específico.
Uso
-
Después de crear la capa de análisis con esta herramienta, puede agregarle objetos de análisis de red usando la herramienta Agregar ubicaciones, resolver el análisis usando la herramienta Resolver y guardar los resultados en el disco usando la herramienta Guardar en archivo de capa.
-
Cuando se utiliza esta herramienta en modelos de geoprocesamiento, si el modelo se ejecuta como una herramienta, la capa de análisis de red de salida debe ser un parámetro de modelo. De lo contrario, la capa de salida no se agregará a la tabla de contenido en ArcMap.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_network_dataset |
El dataset de red en el que se realizará el análisis de ruta. | Network Dataset Layer |
out_network_analysis_layer |
Nombre de la capa de análisis de red de ruta que se creará. | String |
impedance_attribute |
El atributo de coste que se usará como impedancia en el análisis. | String |
find_best_order (Opcional) |
| Boolean |
ordering_type (Opcional) |
Especifica el orden de las paradas cuando se usa FIND_BEST_ORDER.
| String |
time_windows (Opcional) |
Specifies if time windows will be used at the stops.
| Boolean |
accumulate_attribute_name [accumulate_attribute_name,...] (Opcional) |
Lista de los atributos de coste que se acumularán durante el análisis. Estos atributos de acumulación se usan específicamente de referencia; el solucionador utiliza los atributos de coste especificados por el parámetro de atributos Impedancia para calcular la ruta. For each cost attribute that is accumulated, a Total_[Impedance] property is added to the routes that are output by the solver. | String |
UTurn_policy (Opcional) |
Restrinja o permita giros en U en cruces que pudieran ocurrir durante el trazado poligonal de la red entre las paradas.
| String |
restriction_attribute_name [restriction_attribute_name,...] (Opcional) |
Lista de atributos de restricción que se aplicarán durante el análisis. | String |
hierarchy (Opcional) |
El parámetro no se utiliza si no se definen atributos de jerarquía en el dataset de red utilizado para realizar el análisis. En tales casos, utilice "#" como el valor de parámetro. | Boolean |
hierarchy_settings (Opcional) |
Legado: Antes de la versión 10, este parámetro le permitía cambiar los rangos de jerarquía para su análisis de los rangos de jerarquía predeterminados establecidos en el dataset de red. En la versión 10, este parámetro ya no es compatible y se debe especificar como una cadena de caracteres vacía. Si desea cambiar los rangos de jerarquía para su análisis, actualice los rangos de jerarquía predeterminados en el dataset de red. | Network Analyst Hierarchy Settings |
output_path_shape (Opcional) |
Especifica el tipo de forma para las entidades de ruta que son la salida del análisis.
Sin importar el tipo de forma de salida elegido, la mejor ruta siempre se determina mediante la impedancia de red, nunca según la distancia euclidiana. Esto significa que sólo las formas de las rutas son diferentes, y no el trazado poligonal subyacente de la red. | String |
start_date_time (Opcional) |
Especifica la fecha y hora de inicio para la ruta. La hora de inicio de una ruta se utiliza generalmente para encontrar rutas en base al atributo de impedancia que varía según el momento del día. Por ejemplo, una hora de inicio a las 09:00 podría usarse para encontrar una ruta que tome en cuenta el tráfico en hora punta. El valor predeterminado para este parámetro son las 8:00. Se puede especificar una fecha y hora como 21/10/05 10:30. Si la ruta abarca varios días, y sólo se especifica la hora de inicio, se utilizará la fecha actual. En lugar de usar una fecha determinada, se puede especificar un día de la semana utilizando las siguientes fechas.
Después de la resolución, se completan las horas de inicio y fin de la ruta en las rutas de salida. Estas horas de inicio y fin también se usan cuando se generan indicaciones. Esta opción es válida sólo cuando se especificó un atributo de coste basado en la hora como el atributo de impedancia. | Date |
Ejemplo de código
Ejecutar la herramienta utilizando sólo los parámetros requeridos
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.MakeRouteLayer_na("Transportation/Streets_ND","WorkRoute","Minutes")
Ejecutar la herramienta utilizando todos los parámetros
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.MakeRouteLayer_na("Transportation/Streets_ND","InspectionRoute","Minutes", "FIND_BEST_ORDER","PRESERVE_BOTH","USE_TIMEWINDOWS", ["Meters","Minutes"], "ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY",["Oneway"], "USE_HIERARCHY","","TRUE_LINES_WITH_MEASURES", "1/1/1900 9:00 AM")
La siguiente secuencia de comandos de Python independiente muestra cómo se puede utilizar la herramienta MakeRouteLayer para encontrar la mejor ruta para visitar las ubicaciones de parada geocodificadas.
# Name: MakeRouteLayer_Workflow.py # Description: Find a best route to visit the stop locations and save the # route to a layer file. The stop locations are geocoded from a # text file containing the addresses. # 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/SanFrancisco.gdb" env.overwriteOutput = True #Set local variables inNetworkDataset = "Transportation/Streets_ND" outNALayer = "BestRoute" impedanceAttribute = "TravelTime" inAddressLocator = "SanFranciscoLocator" inAddressTable = "C:/data/StopAddresses.csv" inAddressFields = "Street Address VISIBLE NONE" fieldMappings = "Name Address #" outStops = "GeocodedStops" outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr" #Create a new Route layer. Once the route layer is created, it can be #referenced using its name. arcpy.MakeRouteLayer_na(inNetworkDataset, outNALayer, impedanceAttribute) #Geocode the stop locations from a csv file containing the addresses. #The Geocode Addresses tool can use a text or csv file as input table #as long as the first line in the file contains the field names. arcpy.GeocodeAddresses_geocoding(inAddressTable, inAddressLocator, inAddressFields, outStops) #Load the geocoded address locations as stop smapping the address field from #geocoded stop features as Name property. arcpy.AddLocations_na(outNALayer,"Stops", outStops, fieldMappings, "") #Solve the route layer, ignore any invalid locations such as those that #can not be geocoded arcpy.Solve_na(outNALayer,"SKIP") #Save the solved route layer as a layer file on disk with 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)