Analyse-Layer für Last-Mile-Delivery erstellen (Network Analyst)

Zusammenfassung

Erstellt einen Netzwerkanalyse-Layer für Last-Mile-Delivery und legt seine Analyseeigenschaften fest. Ein Last-Mile-Delivery-Analyse-Layer ist zur Optimierung verschiedener Routen für eine Fahrzeugflotte hilfreich. Der Layer kann mit einem lokalen Netzwerk-Dataset oder mit einem online bzw. in einem Portal gehosteten Service erstellt werden.

Verwendung

  • Das für eine Last-Mile-Delivery-Analyse verwendete Analysenetzwerk muss mindestens einen Reisemodus, ein Kostenattribut mit Zeiteinheiten, ein Kostenattribut mit Entfernungseinheiten sowie ein Zeitzonenattribut enthalten.

  • Nachdem Sie den Analyse-Layer mit diesem Werkzeug erstellt haben, können Sie ihm Netzwerkanalyse-Objekte mithilfe des Werkzeugs Standorte hinzufügen hinzufügen, die Analyse mit dem Werkzeug Berechnen berechnen und die Ergebnisse mit dem Werkzeug In Layer-Datei speichern auf der Festplatte speichern.

  • Bei Verwendung dieses Werkzeugs in Geoverarbeitungsmodellen, muss der Netzwerkanalyse-Layer in einen Modellparameter geändert werden, wenn das Modell als Werkzeug ausgeführt wird. Andernfalls wird der Ausgabe-Layer dem Inhalt der Karte nicht hinzugefügt.

  • Obwohl dieses Werkzeug in Python ausgeführt werden kann, stellt die Verwendung des Solver-Objekts LastMileDelivery, das im Network Analyst-Modul arcpy.nax verfügbar ist, eine bessere Möglichkeit zum Automatisieren von Last-Mile-Delivery-Workflows in Python dar.

Parameter

BeschriftungErläuterungDatentyp
Netzwerkdatenquelle

Das Netzwerk-Dataset oder der Service, für das bzw. den die Netzwerkanalyse ausgeführt wird. Verwenden Sie die Portal-URL für einen Service.

Das Analysenetzwerk muss mindestens einen Reisemodus, ein Kostenattribut mit Zeiteinheiten, ein Kostenattribut mit Entfernungseinheiten sowie ein Zeitzonenattribut enthalten.

Network Dataset Layer;String
Layer-Name
(optional)

Der Name des zu erstellenden Netzwerkanalyse-Layers.

String
Reisemodus
(optional)

Der Name des Reisemodus, der in der Analyse verwendet wird. Der Reisemodus stellt eine Sammlung von Netzwerkeinstellungen (z. B. Reisebeschränkungen und Wendenregeln) dar, mit denen festgelegt wird, wie ein Fußgänger, Auto, Lkw oder anderes Transportmittel sich durch das Netzwerk bewegt. Reisemodi werden für die Netzwerkdatenquelle definiert.

Ein arcpy.na.TravelMode-Objekt und eine Zeichenfolge mit der gültigen JSON-Repräsentation eines Reisemodus können ebenfalls als Eingabe für den Parameter verwendet werden.

Das Impedanzattribut des Reisemodus muss über Zeiteinheiten verfügen.

String
Zeiteinheiten
(optional)

Gibt die Zeiteinheiten an, die in den Analyse-Layer-Eigenschaften sowie den Zeitfeldern in den Sublayern und Tabellen des Analyse-Layers (Netzwerkanalyseklassen) verwendet werden. Dieser Wert muss nicht mit den Einheiten des Zeitkostenattributs übereinstimmen.

  • MinutenDie Zeiteinheiten werden in Minuten angegeben. Dies ist die Standardeinstellung.
  • SekundenDie Zeiteinheiten werden in Sekunden angegeben.
  • StundenDie Zeiteinheiten werden in Stunden angegeben.
  • TageDie Zeiteinheiten werden in Tagen angegeben.
