Beispiel der Verwendung eines Iterators in einem Modell
Um die Verwendung eines Iterators zu erklären, wird im Modellbeispiel unten der Iterator Feature-Classes iterieren herangezogen, mit dem jede Feature-Class in einem Workspace projiziert wird, jede Ausgabe des Werkzeugs Projizieren auf Basis des Eingabenamens unter Verwendung der direkten Variablenersetzung benannt wird und jeder Feature-Class ein neues Feld hinzugefügt wird.
- Ein Eingabe-Workspace wird für Feature-Classes iterieren angegeben, um jede Feature-Class in diesem Workspace zu durchlaufen.
- Die zu durchlaufenden Feature-Classes werden durch die Angabe eines Platzhalters und Feature-Typs festgelegt (nur Polygon-Feature-Classes mit einem Namen, der mit I beginnt, werden durchlaufen).
- Bei Feature-Classes iterieren werden zwei Ausgaben erzeugt: die durchlaufene Feature-Class und der Name der Feature-Class. Die Feature-Class-Variable wird als Eingabe mit dem Werkzeug Projekt verbunden, und die Feature-Class-Namensvariable wird verwendet, damit die Ersetzung von Inline-Variablen jede Ausgabe des Werkzeugs Projekt mit dem gleichen Namen der Eingabe-Feature-Class dynamisch benennt.
- Jeder Feature-Class wird ein neues Feld hinzugefügt, indem eine Verbindung zum Werkzeug Feld hinzufügen hergestellt wird.
Hinweis:
- 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.
Verwandte Themen
7/10/2012