Iteratoren

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.

IteratorBeschreibung

For

Durchläuft einen Start- und Endwert nach einem angegebenen Wert.

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.

Feature-Auswahl iterieren

Durchläuft Features in einer Feature-Class.

Feldwerte iterieren

Durchläuft jeden Wert in einem Feld.

Felder durchlaufen

Durchläuft Felder in einer Tabelle.

Dateien iterieren

Durchläuft Dateien in einem Ordner.

Mehrere Werte iterieren

Durchläuft eine Liste von Werten.

Layer iterieren

Iteriert Layer in einer Karte.

Raster iterieren

Durchläuft Raster in einem Workspace.

Zeilenauswahl iterieren

Durchläuft Zeilen in einer Tabelle.

Tabellen iterieren

Durchläuft Tabellen in einem Workspace.

Workspaces iterieren

Durchläuft Workspaces in einem Ordner.

While

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.

Feature-Classes iterieren

ElementBeschreibung
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:

  1. Geben Sie einen Eingabe-Workspace wie eine Geodatabase an, um jede Feature-Class in diesem Workspace zu durchlaufen.
  2. Geben Sie einen Platzhalter und einen Feature-Typ (im Beispiel werden nur Polygon-Feature-Classes einbezogen, deren Name mit dem Buchstaben I beginnt) an.
  3. 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.
  4. Verbinden Sie die Ausgabe des Werkzeugs Projizieren mit dem Werkzeug Feld hinzufügen, um ein neues Feld hinzuzufügen.
Iterator-Beispiel