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 Werkzeuge | Beschreibung |
---|---|
Wertet die Eingabedaten für das angegebene Koordinatensystem aus. | |
Überprüft, ob die angegebenen Daten vorhanden sind. | |
Überprüft, ob die Eingabedaten dem angegebenen Datentyp entsprechen. | |
Wertet aus, ob ein bestimmter Python-Ausdruck True oder False entspricht. | |
Überprüft, ob eine Feature-Class dem angegebenen Feature-Typ entspricht. | |
Überprüft, ob die Eingabedaten die angegebenen Felder aufweisen. | |
Überprüft, ob die Werte in einem Attributfeld einem angegebenen Wert oder Ausdruck oder zweiten Feld entsprechen. | |
Wertet die Zeilenanzahl der Eingabedaten aus und prüft, ob diese einem bestimmten Wert entspricht. | |
Prüft, ob die Eingabedaten eine Auswahl enthalten und ob eine bestimmte Anzahl der Datensätze ausgewählt wurde. | |
Überprüft, ob die Eingabedaten eine bestimmte räumliche Beziehung enthalten. | |
Wertet einen Eingabewert mittels eines definierten Vergleichsoperators im Vergleich zu einem einzelnen Wert, einer Liste von Werten oder einem Wertebereich aus. | |
Zwei oder mehrere logische Verzweigungen in eine einzelne Ausgabe zusammenführen. | |
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.
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".
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.