If-Then-Else-Verzweigung und logische Werkzeuge

Die If-Then-Else-Logik ist ein Konzept zum Ausführen von Aktionen auf Grundlage verschiedener Bedingungen. Die If-Then-Else-Logik kann wie folgt erklärt werden: Wenn (IF) die Bedingung den Wert "wahr" (true) hat, wird eine Aktion ausgeführt; andernfalls (ELSE), also wenn die Bedingung den Wert "falsch" (false) hat, wird eine andere Aktion ausgeführt.

In ModelBuilder kann die If-Then-Else-Logik über die integrierten logischen Werkzeugen oder benutzerdefinierte Python-Funktionen und Skriptwerkzeuge hinzugefügt werden.

Logische Werkzeuge

Logische Werkzeuge sind eine Kategorie von ModelBuilder-Dienstprogrammen, mit denen Sie den Prozessfluss in einem Modell steuern und die If-Then-Else-Logik für Verzweigungen aktivieren können.

DienstprogrammBeschreibung

Wenn Daten vorhanden

Überprüft, ob die angegebenen Daten vorhanden sind.

Wenn Feld vorhanden

Überprüft, ob die Eingabedaten die angegebenen Felder aufweisen.

Wenn Auswahl vorhanden

Überprüft, ob die Eingabedaten eine Auswahl enthalten und ob eine bestimmte Anzahl der Datensätze ausgewählt wurde.

Wenn Koordinatensystem gleich

Wertet die Eingabedaten für das angegebene Koordinatensystem aus.

Wenn Datentyp gleich

Überprüft, ob die Eingabedaten dem angegebenen Datentyp entsprechen.

Wenn Feature-Typ gleich

Überprüft, ob eine Feature-Class dem angegebenen Feature-Typ entspricht.

Wenn Feldwert gleich

Überprüft, ob die Werte in einem Attributfeld einem angegebenen Wert oder Ausdruck oder zweiten Feld entsprechen.

Wenn Zeilenanzahl gleich

Wertet die Zeilenanzahl der Eingabedaten aus und prüft, ob diese einem bestimmten Wert entspricht.

Wenn räumliche Beziehung gleich

Überprüft, ob die Eingabedaten eine bestimmte räumliche Beziehung enthalten.

Wenn Wert gleich

Wertet einen Eingabewert mittels eines definierten Vergleichsoperators im Vergleich zu einem einzelnen Wert, einer Liste von Werten oder einem Wertebereich aus.

Verzweigungen zusammenführen

Mit dem Werkzeug Verzweigungen zusammenführen werden mindestens zwei logische Verzweigungen in eine Ausgabe zusammengeführt.

Stoppen

Die Iteration wird beendet, wenn alle Eingabewerte mit der angegebenen Bedingung "Wahr" oder "Falsch" übereinstimmen. Die Funktionalität ähnelt dem Iterator While. Das Werkzeug kann aber auch zum Beenden eines Modells verwendet werden, wenn im Modell ein While-Iterator enthalten ist und keine zusätzlichen Iteratoren hinzugefügt werden können.

Weitere Informationen zur Verwendung der logischen Werkzeuge in ModelBuilder

Python

Zusätzlich zu den integrierten logischen Werkzeugen in ModelBuilder können Sie eigene Funktionen und Werkzeuge entwickeln, um eine If-Then-Else-Verzweigung mit benutzerdefinierten Python-Funktionen im Werkzeug Wert berechnen durchzuführen. Diese Funktionen können mit verschiedenen ArcPy- und weiteren Python-Funktionen Bedingungen testen und die Booleschen Variablen True und False ausgeben. In ähnlicher Weise können Sie ein Python-Skript schreiben, das Bedingungen testet und boolesche true- und false-Variablen ausgibt und aus dem Skript ein Skriptwerkzeug für die Geoverarbeitung erstellen und das Skriptwerkzeug Ihrem Modell hinzufügen.

Informationen zu Bedingungen

Bevor Sie ein Systemwerkzeug auswählen oder benutzerdefinierte Skripte erstellen, sollten Sie sich zunächst mit der Bedingungslogik auf der Basis von Vektor- oder Raster-Daten-Typen vertraut machen.

Ein Modell nur ausführen, wenn eine Datei vorhanden ist

Im folgenden Beispiel wird mit dem Werkzeug Wenn Daten vorhanden geprüft, ob der betreffende Workspace Daten enthält; falls ja, wird das nächste Werkzeug Feld hinzufügen im Modell ausgeführt. Wenn keine Daten vorhanden sind, wird die Feature-Class aus einem Sicherungsspeicher kopiert, bevor ein Feld hinzugefügt wird.

Wenn Daten vorhanden – Beispiel

Ein Modell nur ausführen, wenn eine Eingabe ein bestimmtes Koordinatensystem aufweist

Im folgenden Beispiel wird mit dem Werkzeug Wenn Koordinatensystem gleich überprüft, ob der Wert für das Koordinatensystem in der Eingabe-Feature-Class GCS_WGS_1984 lautet. Wenn die boolesche Ausgabe False lautet, projiziert das Modell mithilfe des Werkzeugs Projizieren die Eingabe-Feature-Class in das Koordinatensystem "GCS_WGS_1984".

Wenn Koordinatensystem gleich – Beispiel

Ein Modell nur ausführen, wenn es sich bei einer Eingabe-Feature-Class um einen bestimmten Geometrietyp handelt

