Ausgabe über "Vehicle Routing Problem-Analyse berechnen"
Das Geoverarbeitungswerkzeug Vehicle Routing Problem-Analyse berechnen erzeugt die folgende Tabelle und folgende Feature-Classes als Ausgabe: Stopps, nicht zugewiesene Stopps, Routen, Beschreibungen. Beschreibungen zu Ausgabe-Tabellen und Feature-Classes, und ihre entsprechenden Feldattribute, werden in den Unterabschnitten unten beschrieben.
Routes-Feature-Class
Die Routes line-Feature-Class repräsentiert die Fahrer, Fahrzeuge und Fahrzeugroutenpfade eines Vehicle Routing Problem. Der Standardname dieser Ausgabe-Feature-Class ist Routes. Sie können dies jedoch durch Ändern des Parameters Ausgaberoutenname vor der Berechnung ändern (output_routes_name für Python).
ArcGIS weist dasselbe Koordinatensystem zu, das das zugrunde liegende Netzwerk-Dataset für die Routes-Feature-Class verwendet. Dies kann durch die Angabe eines Wertes für die Ausgabe-Koordinatensystem-Geoverarbeitungsumgebung gesteuert werden.
Die Feldnamen der Routes-Feature-Class werden unten aufgelistet und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Name | Der Name der Route. |
Form | Das Geometriefeld, das das Shape der Route angibt. Wählen Sie über den Parameter Routenlinien füllen (populate_route_lines für Python), ob dieses Feld gefüllt werden soll. Die Routes-Feature-Class wird während der Ausführung von Vehicle Routing Problem-Analyse berechnen immer erstellt und mit Daten gefüllt. Der Parameter Routenlinien füllen (populate_route_lines für Python) ermöglicht Ihnen jedoch zu wählen, ob für die Linien-Features Shape-Feldwerte erstellt und gespeichert werden sollen. Wenn Shape-Feldwerte nicht gefüllt werden, beschleunigt dies die Berechnung und reduziert die Größe des Server-Client-Datenaustauschs. Routen sollen jedoch oft auf einer Karte visualisiert werden, sodass ein Füllen des Shape-Feldes evtl. erforderlich ist. |
ViolatedConstraints | Dieses Feld enthält eine Zusammenfassung von Beschränkungsverletzungen. Es wird nach einem Berechnungsvorgang festgelegt. Wenn eine Route zur Verletzung einer Einschränkung führt, kann dem Feld eine Kombination aus den unten aufgeführten Verletzungen zugewiesen werden: Dive-in: Der codierte Wert, der die Textbeschreibung darstellt, wird unten in der Liste in Klammern dargestellt. Beachten Sie, dass die codierten Werte Teil einer geometrischen Sequenz sind, die zunimmt, da der letzte Wert verdoppelt wird. Auf diese Weise können verschiedene Kombinationen von Regel-Verletzungen codiert werden. Zum Beispiel wird die Kombination von "Capacities überschritten" (2) und "Harte Routenzone" (128) als 130 (2 +128) codiert.
|
OrderCount | Die Anzahl von Aufträgen, die der Route zugewiesen sind. |
TotalCost | Die gesamten Betriebskosten der Route, wobei es sich um die Summe der folgenden Feldwerte handelt:
|
RegularTimeCost | Die Kosten der regulären Arbeitszeit ohne unbezahlte Pausen. |
OvertimeCost | Die Kosten für Überstunden ohne unbezahlte Pausen. |
DistanceCost | Die Entfernungskosten-Komponente, die durch Multiplizieren der Werte für die Felder "TotalDistance" und "CostPerUnitDistance" berechnet wird. Dieser Feldwert wird auf Null eingestellt, wenn vor der Berechnung kein Entfernungsattribut angegeben wird. |
TotalTime | Die Gesamtroutendauer. Diese umfasst Fahrzeiten sowie Durchführungs- und Wartezeiten bei Aufträgen, Depots und Pausen. Der Wert unter "TotalTime" ist die Summe der folgenden Feldwerte:
Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
TotalOrderServiceTime | Die Gesamtdurchführungszeit für alle Aufträge der Route. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
TotalBreakServiceTime | Die Gesamtdurchführungszeit für alle Pausenzeiten der Route. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
TotalTravelTime | Die Gesamtfahrzeit für die Route. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
TotalDistance | Die Gesamtreisestrecke für die Route. Die Einheit für diesen Feldwert wird durch den Parameter "Uhrzeitfeldeinheiten" (distance_units für Python) angegeben. Dieser Feldwert wird auf Null eingestellt, wenn vor der Berechnung kein Entfernungsattribut angegeben wird. |
StartTime | Die Anfangszeit für die Route. Die Route kann vor Beginn des Zeitfensters für das Startdepot beginnen. In diesem Fall ist beim Startdepot eine Wartezeit vorhanden. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Tageszeitwert von dem Netzwerkelement übernommen, auf dem sich das Startdepot befindet. |
EndTime | Die Endzeit für die Route. Die Route endet bei Abschluss des Einsatzes am Enddepot. Wenn Verkehrsdaten verwendet werden, die mehrere Zeitzonen umfassen, wird die Zeitzone für diesen Tageszeitwert von dem Netzwerkelement übernommen, auf dem sich das Enddepot befindet. |
TotalWaitTime | Die Gesamtwartezeit für alle Aufträge, Depots und Pausen der Route. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
TotalViolationTime | Der Gesamtzeitverstoß für alle Aufträge und Pausen der Route. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
RenewalCount | Für eine Route mit Lagern zum Be-/Entladen entspricht dies der Anzahl der Stopps bei Depots zum Be- und Entladen eines Fahrzeugs. |
TotalRenewalServiceTime | Bei einer Route mit Lagern zum Be-/Entladen ist dies die Gesamtdurchführungszeit für alle Stopps zum Be- und Entladen auf der Route. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
Directions-Feature-Class
Directions ist eine Line-Feature-Class, die Wegbeschreibungen repräsentiert, damit Fahrer ihre zugewiesenen Routen einhalten. Der Standardname dieser Ausgabe-Feature-Class ist Directions. Sie können dies jedoch durch Ändern des Parameters "Ausgabe-Beschreibungsname" vor der Berechnung ändern (output_directions_name für Python). Ferner wird mit dem Werkzeug "Vehicle Routing Problem-Analyse berechnen" immer die Directions-Feature-Class erstellt. Sie können jedoch mit dem Parameter "Beschreibungen füllen" (populate_directions für Python) wählen, ob die Feature-Class bei der Berechnung mit Features gefüllt wird. Standardmäßig wird sie nicht gefüllt. Wenn Sie keine Beschreibungen benötigen, können Sie die Berechnungszeiten und die Menge an Daten, die von Servern zu Clients übertragen werden, erheblich reduzieren.
ArcGIS weist der Directions-Feature-Class dasselbe Koordinatensystem zu, das das zugrunde liegende Netzwerk-Dataset verwendet. Dies kann durch die Angabe eines Wertes für die Ausgabe-Koordinatensystem-Geoverarbeitungsumgebung gesteuert werden.
Die Feldnamen der Directions-Feature-Class werden unten aufgelistet und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Form | Das Geometriefeld, das das Shape der Linien angibt. |
RouteName | Der Name der Route, auf die die Fahraktion angewendet wird. |
ArriveTime | Uhrzeit zur Initiierung der angegebenen Fahraktion. Wenn sich die Route über mehrere Tage erstreckt, werden Datum und Uhrzeit angezeigt. |
Typ | Dieses Feld ist für fortgeschrittene Benutzer gedacht, die den Wegbeschreibungstext anpassen möchten. Die meisten Benutzer können ihre Anforderungen erfüllen, indem sie dieses Feld ignorieren und sich stattdessen auf das Feld "Text" beziehen. "Type" bezieht sich auf eine Konstante in einer von zwei Aufzählungen: esriDirectionsManueverType oder esriDirectionsStringType. (In der SubItemType-Feldbeschreibung erfahren Sie, auf welche Aufzählung sich der Type-Wert bezieht.) Sie können eine Liste konstanter Werte anzeigen, indem Sie für den Aufzählungsnamen nach der SDK Ihrer Wahl suchen. |
SubItemType | Dieses Feld ist für fortgeschrittene Benutzer gedacht, die den Wegbeschreibungstext anpassen möchten. Die meisten Benutzer können ihre Anforderungen erfüllen, indem sie dieses Feld ignorieren und sich stattdessen auf das Feld "Text" beziehen. "SubItemType" funktioniert in Kombination mit "Type", um die Wegbeschreibung zu erstellen, die im Feld "Text" angezeigt wird. Das Feld "SubItemType" gibt an, ob sich das Feld "Type" auf einen konstanten Wert in der Aufzählung "esriDirectionsManueverType" oder "esriDirectionsStringType" bezieht.
|
Text | Eine Textbeschreibung der Wegbeschreibung. |
ElapsedTime | Die zwischen dem Anfang der aktuellen Wegbeschreibung und dem Anfang der nächsten Wegbeschreibung oder dem Ende der Route für die letzte Wegbeschreibung verstrichene Zeit. Einige Wegbeschreibungen umfassen zusätzliche Datensätze für Durchführungszeit, Zeitverstoß usw. In diesen Fällen wird die verstrichene Zeit für jeden Datensatz repliziert. Wenn Sie die verstrichene Zeit summieren möchten, wählen Sie diese Datensätze mit einem Type-Wert von 1 aus, und summieren Sie sie. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
DriveDistance | Die Entfernung zwischen der aktuellen Wegbeschreibung und der nächsten Wegbeschreibung oder dem Ende der Route für die letzte Wegbeschreibung. Dieser Wert ist für Wegbeschreibungen Null, die an derselben Position auftreten, an der die nächste beginnt. |
Tabelle "Stopps"
Die Tabelle "Stopps" enthält Informationen zu Stopps bei Depots, Aufträgen und Unterbrechungen. Die Informationen umfassen Routen mit Stopps, Ankunfts- und Abfahrtszeiten sowie die Stoppsequenz.
Der Standardname dieser Ausgabe-Tabelle ist Stops. Sie können dies jedoch durch Ändern des Parameters "Ausgabestoppsname" vor der Berechnung ändern (output_stops_name für Python).
Die Feldnamen der Tabelle "Stops" werden unten aufgelistet und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
Name | Der Name des Stopps. Dies ist ein Fremdschlüssel für den Namen des Depots, des Auftrags oder der Unterbrechung in den Eingabe-Feature-Sets und im Record Set. Das Eingabe-Feature oder Record Set wird durch das Feld "StopType" angegeben. |
PickupQuantities | Die Frachtmenge oder Anzahl an Personen, die an einem Stopp abgeholt wird/werden. Wenn mehrere Bemaßungen an einem Stopp geliefert werden, wird jede Menge durch ein Leerzeichen getrennt. Die Einheiten für dieses Feld werden nicht gespeichert. Sie sollten die Einheiten gemäß der Eingabe im Feld "Quantities" der Eingaberouten und in den Feldern "PickupQuantities" und "DeliveryQuantities" der Eingabeaufträge interpretieren. (Alle diese Felder sollten dieselben Einheiten und dieselbe Anzahl von Bemaßungen aufweisen.) |
DeliveryQuantities | Die Frachtmenge oder Anzahl an Personen, die an einem Stopp abgeliefert wird/werden. Wenn mehrere Bemaßungen an einem Stopp geliefert werden, wird jede Menge durch ein Leerzeichen getrennt. Die Einheiten für dieses Feld werden nicht gespeichert. Sie sollten die Einheiten gemäß der Eingabe im Feld "Quantities" der Eingaberouten und in den Feldern "PickupQuantities" und "DeliveryQuantities" der Eingabeaufträge interpretieren. (Alle diese Felder sollten dieselben Einheiten und dieselbe Anzahl von Bemaßungen aufweisen.) |
StopType | Gibt an, ob der Stopp ein Depot, einen Auftrag oder eine Unterbrechung repräsentiert. Das Feld speichert einen kodierten Wert, der wie folgt interpretiert werden kann:
|
RouteName | Der Name der Route mit dem Stopp. |
Sequence | Die relative Sequenz, in der die zugewiesene Route den Stopp durchführt. Durch die Sortierung nach den Feldern "RouteName" und "Sequence" wird eine sortierte Liste mit Stopps für jede Route erstellt. |
FromPreviousTravelTime | Die verstrichene Fahrzeit vom vorherigen Stopp der Route bis zum aktuellen Stopp. Die Einheit für diesen Feldwert wird durch den Parameter Uhrzeitfeldeinheiten angegeben (time_units für Python). |
FromPreviousDistance | Die Entfernung vom vorherigen Stopp der Route bis zum aktuellen Stopp. Die Einheit für diesen Feldwert wird durch den Parameter "Uhrzeitfeldeinheiten" (distance_units für Python) angegeben. |
ArriveCurbApproach | Gibt an, auf welcher Seite des Fahrzeugs sich die Bordsteinkante befindet, wenn das Fahrzeug beim Stopp ankommt. |
DepartCurbApproach | Gibt an, auf welcher Seite des Fahrzeugs sich die Bordsteinkante befindet, wenn das Fahrzeug beim Stopp abfährt. |
ArriveTime | Uhrzeit, zu der das Fahrzeug beim Routenstopp ankommt. Wenn das Netzwerk-Dataset mit Zeitzonen konfiguriert ist, entspricht der Uhrzeitwert der Zeitzone, in der sich der Stopp befindet. Andernfalls entspricht er der Zeitzone, die auf dem für die Berechnung der Analyse verwendeten Computer konfiguriert ist. |
DepartTime | Uhrzeit, zu der das Fahrzeug vom Routenstopp abfährt. Wenn das Netzwerk-Dataset mit Zeitzonen konfiguriert ist, entspricht der Uhrzeitwert der Zeitzone, in der sich der Stopp befindet. Andernfalls entspricht er der Zeitzone, die auf dem für die Berechnung der Analyse verwendeten Computer konfiguriert ist. |
ArriveTimeUTC | Uhrzeit, zu der das Fahrzeug beim Routenstopp ankommt. Dieser Wert wird in UTC (koordinierte Weltzeit) angegeben. Dieses Feld ist Null, wenn keine Zeitzonen für das Netzwerk-Dataset konfiguriert sind. |
DepartTimeUTC | Uhrzeit, zu der das Fahrzeug vom Routenstopp abfährt. Dieser Wert wird in UTC (koordinierte Weltzeit) angegeben. Dieses Feld ist Null, wenn keine Zeitzonen für das Netzwerk-Dataset konfiguriert sind. |
WaitTime | Die Wartezeit oder der Aufenthalt beim Stopp. Beispielsweise ist eine Wartezeit vorhanden, wenn auf einer Route bei dem Auftrag gewartet werden muss, bis sich ein Zeitfenster öffnet. |
ViolationTime | Die zwischen dem Ende des Zeitfensters für den Stopp und der Ankunft des Fahrzeugs für die Route verstrichene Zeit. |
Visualisieren von Stopps
Die Tabelle "Stops" ist keine Feature-Class. Das bedeutet, Sie können die Tabelle nicht einfach zu einer Karte hinzufügen, um die Stopps anzuzeigen. Stattdessen müssen Sie zusätzliche Schritte durchführen, um Stopps auf einer Karte zu visualisieren. (Eine Anleitung dazu finden Sie unten.) Dieses Design scheint evtl. unnötig kompliziert, wenn Sie die Stopps einer Route auf einer Karte anzeigen müssen. Denken Sie jedoch daran, dass dieses Werkzeug für die Erstellung von VRP-Web-Services konzipiert wurde. Somit ist die Ausgabe so schlank wie möglich, um die Serververarbeitung und Datenübertragung zu minimieren. Nichtsdestotrotz ist die Ausgabe nicht zu schlank. Sie bietet immer noch die grundlegenden Informationen zur Visualisierung von Stopps als Punkt-Features.
Beispiel: Um anzuzeigen, wo Stopps für Aufträge erfolgen, verknüpfen Sie die Tabelle "Stops" mit dem ursprünglichen Auftrags-Feature-Set, das als Eingabe verwendet wurde. Sie können diese Datasets über die Felder "StopType" und "Name" in der Tabelle "Stops" und das Feld "Name" im Auftrags-Feature-Set auswählen und verbinden. Sie können einen ähnlichen Ansatz verwenden, um Stopps bei Depots anzuzeigen.
Vehicle Routing Problem-Analyse berechnen erstellt mehrere Eingabe-Feature-Sets, einschließlich den Auftrags- und Depot-Feature-Sets. Bei der Berechnung durch das Werkzeug werden diese In-Memory-Feature-Sets aus ArcMap entfernt. Sie können sie jedoch wieder hinzufügen. Führen Sie hierzu die folgenden Schritte aus:
- Öffnen Sie das Fenster Ergebnisse im Menü Geoverarbeitung.
- Navigieren Sie im Fenster Ergebnisse zu den Ergebnissen der Operation, von der Sie ein Feature-Set benötigen.
- Blenden Sie das entsprechende Ergebnis für Vehicle Routing Problem-Analyse berechnen ein.
- Blenden Sie Eingaben ein.
- Klicken Sie mit der rechten Maustaste auf das Feature-Set, das Sie anzeigen möchten, und wählen Sie Zur Anzeige hinzufügen. Das Feature-Set wird in der Karte und im Inhaltsverzeichnis angezeigt.
- Klicken Sie optional auf die Schaltfläche Nach Quelle auflisten im Fenster Inhaltsverzeichnis, um zu sehen, wo die Daten gespeichert sind.
Im Gegensatz zu Aufträgen und Depots sind Unterbrechungen nicht mit Eingabe-Feature-Sets verknüpft. Sie müssen daher eine andere Methode verwenden, um sie zu visualisieren. Sie können Beschreibungen in der Analyse erstellen, die Linien auswählen, die Features repräsentieren, und das Werkzeug Feature-Stützpunkte zu Punkten verwenden, um sie in Punkte zu konvertieren.
Tabelle "UnassignedStops"
Die Tabelle "UnassignedStops" listet die Aufträge auf, die von keiner Route abgearbeitet wurden. Sie gibt ferner an, warum der Stopp nicht aufgesucht wurde, sodass Sie die erforderlichen Änderungen vornehmen können, um das Problem zu beheben.
Der Standardname dieser Ausgabe-Tabelle ist Stops. Sie können dies jedoch durch Ändern des Parameters Ausgabename nicht zugewiesener Stopps vor der Berechnung ändern (output_unassigned_stops_name).
Die Feldnamen der Tabelle "Stops" werden unten aufgelistet und beschrieben.
Feldname | Beschreibung |
---|---|
ObjectID | Das vom System verwaltete ID-Feld. |
StopType | Gibt an, ob der Stopp ein Depot, einen Auftrag oder eine Unterbrechung repräsentiert. Das Feld speichert einen kodierten Wert, der wie folgt interpretiert werden kann:
|
Name | Der Name des Stopps. Dies ist ein Fremdschlüssel für den Namen des Depots, des Auftrags oder der Unterbrechung in den Eingabe-Feature-Sets und im Record Set. Das Eingabe-Feature oder Record Set wird durch das Feld "StopType" angegeben. |
ViolatedConstraints | Dieses Feld enthält eine Zusammenfassung von Beschränkungsverletzungen. Es wird nach einem Berechnungsvorgang festgelegt. Wenn eine Einschränkung verletzt wird, kann dem Feld eine Kombination aus den unten aufgeführten Verletzungen zugewiesen werden: Dive-in: Der codierte Wert, der die Textbeschreibung darstellt, wird unten in der Liste in Klammern dargestellt. Beachten Sie, dass die codierten Werte Teil einer geometrischen Sequenz sind, die zunimmt, da der letzte Wert verdoppelt wird. Auf diese Weise können verschiedene Kombinationen von Regel-Verletzungen codiert werden. Zum Beispiel wird die Kombination von "Capacities überschritten" (2) und "Harte Routenzone" (128) als 130 (2 +128) codiert.
|
Status | Dieses Feld wird von einer Domäne von Werten eingeschränkt, die unten aufgeführt sind (ihre codierten Werte werden in Klammern angegeben.
|