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

Sintaxis

MakeRouteLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {find_best_order}, {ordering_type}, {time_windows}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {start_date_time})
ParámetroExplicaciónTipo 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)
  • FIND_BEST_ORDERSe reordenarán las paradas para encontrar la ruta óptima. Esta opción cambia el análisis de ruta de un problema de ruta más corta a un problema del vendedor viajero (TSP).
  • USE_INPUT_ORDERSe visitarán las paradas en el orden de entrada. Esta es la opción predeterminada.
Boolean
ordering_type
(Opcional)

Especifica el orden de las paradas cuando se usa FIND_BEST_ORDER.

  • PRESERVE_BOTHPreserva la primera y la última parada por orden de entrada como la primera y la última parada en la ruta.
  • PRESERVE_FIRSTPreserva la primera parada por orden de entrada como la primera parada en la ruta, pero la última parada puede ser reordenada.
  • PRESERVE_LASTPreserva la última parada por orden de entrada como la última parada en la ruta, pero la primera parada puede ser reordenada.
  • PRESERVE_NONETanto la primera como la última parada pueden ser reordenadas.
String
time_windows
(Opcional)

Specifies if time windows will be used at the stops.

  • USE_TIMEWINDOWSLa ruta tomará en cuenta las ventanas de tiempo en las paradas. Si se llega a una parada antes de su ventana de tiempo, habrá un tiempo de espera hasta que se inicie la ventana de tiempo. Si se llega a una parada después de su ventana de tiempo, se producirá una violación de ventana de tiempo. La violación de la ventana de tiempo total se equilibra con la impedancia mínima al calcular la ruta. Esta opción es válida sólo cuando la impedancia está expresada en unidades de tiempo.
  • NO_TIMEWINDOWSLa ruta ignorará las ventanas de tiempo en las paradas. Esta es la opción predeterminada.
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.

  • ALLOW_UTURNSSe permiten los giros en U en los cruces con cualquier cantidad de bordes adyacentes.
  • NO_UTURNSLos cambios de sentido están prohibidos en todas las confluencias. Tenga en cuenta, sin embargo, que los cambios de sentido seguirán estando permitidos en las ubicaciones de red incluso aunque haya elegido este valor; sin embargo, puede utilizar la propiedad CurbApproach de cada ubicación de red individual para prohibir los cambios de sentido en ella.
  • ALLOW_DEAD_ENDS_ONLYLos giros en U están prohibidos en todos los cruces, excepto los que tienen sólo un borde adyacente (una calle sin salida).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYLos giros en U están prohibidos en los cruces donde se encuentran dos bordes adyacentes pero están permitidos en las intersecciones (todo cruce con tres o más bordes adyacentes) o calles sin salida (cruces con un borde adyacente).
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)
  • USE_HIERARCHY Usa el atributo de jerarquía para el análisis. Utilizar una jerarquía hace que el solucionador prefiera bordes de orden superior en lugar de bordes de orden inferior. Las soluciones jerárquicas son más rápidas y se pueden utilizar para simular la preferencia de un conductor que elige viajar en autopistas por sobre las carreteras locales cuando es posible, incluso si eso significa un viaje más largo. Esta opción es válida sólo si el dataset de red de entrada tiene atributos de jerarquía.
  • NO_HIERARCHYNo usa el atributo de jerarquía para el análisis. No utilizar una jerarquía produce una ruta exacta para el dataset de red.

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)

LegadoLegado:

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.

  • TRUE_LINES_WITH_MEASURESLas rutas de salida tendrán la misma forma que las fuentes de red subyacentes. Además, la salida incluye mediciones de salida para la referencia lineal. Las mediciones aumentan desde la primera parada y registran la impedancia acumulativa para alcanzar una posición determinada.
  • TRUE_LINES_WITHOUT_MEASURESLas rutas de salida tendrán la misma forma que las fuentes de red subyacentes.
  • STRAIGHT_LINESLa forma de la ruta de salida será una línea recta simple entre las paradas.
  • NO_LINESNo se generará ninguna forma para las rutas de salida.

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.

  • Hoy, 30/12/1899
  • Domingo, 31/12/1899
  • Lunes, 1/1/1900
  • Martes, 2/1/1900
  • Miércoles, 3/1/1900
  • Jueves, 4/1/1900
  • Viernes, 5/1/1900
  • Sábado, 6/1/1900
Por ejemplo, para especificar que las rutas deben comenzar a las 17:00 del martes, especifique el valor de parámetro como 2/1/1900 17:00.

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

Ejemplo 1 de MakeRouteLayer (ventana de Python)

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")
Ejemplo 2 de MakeRouteLayer (ventana de Python)

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")
Ejemplo 3 de MakeRouteLayer (flujo de trabajo)

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)

Entornos

Temas relacionados

Información de licencia

ArcView: Sí
ArcEditor: Sí
ArcInfo: Sí

7/11/2012