In einem meiner letzten Beiträge habe ich mich schon mit der Nutzung der ArcGIS Online Routing Dienstes im 'Routen suchen' Dialog von ArcMap beschäftigt. World Routing Service - Nutzung in ArcMap
Für einzelne Routen oder für die gelegentliche Nutzung ist es ein sehr gut passendes Tool.
Wenn man allerdings viele Routen berechnen will, oder mit den Ergebnissen noch weiter arbeiten will, dann bietet ArcMap mit dem Model Builder eine sehr mächtige Möglichkeit eigene Tools zu bauen. Und das funktioniert auch mit Online Services nicht nur mit den ArcMap eigenen Tools.
Hier könnt ihr Euch eine File Geodatabase mit Daten und den Modellen runterladen: http://bit.ly/1v9mxIP
Wenn man in ArcMap in seiner Organisation angemeldet ist, stehen in Katalog von ArcMap (bzw ArcCatolog) einige Online Dienste zur Verfügung, Die Verbindung heißt "Einsatzbereite Services (<Subskriptions Name>)". Rein technisch ist das nichts anderes als das Service Directory eines ArcGIS for Server mit allen angebotenen GP Diensten.
Man findet hier nicht alle ArcGIS Online Analyse Services. Im Wesentlichen sind es die Dienste die Daten als Voraussetzung haben, also Netzwerk- und Geokodierungsdienste und Höhendienste. ArcGIS Online Tools wie 'Punkte aggregieren' werden nicht angeboten. ArcMap hat für solche Aufgaben genügend eigene Tools.
Sobald man eines der Tools mit einem Doppelklick startet, bekommt man eine generische Geoprocessing Oberfläche zu sehen, mit allen möglichen Input und Output Parametern.
Das Geoprocessing Tool FindRoutes hat so viele mögliche Parameter, dass ich zwei Screenshots machen musste.
Die Hilfe für die einzelnen Parameter ist sehr gut und umfangreich, darum an dieser Stelle nur ein paar Tipps für die Nutzung von 'FindRoutes'
Eine der wichtigsten Einstellungen ist der Parameter 'TravelMode'. Wenn man 'Custom' eingibt, kann man viele Parameter (max Höhe, welche Strassentypen,...) selbst definieren. Alle anderen Einstellungen (Driving,....) bringen einen eigenen Satz an Parametern. Alles was man manuell eingibt wird dann ignoriert!
Für Europa gibt es noch keine LKW Fahrzeiten. Man kann zwar Logistik Attribute benutzen (Höhe, Breite, Länge, Gewicht,...) aber die Fahrzeiten stehen erst im Laufe des Jahres für LKW zur Verfügung. Momentan läuft man in einen Fehler, wenn man z.B. als Travel Mode 'Trucking' wählt.
Eigene Restriktionen wählt man mit 'Restrictions' aus. Man muss dazu dann aber auch Werte unter 'Attribute Parameter Values' angeben. Wenn man also Routen mit Höhenbeschränkung rechnen lassen will, muss man auch eine Höhe mitgeben.
Normalerweise braucht man diese Fülle an Parametern, die man in den Screenshots oben sieht, nicht. Es bietet sich deshalb an das Tool 'Find Routes' in einem eigenen Model zu benutzen.
Zum Start einfach eine neue Toolbox definieren, ein Model öffnen und das Tool 'Find Routes' per drag&drop in das blanke Model einbinden.
Ich möchte zum Start eine Reihe von Parametern selbst definieren:
Stopps, Restriktionen und die zugehörigen Parameter und deshalb auch den Drive Mode.
Das Model und die zugehörige Eingabemaske sehen jetzt so aus:
Als Ergebnis der Analyse möchte ich nur die Routen sehen. Es reicht wenn man bei 'Output Routes' die Optionen 'Zur Anzeige hinzufügen' und 'Modellparameter' aktiviert.
Das Ergebnis von 'FindRoutes' ist vom Typ 'Feaure Set' und dieser Datentyp hat einige Einschränkungen. Man kann nicht direkt abspeichern, nicht umbenennen und das Feature Set kann auch nicht als Eingabe Datensatz für die meisten anderen Tools benutzt werden.
Für das Umwandeln von Feature Sets kann die Funktion 'Features in Linie' benutzt werden. Damit man das Ergebnis auch in der Karte sehen kann, braucht man noch das Tool 'Werte erfassen'. Das Tool 'Werte erfassen' ist nur im und für den Model Builder verfügbar. Es kann im Model Builder über Einfügen/Nur Modellwerkzeuge hinzugefügt werden.
Das Model sieht jetzt so aus:
Damit 'Features in Linie' richtig funktioniert, muss das Tool einmal erfolgreich gelaufen sein, damit das Tool den Typ des Feature Sets erkennen kann.
Wenn man nur eine Route zwischen zwei (oder mehr) Stopps berechnen will, dann ist ein Modell nicht zwingend notwendig. Richtig interessant wird es erst, wenn man mehrere Routen in einem Rutsch berechnen will.
Hierfür müssen wir eine Schleife einbauen. Hierfür gibt es im Model Builder verschieden Möglichkeiten. Ich benutze hier sog. Iteratoren.
Über den Menüpunkt Einfügen/Iteratoren kann man auf eine Auswahl von verschiedenen Iteratoren zugreifen. Für diesen Fall ist der Iterator 'Feature Auswahl iterieren' passend.
In dem Modell kann man auch Restriktionen angeben. Damit man nicht bei jedem Durchlauf die Parameter für Länge, Höhe, Gewicht,... angeben muss, kann man auch eine Tabelle mit den Werten für ein bestimmtes Fahrzeug abspeichern und darauf referenzieren.
Nicht vergessen: Das funktioniert nur, wenn der Travel Mode auf 'Custom' eingestellt ist.
Im Model kann man auch flächige Barrieren angeben. Es sind aber nicht nur Barrieren, es können auch Gebiete definiert werden, die nur die Durchfahrt verlangsamen oder auch beschleunigen.
Die Online Dienste lassen sich nahtlos in eigene Tools integrieren. Die Online Tools haben zwar ein paar Besonderheiten, z.B. dass das Ergebnis ein Feature Set ist, aber ansonsten merkt man im Umgang mit den Online Tools keinen großen Unterschied zu lokalen Tools.
Für einige der oben beschriebenen Punkte braucht man allerdings etwas vertiefte Kenntnisse über den Model Builder. Ein solches Tool zu erstellen braucht ein wenig Zeit und lohnt sich nur, wenn man den Analyse Prozess oft durchführen muss, wenn man das Model an einen Kollegen weitergeben will oder auch wenn man einen Analyse Workflow dokumentieren will.
Damit das nachbauen von solchen Tools einfacher wird, habe ich eine File Geodatabase hochgeladen mit ein paar Stopps, der Attribut Tabelle mit den Restriktionen und ein paar Modellen. Bei den Modellen müssen evtl. noch Pfade geändert werden, weil die Ergebnisse teilweise noch auf absolute Pfade auf meinem Rechner zeigen.
Hier zu finden: http://bit.ly/1v9mxIP
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.