String
Entfernungseinheiten
(optional)

Gibt die Entfernungseinheiten an, die in den Analyse-Layer-Eigenschaften sowie den Entfernungsfeldern in den Sublayern und Tabellen des Analyse-Layers (Netzwerkanalyseklassen) verwendet werden. Dieser Wert muss nicht mit den Einheiten des optionalen Entfernungskostenattributs übereinstimmen.

Vorsicht:
Die Optionen Zoll, Zentimeter, Millimeter und Dezimeter sind nicht verfügbar, wenn es sich bei der Netzwerkdatenquelle um einen Service handelt.

  • MeilenDie Entfernungseinheiten sind Meilen. Dies ist die Standardeinstellung.
  • KilometerDie Entfernungseinheiten sind Kilometer.
  • FußDie Entfernungseinheiten sind Fuß.
  • YardDie Entfernungseinheiten sind Yard.
  • MeterDie Entfernungseinheiten sind Meter.
  • ZollDie Entfernungseinheiten sind Zoll.
  • ZentimeterDie Entfernungseinheiten sind Zentimeter.
  • MillimeterDie Entfernungseinheiten sind Millimeter.
  • DezimeterDie Entfernungseinheiten sind Dezimeter.
  • SeemeilenDie Entfernungseinheiten sind Seemeilen.
String
Frühestes Startdatum für Routen
(optional)

Das früheste standardmäßige Startdatum für Routen. Dieses Datum wird für alle Routen verwendet, bei denen das Feld EarliestStartDate im Sublayer Routes NULL ist. Wird kein Parameterwert angegeben, muss für alle Zeilen im Sublayer Routes ein Wert im Feld EarliestStartDate angegeben sein.

Sie können zwar für diesen Parameter ein Datum und eine Uhrzeit angeben, doch wird nur das Datum verwendet. Verwenden Sie zum Festlegen der frühesten Startzeit für Routen den Parameter Früheste Startzeit für Routen.

Vorsicht:
Im Gegensatz zu den anderen Network Analyst-Solvern ist es mit dem Last Mile Delivery Solver nicht möglich, anstelle eines bestimmten, statischen Datums spezielle Datumsangaben zu verwenden, um einen Wochentag oder das aktuelle Datum zu modellieren. Sie müssen ein bestimmtes Datum auswählen.

Date
Früheste Startzeit für Routen
(optional)

Die früheste standardmäßige Startzeit für Routen. Dieser Zeitpunkt wird für alle Routen verwendet, bei denen das Feld EarliestStartTime im Sublayer Routes NULL ist. Wird kein Parameterwert angegeben, muss für alle Zeilen im Sublayer Routes ein Wert im Feld EarliestStartTime angegeben sein.

Sie können zwar für diesen Parameter ein Datum und eine Uhrzeit angeben, doch wird nur die Uhrzeit verwendet. Verwenden Sie zum Festlegen des frühesten Startdatums für Routen den Parameter Frühestes Startdatum für Routen.

Date
Maximale Gesamtzeit für Route
(optional)

Die maximal zulässige Gesamtzeit pro Route. Dieser Wert kann eine beliebige positive Zahl sein.

Der Wert wird für alle Routen verwendet, bei denen das Feld MaxTotalTime im Sublayer Routes NULL ist. Wird kein Parameterwert angegeben, muss für alle Zeilen im Sublayer Routes ein Wert im Feld MaxTotalTime angegeben sein.

Der Wert wird in den im Parameter Zeiteinheiten festgelegten Einheiten interpretiert.

Double
Zeitzone für Zeitfelder
(optional)

Gibt die Zeitzone an, die für die vom Werkzeug unterstützten Datums-/Zeit-Eingabefelder verwendet wird.