Im folgenden Beispiel wird mit dem Werkzeug Wenn Feature-Typ gleich überprüft, ob der Feature-Typ der Eingabe Punkt lautet. Wenn die Boolesche Ausgabe True lautet, wird das nächste Werkzeug Standorte hinzufügen ausgeführt. Wenn die boolesche Ausgabe False lautet, muss vor der Ausführung des Werkzeugs Standorte hinzufügen das Eingabewerkzeug Feature in Punkt konvertiert werden. Das Werkzeug Verzweigungen zusammenführen führt die True- und False-Verzweigungen zusammen, sodass das Werkzeug Aufgabe berechnen für eine beliebige Verzweigung ausgeführt werden kann.

Wenn Feature-Typ gleich – Beispiel

Feldwerte basierend auf einer Bedingung ändern

Im folgenden Beispiel wird mit dem Werkzeug Wenn Feldwert gleich überprüft, ob die Eingabe-Feature-Class Datensätze enthält, die im Feld Type den Wert A aufweisen. Wenn die boolesche Ausgabe True lautet, werden Features vom Typ A mit dem Werkzeug Layer nach Attributen auswählen ausgewählt und dann die Werte im Feld Description mit dem Werkzeug Feld berechnen geändert.

Wenn Feldwert gleich – Beispiel

Ein Modell nur ausführen, wenn eine SQL-Abfrage ausgewählte Features zum Ergebnis hat

Im nachfolgenden Beispiel wird mit dem Werkzeug Wenn Auswahl vorhanden überprüft, ob die Eingabe-Feature-Class über ausgewählte Features verfügt. Wenn die Boolesche Ausgabe True lautet, werden mit dem Werkzeug Feld berechnen die Werte des Feldes Description berechnet. Wenn die Boolesche Ausgabe False lautet, werden mit dem Werkzeug Layer nach Attributen auswählen Feldwerte ausgewählt und geändert.

Wenn Auswahl vorhanden – Beispiel

Ein Modell nur ausführen, wenn eine Eingabe einen bestimmten Datentyp aufweist

Im folgenden Beispiel wird mit dem Werkzeug Pfad analysieren eine Dateierweiterung abgerufen. Das Werkzeug Wenn Wert gleich prüft, ob die Erweiterung mit dem Parameter Werte übereinstimmt. Das Modell kopiert nur Raster-Daten mit der Erweiterung ".tif".

Wenn Wert gleich – Beispiel

Eine Boolesche Auswertung eines Rasters durchführen

Für die Boolesche Auswertung eines Rasters können die Werkzeuge Test, If-Else-Bedingungen, Größer als und Raster berechnen verwendet werden. Im folgenden Beispiel wird die Zelle bei einem Zellenwert größer als 2000 auf 1 (True) gesetzt und andernfalls auf 0 (False).

Raster-Auswertung (True oder False)

Eine Bedingungsauswertung eines Rasters durchführen

Für die Bedingungsauswertung eines Rasters kann das Werkzeug If-Else-Bedingungen oder Raster berechnen verwendet werden. Im folgenden Beispiel wird der Eingabewert bei einem Zellenwert größer als 2000 beibehalten und andernfalls auf "NoData" gesetzt. Wenn im Werkzeug If-Else-Bedingungen der Parameter Eingabe-Raster oder Eingabe-Wert wenn Bedingung FALSCH leer ist, wird der Wert auf "NoData" gesetzt. Optional können Sie für den Parameter Eingabe-Raster oder Eingabe-Wert wenn Bedingung FALSCH auch ein anderes Raster oder einen konstanten Wert angeben.

Raster-Auswertung mit If-Else-Bedingungen

Zellen mittels Abfrage aus einem Raster extrahieren

Mit den Werkzeugen Nach Attributen extrahieren, Raster-Layer erstellen und Layer nach Attributen auswählen können Zellen aus einem Raster extrahiert werden. In den folgenden Beispielen werden Methoden zur Erstellung von Rastern oder Raster-Layern mit Zellenwerten größer als 2000 vorgestellt.

Raster-Extraktion auf der Basis einer Abfrage

Zellen aus einem Raster mithilfe einer Abfrage extrahieren und auf "NoData" setzen

Mit den Werkzeugen Auf NULL setzen, Reklassifizieren und Raster berechnen können Zellen aus einem Raster extrahiert und auf "NoData" gesetzt werden. Wenn der Zellenwert größer ist als 2000, wird die Zelle auf "NoData" gesetzt; andernfalls wird der Wert der Eingabedaten verwendet.

Zellenwerte in einem Raster auf "NoData" setzen

NoData-Zellen aus einem Raster mithilfe einer Abfrage extrahieren und ändern

Mit den Werkzeugen Is Null, If-Else-Bedingungen oder Raster berechnen können NoData-Zellen aus einem Raster extrahiert und geändert werden. Im folgenden Beispiel wird die Zelle auf 0 gesetzt, wenn der Zellenwert "NoData" lautet, und andernfalls wird der Wert der Eingabedaten verwendet.

Wert von NoData-Raster-Zellen ändern

Ein Modell nur ausführen, wenn eine Raster-Eigenschaft einer bestimmten Bedingung entspricht

Wenn Sie zum Beispiel überprüfen möchten, ob der Mittelwert aller Zellen größer ist als 100, können Sie die Werkzeuge Raster-Eigenschaften abrufen und Wenn Wert gleich verwenden.

Die Ausführung eines Werkzeugs in einem Modell bedingungsbasiert fortsetzen oder beenden

Mit den Werkzeugen While und Beenden kann ein Modell basierend auf einer Bedingung fortgesetzt oder beendet werden.