Nach Attributen extrahieren (Spatial Analyst)

Zusammenfassung

Extrahiert die Zellen eines Rasters auf Basis einer logischen Abfrage.

Abbildung

Abbildung: Nach Attributen extrahieren
OutRas = ExtractByAttributes(InRas1, "Value > 0")

Verwendung

  • Zusätzliche Attribute aus dem Eingabe-Raster, sofern vorhanden, werden unverändert in die Attributtabelle des Ausgabe-Rasters übernommen. Je nach Eigenschaft, die erfasst wird, müssen einige der Attributwerte möglicherweise neu berechnet werden.

  • Wenn ein Multiband-Raster als Eingabe-Raster-Wert (in_raster in Python) angegeben wird, werden alle Bänder verwendet.

    Wenn eine Auswahl von Bändern aus einem Multiband-Raster verarbeitet werden soll, erstellen Sie zunächst mit dem Werkzeug Bänder zusammensetzen ein Raster-Dataset, das aus den betreffenden Bändern besteht. Verwenden Sie dann das Ergebnis als Eingabe-Raster-Wert (in_raster in Python).

    Das Standardausgabeformat ist ein Geodatabase-Raster. Wenn ein Esri Grid Stack als Ausgabeformat angegeben wurde, beachten Sie, dass der Stack-Name nicht mit einer Zahl beginnen, keine Leerzeichen enthalten und nicht mehr als 9 Zeichen aufweisen darf.

  • Wenn die Where-Klausel "true" (wahr) ergibt, wird der ursprüngliche Eingabewert für die Zellenposition zurückgegeben. Wenn er "false" (falsch) ergibt, wird der Zellenposition der Wert "NoData" zugewiesen.

  • Die Where-Klausel 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.

  • Wenn ein anderes Element als Value des Eingabe-Rasters in der Abfrage angegeben wird, wird der ursprüngliche Eingabewert für die Zellenposition zurückgegeben.

  • Bei einem ganzzahligen Eingabe-Raster ist auch das Ausgabe-Raster ganzzahlig. Wenn die Eingaben Gleitkommawerte sind, ist die Ausgabe ebenfalls ein Gleitkommawert.

  • Weitere Informationen zu den Geoverarbeitungsumgebungen für dieses Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster

Das Eingabe-Raster, aus dem Zellen extrahiert werden.

Raster Layer
WHERE-Klausel

Ein logischer Ausdruck, der eine Teilmenge von Raster-Zellen auswählt.

Die Where-Klausel entspricht der allgemeinen Form eines SQL-Ausdrucks. Er kann direkt eingegeben werden, z. B. VALUE > 100, indem Sie auf die Schaltfläche SQL-Bearbeitungsmodus SQL-Abfrage klicken. Im Modus "Klausel bearbeiten" Klausel bearbeiten können Sie mit dem Erstellen des Ausdrucks beginnen, indem Sie auf die Schaltfläche Modus "Klausel hinzufügen" klicken.

SQL Expression

Rückgabewert

BeschriftungErläuterungDatentyp
Ausgabe-Raster

Das Ausgabe-Raster mit den Zellenwerten, die aus dem Eingabe-Raster extrahiert wurden.

Raster

ExtractByAttributes(in_raster, where_clause)
NameErläuterungDatentyp
in_raster

Das Eingabe-Raster, aus dem Zellen extrahiert werden.

Raster Layer
where_clause

Ein logischer Ausdruck, der eine Teilmenge von Raster-Zellen auswählt.

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 mit den Zellenwerten, die aus dem Eingabe-Raster extrahiert wurden.

Raster

Codebeispiel

ExtractByAttributes – Beispiel 1 (Python-Fenster)

In diesem Beispiel werden Zellen auf Grundlage einer logischen Abfrage aus einem Raster extrahiert, wenn die Höhe 1.000 Meter übersteigt.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
attExtract = ExtractByAttributes("elevation", "VALUE > 1000") 
attExtract.save("c:/sapyexamples/output/attextract")
ExtractByAttributes – Beispiel 2 (eigenständiges Skript)

In diesem Beispiel werden Zellen auf Grundlage einer logischen Abfrage aus einem Raster extrahiert, wenn die Höhe 1.000 Meter übersteigt.

# Name: ExtractByAttributes_Ex_02.py
# Description: Extracts the cells of a raster based on a logical query. 
# 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 = "elevation"
inSQLClause = "VALUE > 1000"

# Execute ExtractByAttributes
attExtract = ExtractByAttributes(inRaster, inSQLClause) 

# Save the output 
attExtract.save("c:/sapyexamples/output/attextract02")

Verwandte Themen