<\/HEAD>
Dies ist der dritte Beitrag einer dreiteiligen Serie über das Erstellen von Geoverarbeitungsmodellen in ArcGIS.<\/EM><\/P><\/P>Wenn Sie die vorherigen Beiträge dieser Serie gelesen haben, kennen Sie die Grundlagen des Modellierens und wissen, wie man Modellparameter hinzufügt, um eine einfache Wiederverwendung und Szenariotests zu unterstützen. In diesem Beitrag lernen Sie einige Techniken kennen, um mit weniger Aufwand mehr zu erreichen. <\/P><\/P>Listenvariablen<\/STRONG><\/P><\/P>Im letzten Beitrag<\/A> haben Sie gelernt, wie man einen Werkzeugparameter in eine Variable umwandelt und eine Variable in einen Modellparameter verwandelt. Standardmäßig speichert eine Variable einen einzelnen Wert. Es ist jedoch möglich, mehrere Werte in einer Variable zu speichern. Wenn Sie dies tun, wird die Variable als Listenvariable bezeichnet.<\/P><\/P>
Wenn eine Listenvariable mit einem Geoverarbeitungswerkzeug verbunden ist, wird dieses Werkzeug und alle nachgelagerten Prozesse (alle Prozesse, die vom Ausgabeergebnis des Werkzeugs abhängen) automatisch einmal für jeden Wert in der Liste ausgeführt. Genau: Wenn Sie eine Listenvariable definieren, wissen Modellwerkzeuge automatisch, dass sie jedes Listenelement verarbeiten müssen.<\/P>
<\/P>
Die Verwendung von Listenvariablen ist wie das Ausführen von Geoverarbeitungswerkzeugen im Batch-Modus – mit dem großen Vorteil, dass Sie die Liste der Werte nur einmal eingeben müssen, um eine Mehrfachwerkzeugverarbeitung zu erreichen.<\/P>
<\/P>
Betrachten Sie das untenstehende Modell, das einen typischen Datenverwaltungsworkflow automatisiert.<\/P>
<\/P>
<\/A><\/P>
Dieses Modell erstellt eine File-Geodatabase, konvertiert eine Shapefile in eine Geodatabase-Feature-Class, entfernt doppelte Features, definiert das Koordinatensystem für die Feature-Class und gibt eine Layer mit ausgewählten Features aus. Beachten Sie, dass das Modell sogar zwei Parameter hat. Es ist ein vollständiger Workflow, der hervorragend funktioniert, wenn nur eine einzelne Shapefile verarbeitet werden muss.<\/P>
<\/P>
Es stößt jedoch an seine Grenzen, wenn mehrere Shapefiles verarbeitet werden müssen. Das Modell müsste manuell mehrfach ausgeführt werden, um alle Shapefiles zu verarbeiten. Wäre es nicht besser, das Modell einmal auszuführen und die gesamte Arbeit erledigen zu lassen? <\/P>
<\/P>
Das Erstellen einer Listenvariable wird dies ermöglichen. Um für dieses Beispiel eine Listenvariable zu erstellen:<\/P>
<\/P>
<\/P>
- Klicken Sie mit der rechten Maustaste auf die Eingabevariable des Werkzeugs Feature Class to Feature Class und klicken Sie auf Eigenschaften, dann wählen Sie "Eine Liste von Werten." Klicken Sie auf OK.<\/LI>
- Doppelklicken Sie auf die Variable, um sie zu öffnen und geben Sie jeden Wert ein.<\/LI><\/OL><\/DIV>
Mehr über Listenvariablen<\/A><\/LI><\/UL><\/P>
Inline-Variablensubstitution<\/STRONG><\/P><\/P>Bei Listenvariablen werden Werkzeuge mehrfach ausgeführt, um jede Eingabe zu verarbeiten. Standardmäßig sind jedoch die Ausgabennamen der Werkzeuge gleich – was bedeutet, dass alle Ausgaben außer denen des letzten Listenelements überschrieben werden. Um dies zu umgehen, verwenden Sie
Inline-Variablensubstitution<\/A>.<\/P><\/P>
Es gibt zwei Arten von Variablen, die in Prozessen substituiert werden können: Modellvariablen und Systemvariablen. Um eine Modellvariable für Inline-Variablensubstitution zu verwenden, geben Sie einfach den Variablennamen in Prozentzeichen ein.<\/P>
Die Systemvariable %i% wird oft verwendet, um am Ende von Ausgabennamen eine eindeutige fortlaufende Nummer hinzuzufügen. Die Nummerierung der Listenelemente beginnt bei 0 (der Ausgabename des ersten Elements erhält eine 0 angehängt).<\/P>
Für dieses Beispiel würden Sie das Werkzeug Feature Class to Feature Class öffnen und ein kleines i in Prozentzeichen am Ende des Namens der Ausgabefeature-Class (hier ASAM) hinzufügen.<\/P>
<\/P>
<\/P><\/P>Die Verwendung der Systemvariable stellt sicher, dass das Modell korrekt verarbeitet und die drei benötigten Ausgaben erstellt. Die Ausgabennamen sind jedoch nicht beschreibend. Man könnte sie später umbenennen, aber warum nicht diese Arbeit jetzt automatisieren? <\/P><\/> Nur im Modell verfügbare Werkzeuge<\/>
ModelBuilder enthält eine Reihe von Werkzeugen, die nur für Modelle verfügbar sind, die innerhalb von ModelBuilder ausgeführt werden (d.h., sie funktionieren nicht, wenn das Modell als Werkzeug ausgeführt wird). Das Werkzeug Parse Path<\/> ermöglicht es Ihnen, einen Eingabepfad in seine Komponenten aufzuteilen und diese Teile dann in nachgelagerten Prozessen zu referenzieren.
In diesem Beispiel ist das Werkzeug Parse Path eine bessere Alternative zur Verwendung einer Systemvariable für die Modellprozesse. Es erlaubt die Verwendung der Eingabe-Shapefile-Namen in den Ausgabennamen anstelle kryptischer Zahlen.<\/> - Hinweis:<\/> Für Prozesse, die Zwischendaten erzeugen, ist die Verwendung einer Systemvariable eine gute Lösung, wenn Ausgabennamen eindeutig sein müssen und es nicht wichtig ist, ob diese Namen Verwirrung stiften könnten.<\/> <\/>
< P >
Um das Werkzeug Parse Path hinzuzufügen:
</ P > Klicken Sie im Menü Einfügen > Nur im Modell verfügbare Werkzeuge > Parse Path.< /LI > Öffnen Sie im Modellfenster das Werkzeug Parse Path. Wählen Sie für Eingabedatenelement Input Shapefile aus.< /LI > Wählen Sie für den Typ der Aufteilung Name aus und klicken Sie auf OK.< /LI > Verbinden Sie den Parse Path-Ausgang (Wert) mit dem Werkzeug Feature Class to Feature Class als Ausgabe-Feature-Class.< /LI > < P >< / P > < A _jive_internal=\ "true \ " href= \ "https : \/ \/community.esri.com / servlet / JiveServlet / download / 58769 - 189187 / DescriptiveOutputNames.jpg \ " target = \ "_blank \ " >< IMG __ jive_id = \ "388530 \ " alt = \ "DescriptiveOutputNames - 300x140 . jpg \ " class = \ "j-img-centered jive-image \ " height = \ "140 \ " src = \ "https : \/ \/us.v-cdn.net / 6038851 / uploads / legacyfs / online / 388530_DescriptiveOutputNames - 300x140 . jpg \ " style = \ "display : block ; margin-left : auto ; margin-right : auto ; \ " width = \ "300 \ " \/ >< / A >< BR \/ > Wenn Sie mit der Maus über das Ausgabeelement Feature Class to Feature Class fahren , sehen Sie , dass die drei Ausgaben jetzt Namen haben , die den Eingabe-Shapefile-Namen entsprechen . Dies macht die Modellausgaben sofort verständlich für diejenigen , die mit den Daten arbeiten müssen .< / P > < UL > < LI >< A href = \ "http : \/ \/desktop.arcgis.com / en / arcmap / latest / analyze / modelbuilder / a-quick-tour-of-using-model-only-tools.htm \ " target = \ "_blank \ " title = \ "ArcGIS Help topic on model-only tools \ " rel = \ "nofollow noopener noreferrer \ " > Mehr über nur im Modell verfügbare Werkzeuge< / A >< / LI > < / UL > < P >< / P > < STRONG style = \ "color : #f36f20 ; \ " > Voraussetzungen< / STRONG >< / P > < P >< / P > Haben Sie bemerkt , dass das Element Input Shapefile jetzt mit zwei Werkzeugen verbunden ist – Parse Path und Feature Class to Feature Class – und dass Parse Path kein Teil des Hauptmodellworkflows ist ? Wenn ein Modell separate , aber zusammenhängende Prozesse enthält , ist die Reihenfolge , in der diese Prozesse ausgeführt werden , unvorhersehbar . Die Verarbeitungsreihenfolge kann durch Festlegen einer Voraussetzung gesteuert werden .< / P > < P >< / P > Im Beispiel besteht die Möglichkeit , dass der Prozess Feature Class to Feature Class vor dem Prozess Parse Path ausgeführt wird ... was bedeutet , dass die Modellausgaben überschrieben werden , während jedes Listenelement verarbeitet wird .< / P > < P >< / P > < A _jive_internal = \ "true \ " href = \ "https : \/ \/community.esri.com / servlet / JiveServlet / download / 58769 - 189188 / SetPrecondition.jpg \ " target = \ "_blank \ " >< IMG __ jive_id = \ "388531 \ " alt = \ "SetPrecondition -266x300.jpg \ " class = \ "j-img-centered jive-image \ " height = \ "300 \ " src = \ "https : \/ \/us.v-cdn.net / 6038851 / uploads / legacyfs / online / 388531_SetPrecondition -266x300.jpg \ " style = \ "display : block ; margin-left : auto ; margin-right : auto ; \ " width = \ "266 \ " \/ >< / A >< BR \/ > Um sicherzustellen , dass das Werkzeug Parse Path immer vor Feature Class to Feature Class ausgeführt wird , machen Sie das Element Wert zur Voraussetzung für das Werkzeug Feature Class to Feature Class .< BR \/ >< BR \/ > So legen Sie eine Voraussetzung fest :< / P > < OL > < LI > Klicken Sie mit der rechten Maustaste auf das Werkzeug Feature Class to Feature Class und klicken Sie auf Eigenschaften .< / LI > < LI > Klicken Sie im Dialogfeld auf die Registerkarte Voraussetzungen und aktivieren Sie Wert . Klicken Sie auf OK .< / LI > < / OL > < P >< BR \/ > Jedes Modellelement kann als Voraussetzung für ein Modellwerkzeug festgelegt werden , und Werkzeuge können mehr als eine Voraussetzung haben .< / P > < UL > < LI >< A href = \ "http : \/ \/desktop.arcgis.com/en/arcmap/latest/analyze/modelbuilder/a-quick-tour-of-using-precondition.htm\ " target = \ "_blank\ " title = \ "ArcGIS Help topic on model preconditions\ " rel = \ "nofollow noopener noreferrer\ " > Mehr zum Festlegen von Voraussetzungen< / A >< / LI > < / UL > < P >< / P > < STRONG style = \ "color : #f36f20 ; \ " > Legen Sie los , modellieren Sie es< / STRONG >< / P > < P >< / P > Durch visuelles Mapping Arbeitsabläufe, die Automatisierung zeitaufwändiger Aufgaben und die Unterstützung schneller "Was-wäre-wenn"-Szenariotests machen Modelle zu einem wertvollen Werkzeug, um GIS-Fachleuten effizienter und kollaborativer arbeiten zu helfen. Mit einem soliden Verständnis der Modellierungsgrundlagen und einigen fortgeschrittenen Techniken in Ihrem Repertoire werden Sie vielleicht Gelegenheiten ergreifen, Modelle in ArcGIS zu erstellen. Denn neben der Rolle als Geoverarbeitungs-Arbeitstiere machen Modelle auch... Spaß.<\/P><\/P>Verwandte Beiträge:<\/STRONG><\/P>ModelBuilder 101<\/A><\/LI>ModelBuilder 220: Flexibilität hinzufügen<\/A><\/LI><\/UL>
Für praktische Übungen mit ModelBuilder wird dieser
E-Learning-Kurs<\/A> empfohlen.<\/P><\/BODY><\/HTML>