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 |
---|---|
For | Iteriert mit einer bestimmten Häufigkeit. |
While | Iteriert, bis eine bestimmte Variable oder Bedingung True oder False lautet. |
Feature-Auswahl iterieren | Durchläuft jedes Feature in einer Feature-Class oder eine Gruppe von Features mit gemeinsamen Attributen. |
Zeilenauswahl iterieren | Durchläuft jeden Datensatz in einer Tabelle oder eine Gruppe von Datensätzen mit gemeinsamen Attributen. |
Feldwerte iterieren | Durchläuft jeden Wert in einem Feld. |
Mehrere Werte iterieren | Durchläuft jeden Wert in einer Liste von Eingabewerten. |
Datasets iterieren | Durchläuft jedes Dataset in einem Workspace. |
Feature-Classes iterieren | Durchläuft jede Feature-Class in einem Workspace. |
Dateien iterieren | Durchläuft jede Datei in einem Ordner. |
Raster iterieren | Durchläuft jedes Raster in einem Workspace. |
Tabellen iterieren | Durchläuft jede Tabelle in einem Workspace. |
Workspaces iterieren | Durchläuft jeden Workspace wie eine Geodatabase in einem Ordner. |
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 Eingabe-Feature-Class 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 Projekt 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 Projekt, um sie als Eingabe zu verwenden, und verwenden Sie die Variable Name und die direkte Variablenersetzung, um jede Ausgabe aus dem Werkzeug Projekt 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 Projekt mit dem Werkzeug Feld hinzufügen, um ein neues Feld hinzuzufügen.