Es ist hilfreich, die Werte für Datum/Uhrzeit in UTC anzugeben, wenn Sie die Zeitzone nicht kennen, in der sich die Aufträge oder Depots befinden, oder wenn Sie über Aufträge und Depots in mehreren Zeitzonen verfügen und alle Werte für Datum/Uhrzeit gleichzeitig gestartet werden sollen.

  • Lokale Zeit an PositionenDie mit den Aufträgen oder Depots verknüpften Werte für Datum/Uhrzeit befinden sich in der Zeitzone, in der sich die Aufträge und Depots befinden. Bei Routen basieren die Werte für Datum/Uhrzeit auf der Zeitzone, in der sich das Startdepot für die Route befindet. Hat eine Route kein Startdepot, müssen sich alle Aufträge und Depots über alle Routen hinweg in einer einzelnen Zeitzone befinden. Dies ist die Standardeinstellung.
  • UTCDie mit den Aufträgen, Depots und Routen verknüpften Werte für Datum/Uhrzeit sind in der koordinierten Weltzeit (UTC) angegeben und basieren nicht auf der Zeitzone, in der sich die Aufträge oder Depots befinden.
String
Sequenzabstand
(optional)

Der Abstand zwischen den numerischen Werten, der beim Berechnen der Analyse im Feld Sequence des Sublayers "Aufträge" zwischen aufeinanderfolgenden Aufträgen gelassen wird. Der Wert fungiert als Multiplikator für die eigentliche Auftragsabfolge auf den einzelnen Routen. Wenn der Abstand beispielsweise 5 beträgt, hat der erste Auftrag auf der Route einen Sequence-Feldwert von 5, der zweite Auftrag auf der Route einen Sequence-Feldwert von 10, der dritte 15 usw. Mit diesem Parameter wird das Einfügen von Aufträgen in den fertigen ursprünglichen Routenplan unterstützt, da die neuen Aufträge in die Lücken in der Auftragssequenz eingefügt werden können.

Der Wert muss ein positiver Ganzzahlwert sein. Die Standardeinstellung ist 1.

Bei der ersten Berechnung der Analyse werden die Feldwerte unter Sequence mit aufeinanderfolgenden Werten gefüllt, wobei der festgelegte Sequenzabstand berücksichtigt wird. Bei nachfolgenden Berechnungen derselben Analyse werden die Sequence-Feldwerte vorhandener Aufträge beibehalten, während neue Aufträge in die Lücken eingefügt werden. Dabei werden für das Feld Sequence verfügbare, nicht von anderen Aufträgen verwendete ganzzahlige Werte vergeben. Wenn der Sequenzabstand auf 1 festgelegt wird, werden die Sequenzwerte bei jeder Berechnung auf fortlaufende Werte aktualisiert.

Long
Ungültige Auftragsstandorte beim Berechnen ignorieren
(optional)

Gibt an, ob ungültige Auftragsstandorte ignoriert werden.

  • Aktiviert: Ungültige Auftragsstandorte werden ignoriert, sodass nur gültige Standorte verwendet werden und die Analyse erfolgreich durchgeführt wird.
  • Deaktiviert: Ungültige Auftragsstandorte werden nicht ignoriert, sodass die Analyse fehlschlägt. Dies ist die Standardeinstellung.
Boolean
Form der Ausgaberoute
(optional)

Gibt den Shape-Typ an, der für die Routen-Features verwendet wird, die von der Analyse ausgegeben werden.

Unabhängig vom angegebenen Ausgabe-Shape-Typ wird die optimale Route immer durch die Netzwerkimpedanz und nicht durch die euklidische Entfernung bestimmt. Dies bedeutet, dass sich nur die Routen-Shapes und nicht der zugrunde liegende Durchlauf des Netzwerks unterscheiden.

  • Entlang des NetzwerksDie Ausgabe-Routen haben die exakte Form der zugrunde liegenden Netzwerkquellen. Die Ausgabe umfasst Routenmesswerte für die lineare Referenzierung. Die Messwerte nehmen ab dem ersten Halt zu und zeichnen die kumulierte Impedanz auf, um eine bestimmte Position zu erreichen.
  • Keine LinienFür die Ausgaberouten wird kein Shape erstellt.
  • Gerade LinienDas Ausgabe-Routen-Shape ist eine einzelne gerade Linie zwischen den Stopps.Dies ist die Standardeinstellung.
