La herramienta de geoprocesamiento Solucionar problema de generación de rutas para vehículos produce las siguientes clases de entidad y tablas como salida: Paradas, Paradas no asignadas, Rutas e Indicaciones. Las descripciones de las tablas y las clases de entidad de salida, y sus correspondientes atributos de campo, se describen en las subsecciones siguientes.
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 en 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 |
---|---|
ObjectID | Campo de Id. administrado por el sistema. |
Name | El nombre de la ruta. |
Shape | El campo de geometría que indica la forma de la ruta. Utilice el parámetro Rellenar líneas de ruta (populate_route_lines en Python) para elegir si se va a rellenar este campo. La clase de entidad de ruta siempre se crea y se rellena con los datos durante la ejecución de Solucionar problema de generación de rutas para vehículos. Sin embargo, el parámetro Rellenar líneas de ruta (populate_route_lines en Python) le permite elegir si desea generar y almacenar los valores del campo 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. Explorar: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).
|
| Muestra una única restricción infringida por campo. Las descripciones de las infracciones pueden verse en ViolationConstraints.
|
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 al multiplicar los valores de los campos 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 valores de los siguientes campos:
La unidad de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en Python). |
TotalOrderServiceTime | El tiempo de servicio total empleado en todas las órdenes en la ruta. La unidad de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en Python). |
TotalBreakServiceTime | El tiempo de servicio total empleado en todos los descansos en la ruta. La unidad de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en Python). |
TotalTravelTime | El tiempo de viaje total para la ruta. La unidad de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en Python). |
TotalDistance | La distancia de viaje total para la ruta. La unidad para este valor de campo se especifica con el parámetro Unidades de campo de distancia (distance_unitspara 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 de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en Python). |
TotalViolationTime | El tiempo de infracción total en todas las órdenes y descansos en la ruta. La unidad de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en 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 de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en 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 es posible asignarle un nombre diferente cambiando el parámetro Nombre de indicaciones de salida (output_directions_name en Python) antes de resolver. Además, la herramienta Solucionar problema de generación de rutas para vehículos siempre crea la clase de entidad Indicaciones; no obstante, puede utilizar el parámetro Rellenar indicaciones (populate_directions en Python) para determinar si la clase de entidad se va rellenar con las entidades durante la solució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 |
---|---|
ObjectID | Campo de 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. |
Type | Este campo es para usuarios avanzados que desean personalizar el texto de las instrucciones de conducción. La mayoría de los usuarios pueden cubrir sus necesidades haciendo caso omiso de este campo y consultando el campo Text 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 descubrir las enumeraciones a las que hace referencia el valor Type). |
SubItemType | Este campo es para usuarios avanzados que desean personalizar el texto de las instrucciones de conducción. La mayoría de los usuarios pueden cubrir sus necesidades haciendo caso omiso de este campo y consultando el campo Text en su lugar. SubItemType funciona en combinación con Type para crear la indicación de conducción que se muestra en el campo Text. El campo SubItemType especifica si el campo Type se refiere a un valor constante en la enumeración de esriDirectionsManueverType o en la enumeración de esriDirectionsStringType.
|
Text | 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. Para sumar el total de tiempo transcurrido, seleccione los registros con un valor de Type de 1 y súmelos. La unidad de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en 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 realizadas en los depósitos, órdenes y cortes. 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 en Python) antes de resolver.
Los nombres de la tabla de Paradas se muestran y describen a continuación.
Nombre de campo | Descripción |
---|---|
ObjectID | Campo de Id. administrado por el sistema. |
Name | 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 registros o entidades de entrada se especifica mediante 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. Debe interpretar las unidades según la forma en que introdujo el campo Quantities 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 carga 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. Debe interpretar las unidades según la forma en que introdujo el campo Quantities 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, una orden o un descanso. El campo almacena un valor codificado que puede interpretarse de la siguiente manera:
|
RouteName | El nombre de la ruta que hace la parada. |
Sequence | La secuencia relativa en la que la ruta asignada visita la parada. La ordenación por los campos RouteName y Sequence 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 de este valor de campo se especifica mediante el parámetro Unidades de campo de tiempo (time_units en 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 se especifica con el parámetro Unidades de campo de distancia (distance_unitspara 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 la 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 la 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
La tabla 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 concisa como sea posible para minimizar el procesamiento y la transferencia de datos del servidor. No obstante, la salida no es demasiado concisa; 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 las órdenes, vincule la tabla Paradas con el conjunto de entidades Órdenes original que se usó como entrada. Puede seleccionar y unir estos datasets mediante los campos StopType y Name en la tabla Paradas y el campo Name del conjunto de entidades Órdenes. Puede utilizar un enfoque similar para ver en donde se producen las paradas en los depósitos.
Sugerencia:
Solucionar 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, vaya a los resultados de la operación de la que quiera un conjunto de entidades.
- Expanda el resultado apropiado de Solucionar problema de generación de rutas para vehículos.
- Expanda Entradas.
- Haga clic con el botón derecho en el conjunto de entidades que desee ver y elija Agregar a visualización. El conjunto de entidades aparece en el mapa y en la tabla de contenido.
- También puede hacer clic en el botón Lista por fuente de la ventana Tabla de contenido para ver dónde están almacenados los datos.
A diferencia de las órdenes y los depósitos, los descansos no están asociados con un conjunto de entidades de entrada. Debe 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 en puntos.
Tabla UnassignedStops
La tabla Paradas no asignadas enumera las órdenes que no se pudieron visitar por ninguna ruta. Asimismo, establece la razón por la que no se pudo visitar la parada para que pueda 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 no asignadas de salida (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 |
---|---|
ObjectID | Campo de Id. administrado por el sistema. |
StopType | Indica si la parada representa un depósito, una orden o un descanso. El campo almacena un valor codificado que puede interpretarse de la siguiente manera:
|
Name | 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 registros o entidades de entrada se especifica mediante 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. Explorar: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).
|
| Muestra una única restricción infringida por campo. Las descripciones de las infracciones pueden verse en ViolationConstraints.
|
Status | Este campo está restringido por un dominio de valores, que se muestran a continuación (sus valores codificados se muestran entre paréntesis.
|