Kurzer Überblick über die Verwendung von Iteratoren für die Iteration – (Wiederholung)

Iteration, häufig auch Wiederholung genannt, bedeutet, dass ein Prozess immer wieder wiederholt wird, wobei ein gewisser Grad an Automatisierung zum Einsatz kommt. Die Iteration ist sehr wichtig, da durch die Automatisierung von wiederkehrenden Tasks weniger Zeit und Aufwand erforderlich ist, um die Tasks auszuführen. Mit der Iteration in ModelBuilder kann ein Prozess immer wieder ausgeführt werden, wobei in jeder Iteration andere Einstellungen oder Daten verwendet werden. ModelBuilder ermöglicht auch eine flexible Iteration, da ein gesamtes Modell oder nur ein einzelnes Werkzeug oder ein Prozess immer wieder ausgeführt werden kann.

Iterator

Beschreibung

For

Durchläuft einen Start- und Endwert nach einem angegebenen Wert. For funktioniert hier genau so wie in jeder Skript-/Programmiersprache und wird durch eine festgelegte Anzahl von Elementen ausgeführt.

While

Funktioniert genau wie "While" in jeder Skripterstellungs-/Programmiersprache und wird ausgeführt, solange eine Bedingung für die Eingabe oder den Satz von Eingaben wahr oder falsch ist.

Feature-Auswahl iterieren

Durchläuft Features in einer Feature-Class.

Zeilenauswahl iterieren

Durchläuft Zeilen in einer Tabelle.

Feldwerte iterieren

Durchläuft jeden Wert in einem Feld.

MultiValue iterieren

Durchläuft eine Liste von Werten.

Datasets iterieren

Durchläuft Datasets in einem Workspace oder einem Feature-Dataset.

Feature-Classes iterieren

Durchläuft Feature-Classes in einem Workspace oder einem Feature-Dataset.

Dateien iterieren

Durchläuft Dateien in einem Ordner.

Raster iterieren

Durchläuft Raster in einem Workspace oder einem Raster-Katalog.

Tabellen iterieren

Durchläuft Tabellen in einem Workspace.

Workspaces iterieren

Durchläuft Workspaces in einem Ordner.

Iteratoren

Jeder Iterator verfügt über einen Satz von Parametern, der sich möglicherweise von den anderen Iteratoren unterscheidet, die Gesamtstruktur aller Iteratorwerkzeuge ist jedoch sehr ähnlich. Ein häufig verwendeter Iterator namens Feature-Classes iterieren wird unten erläutert.

Iteratoren

Für Feature-Classes iterieren ist ein Eingabe-Workspace erforderlich, in dem alle Feature-Classes, die zu durchlaufen sind, gespeichert werden. Mit zwei zusätzlichen Parametern namens Platzhalter und Feature-Typ wird eingeschränkt, welche Feature-Classes im Workspace durchlaufen werden:

Der Parameter Rekursiv wird verwendet, um die Iteration über Feature-Classes in Unterordnern im Workspace zu steuern.

Feature-Classes iterieren verfügt über zwei Ausgabevariablen: die Ausgabe-Feature-Class und der Name der Feature-Class. Die Ausgabe-Feature-Class kann mit dem nächsten Werkzeug zu weiteren Verarbeitung verbunden werden, und die Variable Name zur Inline-Variablenersetzung verwendet werden. Wenn beispielsweise das Werkzeug Puffer dem Modell hinzugefügt und die Variable Feature Class mit dem Werkzeug verbunden wurde, dann würde jede Feature-Class im Modell gepuffert.

Iteratoreingabe und -ausgabe

Es folgt ist eine Liste von Iteratoren und deren Eingabe und Ausgaben. Einige Iteratoren haben als zweite Ausgabe einen Wert oder Namen, der zur direkten Variablenersetzung verwendet werden kann.

Iterator

Eingabe

Ausgabe 1

Ausgabe 2

For

Werte

Wert

-

While

Werte

Boolesch – Wert "True" oder "False"

-

Feature-Auswahl iterieren