String
Wegbeschreibung beim Berechnen erstellen
(optional)

Gibt an, ob beim Berechnen der Analyse Wegbeschreibungen erstellt werden.

  • Aktiviert: Detaillierte Wegbeschreibungen werden beim Berechnen erstellt.
  • Deaktiviert: Detaillierte Wegbeschreibungen werden beim Berechnen nicht erstellt. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Network Analyst-Layer

Der neue Netzwerkanalyse-Layer.

Network Analyst Layer

arcpy.na.MakeLastMileDeliveryAnalysisLayer(network_data_source, {layer_name}, {travel_mode}, {time_units}, {distance_units}, {earliest_route_start_date}, {earliest_route_start_time}, {max_route_total_time}, {time_zone_for_time_fields}, {sequence_gap}, {ignore_invalid_order_locations}, {line_shape}, {generate_directions_on_solve})
NameErläuterungDatentyp
network_data_source

Das Netzwerk-Dataset oder der Service, für das bzw. den die Netzwerkanalyse ausgeführt wird. Verwenden Sie die Portal-URL für einen Service.

Das Analysenetzwerk muss mindestens einen Reisemodus, ein Kostenattribut mit Zeiteinheiten, ein Kostenattribut mit Entfernungseinheiten sowie ein Zeitzonenattribut enthalten.

Network Dataset Layer;String
layer_name
(optional)

Der Name des zu erstellenden Netzwerkanalyse-Layers.

String
travel_mode
(optional)

Der Name des Reisemodus, der in der Analyse verwendet wird. Der Reisemodus stellt eine Sammlung von Netzwerkeinstellungen (z. B. Reisebeschränkungen und Wendenregeln) dar, mit denen festgelegt wird, wie ein Fußgänger, Auto, Lkw oder anderes Transportmittel sich durch das Netzwerk bewegt. Reisemodi werden für die Netzwerkdatenquelle definiert.

Ein arcpy.na.TravelMode-Objekt und eine Zeichenfolge mit der gültigen JSON-Repräsentation eines Reisemodus können ebenfalls als Eingabe für den Parameter verwendet werden.

Das Impedanzattribut des Reisemodus muss über Zeiteinheiten verfügen.

String
time_units
(optional)

Gibt die Zeiteinheiten an, die in den Analyse-Layer-Eigenschaften sowie den Zeitfeldern in den Sublayern und Tabellen des Analyse-Layers (Netzwerkanalyseklassen) verwendet werden. Dieser Wert muss nicht mit den Einheiten des Zeitkostenattributs übereinstimmen.

  • MinutesDie Zeiteinheiten werden in Minuten angegeben. Dies ist die Standardeinstellung.
  • SecondsDie Zeiteinheiten werden in Sekunden angegeben.
  • HoursDie Zeiteinheiten werden in Stunden angegeben.
  • DaysDie Zeiteinheiten werden in Tagen angegeben.
String
distance_units
(optional)

Gibt die Entfernungseinheiten an, die in den Analyse-Layer-Eigenschaften sowie den Entfernungsfeldern in den Sublayern und Tabellen des Analyse-Layers (Netzwerkanalyseklassen) verwendet werden. Dieser Wert muss nicht mit den Einheiten des optionalen Entfernungskostenattributs übereinstimmen.

  • MilesDie Entfernungseinheiten sind Meilen. Dies ist die Standardeinstellung.
  • KilometersDie Entfernungseinheiten sind Kilometer.
  • FeetDie Entfernungseinheiten sind Fuß.
  • YardsDie Entfernungseinheiten sind Yard.
  • MetersDie Entfernungseinheiten sind Meter.
  • InchesDie Entfernungseinheiten sind Zoll.
  • CentimetersDie Entfernungseinheiten sind Zentimeter.
  • MillimetersDie Entfernungseinheiten sind Millimeter.
  • DecimetersDie Entfernungseinheiten sind Dezimeter.
  • NauticalMilesDie Entfernungseinheiten sind Seemeilen.

