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)
    Im oben erwähnten Ausdruck würde dieser Zellenposition (true) im Ausgabe-Raster 10 zugewiesen, wenn der Wert einer Zelle in InRas kleiner als 15 ist; andernfalls, wenn die Zellenwerte größer oder gleich 15 sind, wird im Ausgabe-Raster 1 (false) zugewiesen.
  • Wenn kein Wert oder Ausdruck für die false-Ausdrücke angegeben wird:
    OutRas = Con(InRas < 15, 10)
    Die Ergebnisse entsprechen der oben aufgeführten Ausgabe, mit der Ausnahme, dass Zellen, deren Wert 15 oder höher ist, "NoData" zugewiesen wird.
  • 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))
    Im oben aufgeführten Ausdruck werden der Sinus aller Werte größer als 5 und der Kosinus aller Werte gleich oder kleiner 5 berechnet, und die Ergebnisse werden an OutRas gesendet.
  • 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)))
    Im oben aufgeführten Ausdruck wird der Sinus für jene Werte berechnet, die kleiner als 5 sind; der Kosinus wird für die Werte berechnet, die gleich oder größer 5 aber kleiner als 20 sind; die Werte, die 20 oder größer, aber kleiner gleich 50 sind, werden 0 zugewiesen, und die Werte größer als 50 werden 100 zugewiesen.
  • In einem bedingten Ausdruck des Werkzeugs Con können mehrere Bedingungen verwendet werden.
    OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 100)
    Im oben aufgeführten Ausdruck wird die Position 5 zugewiesen, wenn der Eingabewert von InRas1 größer als 5 und kleiner als 10 ist; andernfalls wird sie 100 zugewiesen.
  • 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))
    Die Eingabe mehrerer Raster ist möglich, da das Werkzeug Con für jede XY-Zellenposition vor dem Übergang zur nächsten Zelle ausgewertet wird. Wenn mehrere Raster eingegeben werden, erfolgt die Verarbeitung des angegebenen Operators oder des Werkzeugs auf Zellenbasis zwischen den Rastern.

Verwandte Themen


7/10/2012