Bedingungsauswertung mit Con
Mit dem Werkzeug Con können Sie den Ausgabewert für jede Zelle auf Grundlage dessen steuern, ob der Zellenwert in einer festgelegten Bedingungsanweisung als wahr (true) oder falsch (false) ausgewertet wird.
Wenn die Zelle als true ausgewertet wird, erhält sie einen Wert; wenn sie als false ausgewertet wird, erhält sie einen anderen Wert. Die Werte, die eine Zelle erhalten soll, wenn sie als true ausgewertet wird, werden vom Input true raster or constant value angegeben. Die Werte, die eine Zelle erhalten soll, wenn sie als false ausgewertet wird, werden vom Input false raster or constant value angegeben.
Im Grunde untersucht das Werkzeug Con während der Ausführung jede Zellenposition und bestimmt auf Grundlage des Wertes der Zelle und der Bedingungsanweisung, ob die Zelle als true oder false ausgewertet wird. Wenn die Zelle als true ausgewertet wird, wird der Ausgabewert für diese Position in der true-Eingabe identifiziert. Wenn die Zelle als false ausgewertet wird, wird der Ausgabewert für diese Position in der false-Eingabe identifiziert.
In der Geoverarbeitungsumgebung gibt es zwei Möglichkeiten zu identifizieren, ob eine Zellenposition als true oder false ausgewertet wird: durch ein Eingabe-Raster oder ein Eingabe-Raster, auf das ein optionaler Eingabeausdruck angewendet wird. Wenn nur ein Eingabe-Raster verwendet wird, werden alle Nicht-Null-Werte im Eingabe-Raster als true und alle Null-Werte als false angesehen. Zellen, denen "NoData" zugewiesen wurde, erhalten NoData als Ausgabe. NoData ist nicht gleichzusetzen mit false.
Eine Reihe von Spatial Analyst-Werkzeugen kann verwendet werden, um ein Bedingungs-Eingabe-Raster zu erstellen. Insbesondere die logischen Werkzeuge in der Toolbox Math können verwendet werden, von denen das Werkzeug Test besonders nützlich ist.
Verwenden des Werkzeugs Con in Map Algebra
Um eine Bedingungsauswertung eines Raster-Datasets in Map Algebra durchzuführen, geben Sie das Raster-Dataset als Bedingungs-Raster in das Werkzeug Con ein. Geben Sie ein true-Raster ein, um zurückgegebene Werte zu erhalten, wenn die Bedingungsauswertung wahr ist. Geben Sie ein false-Raster ein, um zurückgegebene Werte zu erhalten, wenn die Bedingungsauswertung falsch ist. Der where-Klausel-Parameter definiert den Ausdruck, der gegen das Eingabe-Bedingungs-Raster ausgewertet werden soll.
Beispiel
Wenn Sie zum Beispiel einer Zelle den Wert 10 (identifiziert als true-Konstante) zuweisen möchten, was bedeutet, dass eine Konstruktion möglich ist, und 1 (identifiziert als false-Konstante), was bedeutet, dass eine Konstruktion nicht möglich ist, und dies auf Grundlage der Neigung einer Zelle erfolgen soll (durch das Eingabe-Bedingungs-Raster identifiziert), wobei weniger als 15 Prozent Neigung als gut angesehen werden, würden Sie den Ausdruck "value < 15" eingeben. Wenn eine Zelle weniger als 15 Prozent Neigung hat, erhält sie den Wert true (in diesem Fall, 10); andernfalls erhält sie den durch false identifizierten Wert (in diesem Fall, 1).
OutRas = Con(SlopeRas, 10, 1, "VALUE < 15")
Verwenden von komplexen Ausdrücken mit dem Werkzeug Con in Map Algebra
In Map Algebra kann mit dem Ausdruck mehr Funktionalität als mit einer einfachen logischen Bedingung erzielt werden. Bei einem komplexen Ausdruck können Sie z. B. mehrere einzelne Ausdrücke ineinander verschachteln, mehrere Raster angeben oder andere Werkzeuge und Operatoren verwenden.
Jeder gültiger Map-Algebra-Ausdruck, der zu einem Raster führt, kann als Argument für jede der Eingabe-, Bedingungs-, true- oder false-Raster-Eingaben verwendet werden.
Beachten Sie, dass der Parameter <where_clause> ausgelassen werden sollte, wenn der Eingabe-Bedingungs-Raster-Ausdruck in einem komplexen Ausdruck verwendet wird. In diesem Fall hat die Syntax des Werkzeugs Con die folgende verallgemeinerte Form:
Con(in_conditional_raster, true_raster, {false_raster})Der <where_clause>-Parameter wird in diesem Fall ausgelassen, da das Bedingungs-Raster vom Map-Algebra-Ausdruck bereitgestellt wird, der ein Raster-Dataset zurückgeben würde, z. B. mit den Werten 0 und 1, wenn es sich um eine logische Operation handelt.
Beispiele
- Dies ist ein Beispiel der Verwendung eines komplexen Ausdrucks im Werkzeug Con:
OutRas = Con(InRas < 15, 10, 1)
- Wenn kein Wert oder Ausdruck für die false-Ausdrücke angegeben wird:
OutRas = Con(InRas < 15, 10)
- Jeder gültige Ausdruck kann anstelle eines Wertes für die <true_expression>- und <false_expression>-Argumente verwendet werden.
OutRas = Con(InRas1 > 5, Sin(InRas1), Cos(InRas1))
- Innerhalb des Werkzeugs Con können mehrere Bedingungsanweisungen verwendet werden, aber jede muss über einen Wert oder einen <true_expression>-Ausdruck verfügen, der verwendet werden kann, um den Ausgabezellen Werte zuzuweisen, wenn das Ergebnis der Auswertung für die Bedingung true ist. Der optionale Wert oder der Ausdruck {false_expression} kann angewendet werden, wenn keines der Ergebnisse der Auswertungen für die Bedingungen true ist.
OutRas = Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))
- In einem bedingten Ausdruck des Werkzeugs Con können mehrere Bedingungen verwendet werden.
OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 100)
- Werkzeuge und Operatoren können im Bedingungsausdruck auf die Eingabe-Raster angewendet und die Ergebnisse ausgewertet werden.
OutRas = Con(Sin(InRas1) > .5, 10, 100) OutRas2 = Con((InRas1 + InRas2) > 10, 100, 5) OutRas3 = Con(InRas1 > 5, Cos(InRas1), Sin(InRas1))
- Ein Con-Werkzeug kann innerhalb eines anderen Con-Werkzeugs geschachtelt werden.
OutRas = Con(InRas1 > 23, 5, Con(InRas1 > 20, 12, Con((InRas1 > 2) & (InRas1 < 17), Sin(InRas1), 100)))
- Mehrere Raster können in der Bedingungsanweisung oder dem Ausdruck verwendet werden, der für die Zellen durchgeführt werden soll.
OutRas = Con(InRas1 + InRas2 > 7, Sin(InRas1), Cos(InRas2)) OutRas2 = Con(InRas1 < 9, InRas1 * InRas2 + Tan(InRas3), Cos(InRas1))