Iteration, häufig auch Wiederholung oder Batch-Verarbeitung 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.
Hinweis:
- Pro Modell kann nur ein Iterator verwendet werden. Die Schaltfläche zum Hinzufügen eines anderen Iterators wird 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 nicht jedes Werkzeug im Modell für jeden iterierten Wert ausgeführt werden soll, erstellen Sie ein anderes Modell, und fügen Sie nur den Iterator und die Prozesse hinzu, die mehrfach ausgeführt werden sollen, nehmen Sie eine Speicherung vor, und fügen Sie es im Hauptmodell als ein Modellwerkzeug hinzu. Erfahren Sie mehr über das Hinzufügen eines untergeordneten Modells zu einem Modell.
- Verwenden Sie Inline-Variablenersetzung, um die Ausgabe eines Werkzeugs, das mit einem Iterator verbunden ist, eindeutig zu benennen.
Es stehen einige Iteratoren in ModelBuilder zur Verfügung, die Sie für die Iteration über unterschiedliche Werte, Datasets und Workspaces verwenden können.
Iterator | Beschreibung |
---|---|
Durchläuft einen Start- und Endwert nach einem angegebenen Wert. | |
Durchläuft Datasets in einem Workspace oder einem Feature-Dataset. | |
Durchläuft Feature-Classes in einem Workspace oder einem Feature-Dataset. | |
Durchläuft Features in einer Feature-Class. | |
Durchläuft jeden Wert in einem Feld. | |
Durchläuft Felder in einer Tabelle. | |
Durchläuft Dateien in einem Ordner. | |
Durchläuft eine Liste von Werten. | |
Iteriert Layer in einer Karte. | |
Durchläuft Raster in einem Workspace. | |
Durchläuft Zeilen in einer Tabelle. | |
Durchläuft Tabellen in einem Workspace. | |
Durchläuft Workspaces in einem Ordner. | |
Iteriert, bis eine Bedingung wahr wird oder bis eine Bedingung falsch wird. |
Hinzufügen und Verwenden eines Iterators
Klicken Sie zum Hinzufügen eines Iterators zu Ihrem Modell auf ModelBuilder > Einfügen > Iterator, und nehmen Sie in der Liste der Iteratoren eine Auswahl vor. 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.
Doppelklicken sie auf das Iteratorelement zum Anzeigen und Ändern seiner Eigenschaften. Alle Iteratoren sind sich ähnlich, wobei jeder Iterator über Einstellungen verfügt, die möglicherweise von denen anderer Iteratoren abweichen. Ein häufig verwendeter Iterator namens Feature-Classes iterieren wird unten erläutert.
Element | Beschreibung |
---|---|
Workspace | Eingabe-Workspace (wie eine Geodatabase) oder ein Feature-Dataset. |
Platzhalter | Kombination von * und Zeichen, die die Ergebnisse einschränken. Beispielsweise bedeutet A*, dass nur mit A beginnende Feature-Classes einbezogen werden. Diese Angabe ist optional. |
Feature-Typ | Ein Feature-Typ-Filter, der dabei hilft, die Ergebnisse zu begrenzen. Die gebräuchlichsten sind Point, Line und Polygon. Diese Angabe ist optional. |
Rekursiv | Bestimmt, ob der Iterator die Unterordner im Workspace berücksichtigt. Diese Angabe ist optional. |
Ausgabe-Feature-Class | Ausgabevariable, die den Pfad der Feature-Class enthält. Diese Variable kann als Eingabe zu allen Geoverarbeitungswerkzeugen verwendet werden, die Feature-Layer oder Feature-Klassen akzeptieren. |
Name | Ausgabevariable, die den Namen der Feature-Class enthält. Hierbei handelt es sich um eine Zeichenfolge. |
Für Feature-Classes iterierenist ein Eingabe-Workspace (die Variable mit dem Namen "Workspace" in der obigen Grafik) erforderlich, wo alle zu iterierenden Feature-Classes gespeichert werden. Es werden die drei zusätzlichen Einstellungen Platzhalter, Feature-Typ und Rekursiv verwendet, um zu beschränken, welche Feature-Classes im Workspace iteriert werden, und um die Iteration in Unterordnern im Workspace zu steuern.
Feature-Classes iterieren verfügt über zwei Ausgabevariablen: eine Feature-Class und den Namen der Feature-Class. Die Feature-Class-Variable kann mit dem nächsten Werkzeug zur weiteren Verarbeitung verbunden werden, und die Variable Name kann zur direkten Variablenersetzung verwendet werden.
Beispiel
Im folgenden Beispiel wird der Iterator Feature-Classes iterieren verwendet, um jede Feature-Class in einem Workspace in eine neue Kartenprojektion zu projizieren. Der Name jeder neuen Feature-Class, die durch das Werkzeug Projizieren erstellt wurde, wird auf Basis der Eingabe Name mithilfe der direkten Variablenersetzung benannt. Zusätzlich wird jeder Ausgabe-Feature-Class ein neues Feld hinzugefügt. Befolgen Sie diese allgemeinen Schritte, nachdem ModelBuilder der Iterator Feature-Classes iterieren hinzugefügt wurde:
- Geben Sie einen Eingabe-Workspace wie eine Geodatabase an, um jede Feature-Class in diesem Workspace zu durchlaufen.
- Geben Sie einen Platzhalter und einen Feature-Typ (im Beispiel werden nur Polygon-Feature-Classes einbezogen, deren Name mit dem Buchstaben I beginnt) an.
- Feature-Classes iterieren generiert zwei Ausgaben: die Feature-Class (Ausgabe-Feature-Class) und den Namen der Feature-Class (Name). Verbinden Sie die Variable Ausgabe-Feature-Class mit dem Werkzeug Projizieren, um sie als Eingabe zu verwenden, und verwenden Sie die Variable Name und die direkte Variablenersetzung, um jede Ausgabe aus dem Werkzeug Projizieren mit demselben Namen wie die Eingabe-Feature-Class zu benennen. Die Ausgabe des WerkzeugsProjekt wird in eine andere Geodatabase geschrieben.
- Verbinden Sie die Ausgabe des Werkzeugs Projizieren mit dem Werkzeug Feld hinzufügen, um ein neues Feld hinzuzufügen.