Mit der Spatial 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"
Bild
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 im Abfrage-Builder 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 Value-Feldes 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})
Parameter | Erläuterung | Datentyp |
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
Name | Erläuterung | Datentyp |
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")
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Erfordert Spatial Analyst
- ArcGIS for Desktop Standard: Erfordert Spatial Analyst
- ArcGIS for Desktop Advanced: Erfordert Spatial Analyst