Layer nach Attributen auswählen (Data Management)
Zusammenfassung
Hiermit wird eine Auswahl in einem Layer oder einer Tabellensicht auf Grundlage einer Attributabfrage hinzugefügt, aktualisiert oder entfernt.
Verwendung
-
Als Eingabe ist ein Feature-Layer oder eine Tabellensicht zulässig. Es kann sich nicht um eine Feature-Class oder Tabelle handeln.
-
Dieses Werkzeug eignet sich für Layer oder Tabellensichten im ArcMap-Inhaltsverzeichnis oder für mit einem Skript erstellte Layer oder Tabellensichten unter Nutzung der Werkzeuge Feature-Layer erstellen und Tabellensicht erstellen.
-
Wenn im Eingabe-Layer oder der Tabellensicht eine Ausdehnungsumgebung oder Definitionsabfrage vorhanden ist, können nur die Features oder Zeilen ausgewählt werden, die innerhalb der Ausdehnung liegen oder mit der Definitionsabfrage übereinstimmen.
-
Mit dem Werkzeug Anzahl erhalten kann die Anzahl der ausgewählten Features oder Zeilen bestimmt werden. Dies kann besonders in einem Skript oder Modell nützlich sein, um herauszufinden, ob eine weitere Verarbeitung gewünscht ist.
Syntax
Parameter | Erläuterung | Datentyp |
in_layer_or_view |
Der Feature-Layer oder die Tabellensicht, auf die die Auswahl angewendet wird. Als Eingabe sind ein Layer oder eine Tabellensicht aus dem ArcMap-Inhaltsverzeichnis oder in ArcCatalog oder einem Skript mithilfe der Werkzeuge "Feature-Layer erstellen" und "Tabellensicht erstellen" erstellte Layer oder Tabellensichten zulässig. | Table View; Raster Layer; Mosaic Layer |
selection_type (optional) |
Legt fest, wie die Auswahl angewendet wird, und welche Aktion ausgeführt wird, wenn bereits eine Auswahl vorhanden ist.
| String |
where_clause (optional) |
Ein SQL-Ausdruck, mit dem eine Teilmenge der Datensätze ausgewählt wird. Die genaue Syntax für den Ausdruck hängt von der Datenquelle ab. Wenn Sie beispielsweise File- oder ArcSDE-Geodatabases, Shapefiles, Coverages oder dBASE-/INFO-Tabellen abfragen, schließen Sie Feldnamen in doppelte Anführungszeichen ein: "MY_FIELD" Wenn Sie Personal-Geodatabases abfragen, schließen Sie die Felder in eckige Klammern ein: [MY_FIELD] In Python werden Zeichenfolgen in zusammenpassende einfache oder doppelte Anführungszeichen eingeschlossen. Um eine Zeichenfolge zu erstellen, die Anführungszeichen enthält (wie bei einer WHERE-Klausel in SQL-Ausdrücken üblich), können Sie die Anführungszeichen (durch einen umgekehrten Schrägstrich) mit Escapezeichen versehen oder die Zeichenfolge mit dreifachem Anführungszeichen versehen. Wenn die gewünschte WHERE-Klausel z. B. "CITY_NAME" = 'Chicago' lautet, könnten Sie die ganze Zeichenfolge in doppelte Anführungszeichen einschließen und dann die inneren doppelten Anführungszeichen wie folgt mit Escapezeichen versehen: " \"CITY_NAME\" = 'Chicago' " Oder Sie könnten die ganze Zeichenfolge in einfache Anführungszeichen einschließen und dann die inneren einfachen Anführungszeichen wie folgt mit Escapezeichen versehen: ' "CITY_NAME" = \'Chicago\' ' Oder Sie könnten die ganze Zeichenfolge in dreifache Anführungszeichen ohne Escapezeichen einschließen: """ "CITY_NAME" = 'Chicago' """ Weitere Informationen zur SQL-Syntax und zu den Unterschieden zwischen Datenquellen finden Sie im Hilfethema SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke. | SQL Expression |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "SelectLayerByAttribute" im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr")
arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
Das folgende eigenständige Skript zeigt, wie mit der Funktion "SelectLayerByAttributes" Features auf Grundlage von Position und einer Attributabfrage in eine neue Feature-Class extrahiert werden.
# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial relationships to another layer AND an attribute query
# Author: ESRI
# Import system modules
import arcpy
# Set the workspace
env.workspace = "c:/data/mexico.gdb"
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("cities", "lyr")
# Select all cities which overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("lyr", "intersect", "chihuahua", 0, "new_selection")
# Within selected features, further select only those cities which have a population > 10,000
arcpy.SelectLayerByAttribute_management("lyr", "SUBSET_SELECTION", ' "population" > 10000 ')
# Write the selected features to a new featureclass
arcpy.CopyFeatures_management("lyr", "chihuahua_10000plus")