Salida de Resolver problema de generación de rutas para vehículos
La herramienta de geoprocesamiento Resolver problema de generación de rutas para vehículos produce las siguientes clases de entidad y tabla como salida: Paradas, Paradas no asignadas, Rutas, Indicaciones. Descripciones de las tablas y las clases de entidad de salida, y sus correspondientes atributos de campo, se describen en las subsecciones a continuación.
Clase de entidad de rutas
La clase de entidad de línea de las rutas representa a los conductores, vehículos, vías de las rutas de un problema de generación de rutas para vehículos. El nombre predeterminado de esta clase de entidad de salida es Rutas, pero puede darle un nombre diferente cambiando el parámetro Nombre de rutas de salida (output_routes_name de Python) antes de resolver.
ArcGIS asigna el mismo sistema de coordenadas que el dataset de red subyacente utiliza para la clase de entidad de rutas. Esto se puede controlar especificando un valor para el entorno de geoprocesamiento del Sistema de coordenadas de salida.
Los nombres de campo de la clase de entidad de rutas se muestran y describen a continuación.
Nombre de campo | Descripción |
---|---|
ID de objeto | Campo ID administrado por el sistema. |
Nombre | El nombre de la ruta. |
Shape | El campo de geometría que indica la forma de la ruta. Utilice el parámetro Rellenar las líneas de ruta (populate_route_lines) de Python para elegir rellenar este campo. La clase de entidad de ruta siempre se crea y se rellena con los datos durante la ejecución de Resolver problema de generación de rutas para vehículos. Sin embargo, el parámetro Rellenar las líneas de ruta (populate_route_lines de Python) le permite elegir si desea generar y almacenar los valores de campo de forma para las entidades de línea. No rellenar los valores de los campos de Forma hace que la operación de resolución sea más rápida y reduce el tamaño de los intercambios de datos del cliente en el servidor, pero a menudo las personas desean visualizar las rutas en un mapa, por lo que rellenar el campo Forma pueden ser necesario. |
ViolatedConstraints | Este campo contiene un resumen de restricciones infringidas y está establecido después una operación de resolución. Si una ruta provoca la infracción de una restricción, se puede asignar al campo una combinación de una o más infracciones mostradas a continuación. Inmersión: El valor codificado que representa la descripción de texto se muestra en la lista siguiente entre paréntesis. Observe que los valores codificados forman parte de una secuencia geométrica que aumenta duplicando el último valor. Esto permite codificar varias combinaciones de infracciones. Por ejemplo, la combinación de Capacidad excedida (2) y Zona de ruta difícil (128) se codifica como 130 (2 +128).
|
OrderCount | El número de órdenes asignadas a la ruta. |
TotalCost | El coste operativo total de la ruta, que es la suma de los siguientes valores de campo:
|
RegularTimeCost | El coste de horas de trabajo normales, excluido cualquier descanso no pagado. |
OvertimeCost | El coste de trabajo en horas extra, excluidos los descansos no pagados. |
DistanceCost | El componente de coste de distancia obtenido multiplicando los valores de campo TotalDistance y CostPerUnitDistance. Este valor de campo se establece en cero si no se especifica un atributo de distancia antes de resolver. |
TotalTime | La duración total de la ruta. Esto incluye los tiempos de viaje, así como los tiempos de servicio y de espera en órdenes, depósitos y descansos. El valor TotalTime es la suma de los siguientes valores de campo:
La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
TotalOrderServiceTime | El tiempo de servicio total empleado en todas las órdenes en la ruta. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
TotalBreakServiceTime | El tiempo de servicio total empleado en todos los descansos en la ruta. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
TotalTravelTime | El tiempo de viaje total para la ruta. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
TotalDistance | La distancia de viaje total para la ruta. La unidad para este valor de campo la especifica el parámetro Unidades de campo de distancia (distance_units para Python). Este valor de campo se establece en cero si no se especifica un atributo de distancia antes de resolver. |
StartTime | La hora de inicio de la ruta. La ruta puede empezar antes del comienzo de su ventana de tiempo de depósito inicial, en cuyo caso hay un tiempo de espera en el depósito inicial. Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día se toma del elemento de red en el que se encuentra el depósito inicial. |
EndTime | El tiempo de finalización de la ruta. La ruta finaliza al completar el servicio en el depósito final. Al utilizar datos de tráfico que cubren varias zonas horarias, la zona horaria para este valor de hora del día se toma del elemento de red en el que se encuentra el depósito final. |
TotalWaitTime | El tiempo de espera total en todas las órdenes, depósitos y descansos en la ruta. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
TotalViolationTime | El tiempo de infracción total en todas las órdenes y descansos en la ruta. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
RenewalCount | Para una ruta con reanudaciones, esto es igual al número de paradas en los depósitos para la renovación de un vehículo, es decir, cargar o descargar un vehículo. |
TotalRenewalServiceTime | Para una ruta con reanudaciones, el tiempo de servicio total empleado en todas las visitas de renovación en la ruta. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
Clase de entidad de indicaciones
Indicaciones es una clase de entidad de línea que representa indicaciones con el detalle de cada giro para que los conductores sigan sus rutas asignadas. El nombre predeterminado de esta clase de entidad de salida es Indicaciones, pero puede darle un nombre diferente cambiando el parámetro Nombre de las indicaciones de salida (output_directions_name para Python) antes de resolver. Asimismo, la herramienta Resolver problema de generación de rutas para vehículos siempre crea la clase de entidad Indicaciones; sin embargo, puede utilizar el parámetro Rellenar indicaciones (populate_directions para Python) para elegir si desea rellenar la clase de entidad con entidades durante la operación de resolución. Por defecto, no se rellena. Si no necesita las indicaciones, puede reducir de forma significativa los tiempos de resolución y la cantidad de datos que se transfieren de los servidores a los clientes.
ArcGIS asigna el mismo sistema de coordenadas que el dataset de red subyacente utiliza para la clase de entidad Indicaciones. Esto se puede controlar especificando un valor para el entorno de geoprocesamiento del Sistema de coordenadas de salida.
Los nombres de campo de la clase de entidad de Indicaciones se muestran y describen a continuación.
Nombre de campo | Descripción |
---|---|
ID de objeto | Campo ID administrado por el sistema. |
Shape | El campo de geometría que indica la forma de las líneas. |
RouteName | El nombre de la ruta a la que se aplica la acción de conducción. |
ArriveTime | La hora del día para iniciar determinada acción de conducción. Si la ruta abarca varios días, la fecha y hora del día se muestran. |
Tipo | Este campo es para usuarios avanzados que desean personalizar el texto de las indicaciones de conducción. La mayoría de los usuarios pueden cubrir sus necesidades haciendo caso omiso de este campo, consultando el campo de texto en su lugar. El tipo se refiere a una constante de una de dos enumeraciones: esriDirectionsManueverType o esriDirectionsStringType. (Consulte la descripción del campo SubItemType para obtener más información sobre la enumeración del valor de tipo). Puede ver una lista de valores constantes en la búsqueda del SDK de su elección para el nombre de la enumeración. |
SubItemType | Este campo es para usuarios avanzados que desean personalizar el texto de las indicaciones de conducción. La mayoría de los usuarios pueden cubrir sus necesidades haciendo caso omiso de este campo, consultando el campo de texto en su lugar. SubItemType funciona en combinación con el tipo para crear la indicación de conducción que se muestra en el campo de texto. El campo SubItemType especifica si el campo Tipo se refiere a un valor constante en la enumeración esriDirectionsManueverType o la enumeración esriDirectionsStringType.
|
Texto | Una descripción de texto de la indicación de conducción. |
ElapsedTime | El tiempo transcurrido desde el momento en que comienza la actual indicación de conducción hasta que empieza la próxima, o hasta que finaliza la ruta de la última indicación de conducción. Algunas indicaciones de conducción incluyen registros adicionales para el tiempo de servicio, el tiempo de infracción, y así sucesivamente. En estos casos, el tiempo transcurrido se replica para cada registro. Si desea sumar el total de tiempo transcurrido, seleccione los registros con un valor de Tipo de 1 y súmelos. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
DriveDistance | La distancia desde donde se produce la actual indicación de conducción a donde ocurre la siguiente, o donde finaliza la ruta para la última indicación de conducción. Este valor es cero para las indicaciones de conducción que ocurren en la misma ubicación en la que comienza la próxima. |
Tabla de paradas
La tabla de Paradas proporciona información acerca de las paradas realizados en los depósitos, órdenes y descansos. La información indica cuales rutas hacen las paradas, las horas de llegada y salida y la secuencia de paradas.
El nombre predeterminado de la tabla de salida es Paradas, pero puede darle un nombre diferente cambiando el parámetro Nombre de Paradas de salida (output_stops_name para Python) antes de resolver.
Los nombres de la tabla de Paradas se muestran y describen a continuación.
Nombre de campo | Descripción |
---|---|
ID de objeto | Campo ID administrado por el sistema. |
Nombre | El nombre de la parada. Esta es una clave externa para el nombre del depósito, orden o descanso en los conjuntos de entidades de entrada y el conjunto de registros. Las entidades o conjunto de registros de entrada se especifican por el campo StopType. |
PickupQuantities | La cantidad de carga o el número de personas a recoger en una parada. Si se entregan varias dimensiones en una parada, cada cantidad se separa por un espacio. Las unidades para este campo no se almacenan. Se debe interpretar las unidades según la forma en que introdujo datos en el campo de cantidades de las rutas de entrada y los campos PickupQuantities y DeliveryQuantities de las órdenes de entrada. (Todos estos campos deben haber sido completados con las mismas unidades y el número de dimensiones). |
DeliveryQuantities | La cantidad de caga o el número de personas a dejar en una parada. Si se entregan varias dimensiones en una parada, cada cantidad se separa por un espacio. Las unidades para este campo no se almacenan. Se debe interpretar las unidades según la forma en que introdujo datos en el campo de cantidades de las rutas de entrada y los campos PickupQuantities y DeliveryQuantities de las órdenes de entrada. (Todos estos campos deben haber sido completados con las mismas unidades y el número de dimensiones). |
StopType | Indica si la parada representa un depósito, orden o descanso. El campo almacena un valor codificado que puede interpretarse de la siguiente manera:
|
RouteName | El nombre de la ruta que hace la parada. |
Secuencia | La secuencia relativa en la que la ruta asignada visita la parada. El ordenamiento por RouteName y los campos de secuencia crea listas ordenadas de paradas para cada ruta. |
FromPreviousTravelTime | El tiempo de viaje transcurrido desde la parada anterior de la ruta a la parada actual. La unidad para este valor de campo la especifica el parámetro Unidades de campo de tiempo (time_units de Python). |
FromPreviousDistance | La distancia a lo largo de la ruta desde la parada anterior hasta la parada actual. La unidad para este valor de campo la especifica el parámetro Unidades de campo de distancia (distance_units para Python). |
ArriveCurbApproach | Indica de qué lado del vehículo está el bordillo al llegar a la parada. |
DepartCurbApproach | Indica de qué lado del vehículo está el bordillo al salir de la parada. |
ArriveTime | La hora del día cuando la ruta llega a la parada. Cuando el dataset de red está configurado con zonas horarias, el valor de la hora del día corresponde a la zona horaria en la que se encuentra la parada; de lo contrario, corresponde a la zona horaria que está configurada en el equipo que se utiliza para resolver el análisis. |
DepartTime | La hora del día cuando la ruta sale de la parada. Cuando el dataset de red está configurado con zonas horarias, el valor de la hora del día corresponde a la zona horaria en la que se encuentra la parada; de lo contrario, corresponde a la zona horaria que está configurada en el equipo que se utiliza para resolver el análisis. |
ArriveTimeUTC | La hora del día cuando la ruta llega a la parada. Este valor se proporciona en Hora universal coordinada (UTC). Este campo es nulo si no se configuran las zonas horarias en el dataset de red. |
DepartTimeUTC | La hora del día cuando la ruta sale de la parada. Este valor se proporciona en Hora universal coordinada (UTC). Este campo es nulo si no se configuran las zonas horarias en el dataset de red. |
WaitTime | El tiempo de espera o relevo en la parada. Por ejemplo, un tiempo de espera se incurre cuando una ruta debe esperar en una orden para que se abra una ventana de tiempo. |
ViolationTime | La cantidad de tiempo transcurrido desde el final de la ventana de tiempo de la parada hasta la llegada del vehículo de ruta. |
Visualizar Paradas
Claramente, la tabla de Paradas no es una clase de entidad, lo que significa que no puede simplemente agregar la tabla a un mapa para ver dónde se producen las paradas. En su lugar, es necesario seguir pasos adicionales para visualizar las paradas en un mapa. (La orientación sobre cómo lograrlo se proporciona a continuación). Este diseño puede parecer innecesariamente difícil si debe mostrar las paradas de una ruta en un mapa; sin embargo, tenga en cuenta que esta herramienta está destinada a crear servicios web VRP. Como tal, la salida está diseñada para ser tan magra como sea posible para minimizar el procesamiento y la transferencia de datos del servidor. No obstante, la salida no es demasiado magra; todavía le proporciona la información esencial necesaria para visualizar las paradas como entidades de punto.
Por ejemplo, para ver dónde se producen las paradas en órdenes, vincular la tabla de Paradas con el conjunto de entidades Órdenes original, que se utiliza como entrada. Puede seleccionar y unir estos datasets mediante los campos StopType y Nombre en la tabla Paradas y el campo Nombre en el conjunto de entidades Órdenes. Puede utilizar un enfoque similar para ver en donde se producen las paradas en los depósitos.
Resolver problema de generación de rutas para vehículos crea varios conjuntos de entidades de entrada, incluidos los conjuntos de entidades de Órdenes y Depósitos. Conforme resuelve la herramienta, estos conjuntos de entidades en la memoria se quitan de ArcMap. Puede agregarlas de nuevo, sin embargo. Para ello, siga estos pasos:
- Abra la ventana Resultados desde el menú Geoprocesamiento .
- En la ventana Resultados, navegue a los resultados de la operación de los que quiere obtener un conjunto de entidades.
- Expanda resultado correspondiente de Resolver problema de generación de rutas para vehículos.
- Expandir Entradas.
- Haga clic derecho en el conjunto de entidades que desea visualizar y elija Agregar a visualización. El conjunto de entidades aparece en el mapa y en la tabla de contenido.
- De manera opcional, haga clic en el botón Lista por origen en la ventana Tabla de contenido para ver donde se almacenan los datos.
A diferencia de las órdenes y los depósitos, los descansos no están asociados con un conjunto de entidades de entrada. Por lo tanto, deberá utilizar un método distinto para visualizarlos. Puede generar las indicaciones en el análisis, seleccionar las líneas que representan entidades y utilizar la herramienta De vértices de entidad a puntos para convertirlas a puntos.
Tabla UnassignedStops
La tabla UnassignedStops enumera las órdenes que no se pudieron visitar por ninguna ruta. Asimismo, establece la razón por la que la parada no pudo ser visitada para que pueda realizar los cambios necesarios para solucionar el problema.
El nombre predeterminado de la tabla de salida es Paradas, pero puede darle un nombre diferente cambiando el parámetro Nombre de Paradas de salida no asignadas (output_unassigned_stops_name) antes de resolver.
Los nombres de la tabla de Paradas se muestran y describen a continuación.
Nombre de campo | Descripción |
---|---|
ID de objeto | Campo ID administrado por el sistema. |
StopType | Indica si la parada representa un depósito, orden o descanso. El campo almacena un valor codificado que puede interpretarse de la siguiente manera:
|
Nombre | El nombre de la parada. Esta es una clave externa para el nombre del depósito, orden o descanso en los conjuntos de entidades de entrada y el conjunto de registros. El conjunto de entidades de entrada o de registro es especificado por el campo StopType. |
ViolatedConstraints | Este campo contiene un resumen de restricciones infringidas y está establecido después una operación de resolución. Si se provoca la infracción de una restricción, se puede asignar al campo una combinación de una o más infracciones mostradas a continuación. Inmersión: El valor codificado que representa la descripción de texto se muestra en la lista siguiente entre paréntesis. Observe que los valores codificados forman parte de una secuencia geométrica que aumenta duplicando el último valor. Esto permite codificar varias combinaciones de infracciones. Por ejemplo, la combinación de Capacidad excedida (2) y Zona de ruta difícil (128) se codifica como 130 (2 +128).
|
Estado | Este campo está restringido por un dominio de valores, que se muestran a continuación (sus valores codificados se muestran entre paréntesis.
|