Skip To Content

If-Else-Bedingungen

Mit der Spatial Analyst-Lizenz verfügbar.

Mit der Image Analyst-Lizenz verfügbar.

Zusammenfassung

Wertet die einzelnen Eingabezellen eines Eingabe-Rasters anhand von If-Else-Bedingungen aus.

Weitere Informationen zum Durchführen von Bedingungsauswertungen mit "If-Else-Bedingungen"

Abbildung

Abbildung: If-Else-Bedingungen
OutRas = Con(InRas1, 40, 30, "Value >= 2")

Verwendung

  • Wenn das true-Raster und/oder das optionale false-Raster den Typ "Gleitkomma" aufweist, werden auch für das Ausgabe-Raster Gleitkommazahlen verwendet. Wenn sowohl der true-Ausdruck als auch das optionale false-Raster ganzzahlig sind, ist das Ausgabe-Raster ganzzahlig.

  • Wenn die Auswertung für den Ausdruck ungleich 0 ist, wird er als "True" (wahr) behandelt.

  • Wenn kein Eingabe-Raster oder keine Konstante angegeben wird, wird den Zellen, die aus dem Ausdruck nicht "True" (wahr) ergeben, der Wert "NoData" zugewiesen.

  • Wenn "NoData" dem Ausdruck nicht genügt, erhält er nicht den Wert des false-Eingabe-Rasters; es bleibt bei "NoData".

  • Der Ausdruck verwendet eine SQL-Abfrage. Weitere Informationen zum Erstellen von Abfragen finden Sie in den folgenden Themen:

  • Um eine "{where_clause}" in Python verwenden zu können, muss diese in Anführungszeichen eingeschlossen werden. Zum Beispiel "Value > 5000".

    In der Hilfe erhalten Sie weitere Informationen zum Festlegen einer Abfrage in Python.

  • In Python können Sie die Verwendung einer {where_clause} zur Angabe des Wertefeldes vermeiden, indem Sie stattdessen einen Map Algebra-Ausdruck als in_conditional_raster verwenden.

    Beispielsweise kann der folgende Ausdruck:

    • Con("elev", 0, 1, "value > 1000")

    wie folgt umgeschrieben werden:

    • Con(Raster("elev") > 1000, 0, 1)

    Weitere Informationen finden Sie in den unten aufgeführten Codebeispielen oder unter Erstellen von komplexen Anweisungen in Map Algebra.

  • Die maximale Länge des logischen Ausdrucks ist 4.096 Zeichen.

  • Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.

Syntax

Con (in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
ParameterErläuterungDatentyp
in_conditional_raster

Eingabe-Raster, das das wahre oder falsche Ergebnis der gewünschten Bedingung darstellt.

Das Raster kann ein Ganzzahl- oder Gleitkomma-Raster sein.

Raster Layer
in_true_raster_or_constant

Die Eingabe, deren Werte als Ausgabezellenwerte verwendet werden, wenn die Bedingung wahr (true) ist.

Das Raster kann ein Ganzzahl- oder Gleitkomma-Raster oder ein konstanter Wert sein.

Raster Layer; Constant
in_false_raster_or_constant
(optional)

Die Eingabe, deren Werte als Ausgabezellenwerte verwendet werden, wenn die Bedingung falsch (false) ist.

Das Raster kann ein Ganzzahl- oder Gleitkomma-Raster oder ein konstanter Wert sein.

Raster Layer; Constant
where_clause
(optional)

Ein logischer Ausdruck, der bestimmt, welche der Eingabezellen wahr (true) und welche falsch (false) sind.

Der Ausdruck entspricht der allgemeinen Form eines SQL-Ausdrucks. Ein Beispiel einer where_clause ist "VALUE > 100".

SQL Expression

Rückgabewert

NameErläuterungDatentyp
out_raster

Das Ausgabe-Raster.

Raster

Codebeispiel

Con – Beispiel 1 (Python-Fenster)

In diesem Beispiel wird der ursprüngliche Wert in der Ausgabe beibehalten, wenn das Eingabe-Bedingungs-Raster größer als der Wert 2.000 ist, anderenfalls wird der Wert "NoData" verwendet.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/sapyexamples/output/outcon.img")

# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(Raster("elevation") > 2000, "elevation")
outCon2.save("C:/sapyexamples/output/outcon2")
Con – Beispiel 2 (Python-Fenster)

In diesem Beispiel wird der ursprüngliche Wert in der Ausgabe beibehalten. Eine Ausnahme ist der NoData-Wert, der durch den Wert 0 ersetzt wird.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con(IsNull("elevation"),0, "elevation")
outCon.save("C:/sapyexamples/output/outcon")
Con – Beispiel 3 (Python-Fenster)

In diesem Beispiel werden zwei unterschiedliche Raster verwendet, um das Bedingungs-Raster zu erstellen.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
inRaster1 = Raster("landuse")
inRaster2 = Raster("landuse2")
outCon = Con(((inRaster1 == 1) & (inRaster2 == 5)), inRaster1 + inRaster2, 99)
outCon.save("C:/sapyexamples/output/outcon")
Con – Beispiel 4 (Python-Fenster)

Bei diesem Beispiel werden mehrere Con-Werkzeuge in einem Con verwendet.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
inRas1 = Raster("inRaster")
outCon = Con(inRas1 < 45,1, Con((inRas1 >= 45) & (inRas1 < 47),2, Con((inRas1 >= 47) & (inRas1 < 49),3, Con(inRas1 >= 49,4))))
outCon.save("C:/sapyexamples/output/outcon")
Con – Beispiel 5 (eigenständiges Skript)

In diesem Beispiel, ist der Ausgabewert 1, wenn der Wert des Eingabe-Bedingungs-Rasters größer oder gleich 1.500 ist, anderenfalls wird der Ausgabe-Wert 0 verwendet.

# Name: Con_Ex_02.py
# Description: Performs a conditional if/else evaluation 
#              on each cell of an input raster.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = Raster("elevation")
inTrueRaster = 1
inFalseConstant = 0
whereClause = "VALUE >= 1500"

# Execute Con
outCon = Con(inRaster, inTrueRaster, inFalseConstant, whereClause)

# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(inRaster >= 1500, inTrueRaster, inFalseConstant)

# Save the outputs 
outCon.save("C:/sapyexamples/output/outcon")
outCon2.save("C:/sapyexamples/output/outcon2")

Lizenzinformationen

  • ArcGIS Desktop Basic: Erfordert Spatial Analyst oder Image Analyst
  • ArcGIS Desktop Standard: Erfordert Spatial Analyst oder Image Analyst
  • ArcGIS Desktop Advanced: Erfordert Spatial Analyst oder Image Analyst

Verwandte Themen