Set Null (Spatial Analyst)
Zusammenfassung
"Set Null" legt für identifizierte Zellpositionen auf Grundlage eines angegebenen Kriteriums den Wert "NoData" fest. "NoData" wird zurückgegeben, wenn eine Bedingungsauswertung "true" (wahr) ergibt, und ein durch ein anderes Raster angegebener Wert, wenn die Bedingungsauswertung "false" (falsch) ergibt.
Weitere Informationen zum Festlegen von Zellenwerten auf "NoData" mit dem Werkzeug "Set Null"
Abbildung
Verwendung
-
Wenn die Auswertung für die Where-Klausel den Wert "true" (wahr) ergibt, wird der Zellenposition im Ausgabe-Raster der Wert "NoData" zugewiesen. Wenn die Auswertung den Wert "false" (falsch) ergibt, wird das Ausgabe-Raster durch das Eingabe-false-Raster oder einen konstanten Wert definiert.
-
Wenn keine Where-Klausel angegeben wird, hat das Ausgabe-Raster überall dort den Wert "NoData", wo das Bedingungs-Raster nicht 0 ist.
-
Das Eingabe-Bedingungs-Raster beeinflusst nicht, ob der Ausgabedatentyp Ganzzahl oder Gleitkomma ist. Wenn das Eingabe-false-Raster (bzw. der konstante Wert) Gleitkommawerte enthält, handelt es sich beim Ausgabe-Raster ebenfalls um Gleitkommazahlen. Wenn es ausschließlich Ganzzahlwerte enthält, wird ein Ganzzahl-Raster ausgegeben.
-
Die maximale Länge des logischen Ausdrucks ist 4.096 Zeichen.
-
In Python sollte die Where-Klausel ‑ {where_clause} ‑ in Anführungszeichen eingeschlossen werden, z. B. "Value > 5".
Syntax
Parameter | Erläuterung | Datentyp |
in_conditional_raster |
Eingabe-Raster, das das wahre oder falsche Ergebnis der gewünschten Bedingung darstellt. | Raster Layer |
in_false_raster_or_constant |
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
Name | Erläuterung | Datentyp |
out_raster |
Das Ausgabe-Raster. Wenn die Bedingungsauswertung "true" (wahr) ergibt, wird "NoData" zurückgegeben. Bei "false" (falsch) wird der Wert des zweiten Eingabe-Rasters zurückgegeben. | Raster |
Codebeispiel
In diesem Beispiel werden alle Eingabezellen mit einem Wert kleiner 0 im Ausgabe-Raster auf "NoData" festgelegt, und die übrigen Zellen behalten ihren ursprünglichen Wert bei.
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outSetNull = SetNull("elevation", "elevation", "VALUE < 0") outSetNull.save("C:/sapyexamples/output/outsetnull.img")
In diesem Beispiel wird jede Eingabezelle mit einem Wert ungleich 7 auf "NoData" festgelegt und Zellen mit dem Wert 7 erhalten in der Ausgabe den Wert 1.
# Name: SetNull_Ex_02.py # Description: Returns NoData if a conditional evaluation is # true and returns the value specified by another # raster if it is false, on a cell-by-cell basis. # 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 = "landclass" inFalseRaster = 1 whereClause = "VALUE <> 7" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute SetNull outSetNull = SetNull(inRaster, inFalseRaster, whereClause) # Save the output outSetNull.save("C:/sapyexamples/output/outsetnull")