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 If-Then-Else-Logik über die integrierten logischen Werkzeuge oder benutzerdefinierte Python-Funktionen und -Skriptwerkzeuge hinzugefügt werden.

Logische Werkzeuge

Mit logischen Werkzeugen können Sie den Prozessfluss in einem Modell steuern und die If-Then-Else-Logik für Verzweigungen aktivieren.

Logische WerkzeugeBeschreibung

Wenn Koordinatensystem gleich

Wertet die Eingabedaten für das angegebene Koordinatensystem aus.

Wenn Daten vorhanden

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

Wenn Datentyp gleich

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

Wenn Ausdruck gleich

Wertet aus, ob ein bestimmter Python-Ausdruck True oder False entspricht.

Wenn Feature-Typ gleich

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

Wenn Feld vorhanden

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

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 Auswahl vorhanden

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

Wenn räumliche Beziehung vorhanden

Ü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

Zwei oder mehrere logische Verzweigungen in eine einzelne Ausgabe zusammenführen.

Stopp

Beendet die Iterationsschleife eines Modells, wenn die Eingabewerte auf "True" oder "False" gesetzt sind. Für den Satz von Eingabewerten wird die Iteration fortgesetzt, wenn alle Eingabewerte "True" sind, bzw. angehalten, wenn einer der Eingabewerte "False" ist. Die Funktionalität ähnelt dem Werkzeug 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 logischer Werkzeuge in ModelBuilder

Python

Zusätzlich zu den integrierten logischen Werkzeugen in ModelBuilder können Sie eigene Funktionen und Werkzeuge schreiben, 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 die booleschen Variablen "True" und "False" ausgibt, dann aus dem Skript ein Skriptwerkzeug für die Geoverarbeitung erstellen und das Skriptwerkzeug dem 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, wird vor der Ausführung des Werkzeugs Standorte hinzufügen die Eingabe mit dem Werkzeug Feature in Punkt konvertiert. Das Werkzeug Verzweigungen zusammenführen führt die True- und False-Verzweigungen zusammen, sodass das Werkzeug Berechnen für beide Verzweigungen 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 die 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, Greater Than 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 dem Werkzeug 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 Stoppen kann ein Modell basierend auf einer Bedingung fortgesetzt oder beendet werden.