Vorsicht:
Die Optionen Inches, Centimeters, Millimeters und Decimeters sind nicht verfügbar, wenn es sich bei der Netzwerkdatenquelle um einen Service handelt.

String
earliest_route_start_date
(optional)

Das früheste standardmäßige Startdatum für Routen. Dieses Datum wird für alle Routen verwendet, bei denen das Feld EarliestStartDate im Sublayer Routes NULL ist. Wird kein Parameterwert angegeben, muss für alle Zeilen im Sublayer Routes ein Wert im Feld EarliestStartDate angegeben sein.

Geben Sie diesen Parameterwert über ein datetime.date-Objekt an.

Vorsicht:
Im Gegensatz zu den anderen Network Analyst-Solvern ist es mit dem Last Mile Delivery Solver nicht möglich, anstelle eines bestimmten, statischen Datums spezielle Datumsangaben zu verwenden, um einen Wochentag oder das aktuelle Datum zu modellieren. Sie müssen ein bestimmtes Datum auswählen.

Date
earliest_route_start_time
(optional)

Die früheste standardmäßige Startzeit für Routen. Dieser Zeitpunkt wird für alle Routen verwendet, bei denen das Feld EarliestStartTime im Sublayer Routes NULL ist. Wird kein Parameterwert angegeben, muss für alle Zeilen im Sublayer Routes ein Wert im Feld EarliestStartTime angegeben sein.

Geben Sie diesen Parameterwert über ein datetime.time-Objekt an.

Date
max_route_total_time
(optional)

Die maximal zulässige Gesamtzeit pro Route. Dieser Wert kann eine beliebige positive Zahl sein.

Der Wert wird für alle Routen verwendet, bei denen das Feld MaxTotalTime im Sublayer Routes NULL ist. Wird kein Parameterwert angegeben, muss für alle Zeilen im Sublayer Routes ein Wert im Feld MaxTotalTime angegeben sein.

Der Wert wird in den im Parameter time_units festgelegten Einheiten interpretiert.

Double
time_zone_for_time_fields
(optional)

Gibt die Zeitzone an, die für die vom Werkzeug unterstützten Datums-/Zeit-Eingabefelder verwendet wird.

  • LOCAL_TIME_AT_LOCATIONSDie mit den Aufträgen oder Depots verknüpften Werte für Datum/Uhrzeit befinden sich in der Zeitzone, in der sich die Aufträge und Depots befinden. Bei Routen basieren die Werte für Datum/Uhrzeit auf der Zeitzone, in der sich das Startdepot für die Route befindet. Hat eine Route kein Startdepot, müssen sich alle Aufträge und Depots über alle Routen hinweg in einer einzelnen Zeitzone befinden. Dies ist die Standardeinstellung.
  • UTCDie mit den Aufträgen, Depots und Routen verknüpften Werte für Datum/Uhrzeit sind in der koordinierten Weltzeit (UTC) angegeben und basieren nicht auf der Zeitzone, in der sich die Aufträge oder Depots befinden.

Es ist hilfreich, die Werte für Datum/Uhrzeit in UTC anzugeben, wenn Sie die Zeitzone nicht kennen, in der sich die Aufträge oder Depots befinden, oder wenn Sie über Aufträge und Depots in mehreren Zeitzonen verfügen und alle Werte für Datum/Uhrzeit gleichzeitig gestartet werden sollen.

String
sequence_gap
(optional)

