Feature-Layer erstellen (Data Management)

Zusammenfassung

Erstellt einen Feature-Layer aus einer Eingabe-Feature-Class oder einer Layer-Datei. Der erstellte Layer ist temporär und nur für die Dauer der Sitzung vorhanden, es sei denn, der Layer wird auf Festplatte gespeichert oder das Kartendokument wird gespeichert.

Verwendung

Syntax

MakeFeatureLayer_management (in_features, out_layer, {where_clause}, {workspace}, {field_info})
ParameterErläuterungDatentyp
in_features

Die Eingabe-Feature-Class oder der Layer zur Erstellung des neuen Layers. Komplexe Feature-Classes wie Annotation- und Dimension-Feature-Classes sind als Eingaben in dieses Werkzeug nicht zulässig.

Feature Layer
out_layer

Der Name des zu erstellenden Feature-Layers. Der neu erstellte Layer kann als Eingabe bei jedem beliebigen Geoverarbeitungswerkzeug verwendet werden, für das Feature-Layer eingegeben werden können.

Feature Layer
where_clause
(optional)

Ein SQL-Ausdruck, mit dem eine Feature-Teilmenge ausgewählt wird. Die genaue Syntax für den Ausdruck hängt von der Datenquelle ab. Wenn Sie beispielsweise File- oder ArcSDE-Geodatabases bzw. Shapefiles oder Coverages 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
workspace
(optional)

Der Eingabe-Workspace zur Validierung der Feldnamen. Wenn eine Geodatabase-Tabelle eingegeben wird und der Ausgabe-Workspace eine dBASE-Tabelle ist, kann es vorkommen, dass die Feldnamen abgeschnitten werden, da die Länge von dBASE-Feldern zehn Zeichen nicht überschreiten darf. Die neuen Namen können mit dem Steuerelement für Feldinformationen geprüft und geändert werden.

Workspace;Feature Dataset
field_info
(optional)

Dient zur Prüfung und Änderung von Feldnamen und zum Ausblenden einer Teilmenge von Feldern im Ausgabe-Layer. Eine Teilungsmethode kann angegeben werden. Weitere Informationen finden Sie in den Verwendungsmöglichkeiten.

Field Info

Codebeispiel

MakeFeatureLayer - Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion "MakeFeatureLayer" im unmittelbaren Modus verwenden können.

import arcpy

arcpy.env.workspace = "C:/data/input"
arcpy.MakeFeatureLayer_management("parcels.shp", "parcels_lyr")



MakeFeatureLayer - Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript veranschaulicht, wie mit der Funktion "MakeFeatureLayer" ein Layer für die Werkzeuge "SelectLayerByLocation" und "SelectLayerByAttribute" erstellt werden kann.

# Name: ExtractFeaturesByLocationAndAttribute.py
# Description:  Extracts features to a new feature class based on a location and an attribute query.

# Import system modules
import arcpy
from arcpy import env

# Set overwrite option
arcpy.env.overwriteOutput = True

# Put in error trapping in case an error occurs when running tool
try:

   # Make a layer from the feature class
   arcpy.MakeFeatureLayer_management("C:/data/mexico.gdb/cities","cities_lyr")

   # Select all cities that overlap the chihuahua polygon
   arcpy.SelectLayerByLocation_management("cities_lyr", "INTERSECT", "c:/data/mexico.gdb/chihuahua", "", "NEW_SELECTION")

   # Within the selection (done above) further select only those cities that have a population >10,000
   arcpy.SelectLayerByAttribute_management("cities_lyr", "SUBSET_SELECTION", "POPULATION > 10000")

   # Write the selected features to a new featureclass
   arcpy.CopyFeatures_management("cities_lyr", "c:/data/mexico.gdb/chihuahua_10000plus")

except:
   print arcpy.GetMessages()

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Ja
ArcEditor: Ja
ArcInfo: Ja

11/13/2014