Features

Feature

Wert

Zeilenauswahl iterieren

Tabelle

Aufnehmen

Wert

Feldwerte iterieren

Tabelle

Feldwert

-

MultiValue iterieren

Werte

Wert

-

Datasets iterieren

Workspace oder Feature-Dataset

Dataset

Name

Feature-Classes iterieren

Workspace oder Feature-Dataset

Feature-Class

Name

Dateien iterieren

Ordner

Datei

Name

Raster iterieren

Workspace oder Raster-Katalog

Raster-Dataset

Name

Tabellen iterieren

Workspace

Tabelle

Name

Workspaces iterieren

Ordner

Workspace

Name

HinweisHinweis:

  • Pro Modell kann nur ein Iterator verwendet werden. Die Optionen zum Hinzufügen eines anderen Iterators werden deaktiviert, wenn ein Iterator im Modell vorhanden ist.
  • Wenn einem Modell ein Iterator hinzugefügt wird, durchlaufen alle Werkzeuge im Modell jeden Wert im Iterator. Wenn Sie nicht jedes Werkzeug im Modell für jeden durchlaufenen Wert ausführen möchten, erstellen Sie ein untergeordnetes Modell/Modell im Modell/verschachteltes Modell, das nur den Iterator enthält, und fügen Sie es als Modellwerkzeug zum Hauptmodell hinzu.
  • Wenn ein Modell, das einen Iterator enthält, in ein Python-Skript exportiert wird, enthält das Skript die Iterationslogik nicht. Dem Skript kann Python-Auflistungslogik hinzugefügt werden, um einen ähnlichen Effekt zu erzielen.
  • Wenn in einem Modell ein Iterator verwendet wird, wird in den Iterationsoptionen in den Modelleigenschaften der Standardwert -1 festgelegt. Das bedeutet einfach, dass das Modell unendlich oft oder auf Grundlage der Anzahl von Eingaben in einen Iterator ausgeführt wird und nicht eine festgelegte Anzahl von Malen.
  • Die Ausgabe jedes mit dem Iterator verbundenen Werkzeugs kann (falls erforderlich) über einen eindeutigen Namen für jede Iteration verfügen, um ein Überschreiben zu verhindern. Hierzu gibt es folgende Möglichkeiten:
    • Verwenden der Systemvariablen %n%, z. B. C:\Sctatch\scratch.gdb\output_%n%.
    • Verwenden der im Modell verwendeten "Name"- oder "Value"-Ausgabe des Iterators als direkte Variable, z. B. C:\Sctatch\scratch.gdb\output_%Name%, C:\Sctatch\scratch.gdb\output_%Value%.
    • Verwenden einer anderen Variablen im Modell als direkte Variable, bei der Variablen "XYZ" kann der Name der Ausgabe z. B. C:\Scratch\scratch.gdb\output_%XYZ% lauten. (Für diese Variable sollte kein konstanter Wert verwendet werden.)
  • Werkzeugausgaben mit einem Häkchen neben Zur Anzeige hinzufügen werden der Anzeige in ArcMap unter Verwendung des Variablennamens hinzugefügt. Wenn die Ausgaben aller Iterationen der Anzeige in ArcMap mit dem eigentlichen eindeutigen Ausgabenamen anstelle des Namens der Variable hinzugefügt werden sollen, verbinden Sie die anzuzeigende Ausgabe mit dem Werkzeug Werte erfassen, und klicken Sie dann mit der rechten Maustaste auf die Ausgabe von Werte erfassen, um die Option Zur Anzeige hinzufügen auszuwählen. Wenn das Modell über das Modellwerkzeugdialogfeld ausgeführt wird, legen Sie die Ausgabe von Werte erfassen als Modellparameter fest, da nur die Ausgabemodellparameter der Anzeige hinzugefügt werden.

Ältere VersionenÄltere Versionen:

Iteratoren ersetzen die Reihenoption in den Modelleigenschaften, die in ArcGIS-Versionen vor 10 verfügbar war.

Weitere Informationen


7/10/2012