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
Verwendung
Wenn das true-Raster 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 das Eingabe-Bedingungs-Raster (in_conditional_raster in Python) ein Einzelband-Raster ist und Eingabe-Raster oder Eingabe-Wert wenn Bedingung WAHR (in_true_raster_or_constant in Python) oder Eingabe-Raster oder Eingabe-Wert wenn Bedingung FALSCH (optional) (in_false_raster_or_constant in Python) ein konstanter Wert ist, ist die Ausgabe ein Einzelband-Raster.
Wenn alle Eingaben Multiband-Raster sind, dann ist auch die Ausgabe ein Multiband-Raster. Das Ausgabe-Raster ist ebenfalls ein Multiband-Raster, wenn "Eingabe-Raster, wenn Bedingung WAHR" oder "Eingabe-Raster, wenn Bedingung FALSCH" (optional) ein konstanter Wert ist. Die Anzahl an Bändern in jeder Multiband-Eingabe muss identisch sein.
Das Werkzeug führt den Vorgang für jedes Band aus dem Bedingungs-Raster mit dem entsprechenden Band aus den anderen Eingaben durch. Wenn die Eingabe-Bedingung ein Multiband-Raster ist und "Eingabe-Raster, wenn Bedingung WAHR" bzw. "Eingabe-Raster, wenn Bedingung FALSCH" ein konstanter Wert ist, führt das Werkzeug den Vorgang für jedes Band in der Multiband-Eingabe mit dem konstanten Wert durch.
Wenn die Auswertung für den Ausdruck ungleich 0 ist, wird er als "true" behandelt.
Wenn für Eingabe-Raster oder Eingabe-Wert, wenn Bedingung FALSCH kein Raster bzw, kein konstanter Wert angegeben wurde, wird den Zellen, die auf Basis dieses Ausdrucks nicht "true" 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-Klausel ({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 neu geschrieben 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 | Erklärung | 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 | Erklärung | Datentyp |
out_raster | Das Ausgabe-Raster. | Raster |
Codebeispiel
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, andernfalls 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")
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")
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")
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")
In diesem Beispiel, ist der Ausgabewert 1, wenn der Wert des Eingabe-Bedingungs-Rasters größer oder gleich 1.500 ist, andernfalls 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")
Umgebungen
Lizenzinformationen
- Basic: Erfordert Spatial Analyst oder Image Analyst
- Standard: Erfordert Spatial Analyst oder Image Analyst
- Advanced: Erfordert Spatial Analyst oder Image Analyst