Der Abstand zwischen den numerischen Werten, der beim Berechnen der Analyse im Feld Sequence des Sublayers "Aufträge" zwischen aufeinanderfolgenden Aufträgen gelassen wird. Der Wert fungiert als Multiplikator für die eigentliche Auftragsabfolge auf den einzelnen Routen. Wenn der Abstand beispielsweise 5 beträgt, hat der erste Auftrag auf der Route einen Sequence-Feldwert von 5, der zweite Auftrag auf der Route einen Sequence-Feldwert von 10, der dritte 15 usw. Mit diesem Parameter wird das Einfügen von Aufträgen in den fertigen ursprünglichen Routenplan unterstützt, da die neuen Aufträge in die Lücken in der Auftragssequenz eingefügt werden können.

Der Wert muss ein positiver Ganzzahlwert sein. Die Standardeinstellung ist 1.

Bei der ersten Berechnung der Analyse werden die Feldwerte unter Sequence mit aufeinanderfolgenden Werten gefüllt, wobei der festgelegte Sequenzabstand berücksichtigt wird. Bei nachfolgenden Berechnungen derselben Analyse werden die Sequence-Feldwerte vorhandener Aufträge beibehalten, während neue Aufträge in die Lücken eingefügt werden. Dabei werden für das Feld Sequence verfügbare, nicht von anderen Aufträgen verwendete ganzzahlige Werte vergeben. Wenn der Sequenzabstand auf 1 festgelegt wird, werden die Sequenzwerte bei jeder Berechnung auf fortlaufende Werte aktualisiert.

Long
ignore_invalid_order_locations
(optional)

Gibt an, ob ungültige Auftragsstandorte ignoriert werden.

  • SKIPUngültige Auftragsstandorte werden ignoriert, sodass nur gültige Standorte verwendet werden und die Analyse erfolgreich durchgeführt wird.
  • HALTUngültige Auftragsstandorte werden nicht ignoriert, sodass die Analyse fehlschlägt. Dies ist die Standardeinstellung.
Boolean
line_shape
(optional)

Gibt den Shape-Typ an, der für die Routen-Features verwendet wird, die von der Analyse ausgegeben werden.

  • ALONG_NETWORKDie Ausgabe-Routen haben die exakte Form der zugrunde liegenden Netzwerkquellen. Die Ausgabe umfasst Routenmesswerte für die lineare Referenzierung. Die Messwerte nehmen ab dem ersten Halt zu und zeichnen die kumulierte Impedanz auf, um eine bestimmte Position zu erreichen.
  • NO_LINESFür die Ausgaberouten wird kein Shape erstellt.
  • STRAIGHT_LINESDas Ausgabe-Routen-Shape ist eine einzelne gerade Linie zwischen den Stopps.Dies ist die Standardeinstellung.

Unabhängig vom angegebenen Ausgabe-Shape-Typ wird die optimale Route immer durch die Netzwerkimpedanz und nicht durch die euklidische Entfernung bestimmt. Dies bedeutet, dass sich nur die Routen-Shapes und nicht der zugrunde liegende Durchlauf des Netzwerks unterscheiden.

String
generate_directions_on_solve
(optional)

Gibt an, ob beim Berechnen der Analyse Wegbeschreibungen erstellt werden.

  • DIRECTIONSDetaillierte Wegbeschreibungen werden beim Berechnen erstellt.
  • NO_DIRECTIONSDetaillierte Wegbeschreibungen werden beim Berechnen nicht erstellt. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_network_analysis_layer

Der neue Netzwerkanalyse-Layer.

Network Analyst Layer

Codebeispiel

MakeLastMileDeliveryAnalysisLayer: Beispiel 1 (Python-Fenster)

Das Werkzeug wird unter Angabe einer bestimmen Teilmenge von Parametern ausgeführt.

import datetime

arcpy.na.MakeLastMileDeliveryAnalysisLayer(
    r"C:\Data\SanFrancisco.gdb\Transportation\Streets_ND",
    "Package Delivery",
    "Trucking Time",
    time_units="Hours",
    earliest_route_start_date=datetime.date(2023, 11, 28),
    earliest_route_start_time=datetime.time(7, 30, 0),
    route_start_flexibility=1.5,
    line_shape="NO_LINES"
)

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen