If-Else-Bedingungen (Spatial Analyst)

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

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.

Lesen Sie die Dokumentation, um weitere Informationen zur SQl-Referenz für in ArcGIS verwendete Abfrageausdrücke und zum Festlegen einer Abfrage in Python zu erhalten.

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 *
arcpy.CheckOutExtension = "Spatial"
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"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# 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")

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Erfordert Spatial Analyst
ArcEditor: Erfordert Spatial Analyst
ArcInfo: Erfordert Spatial Analyst

7/10/2012