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
-
Der temporäre Feature-Layer kann mit dem Werkzeug In Layer-Datei speichern als Layer-Datei oder mit dem Werkzeug Features kopieren als neue Feature-Class gespeichert werden.
-
Komplexe Feature-Classes wie Annotation- und Dimension-Feature-Classes werden von diesem Werkzeug nicht unterstützt.
-
In ArcCatalog erstellte Layer können nur dann in ArcMap verwendet werden, wenn sie mit dem Werkzeug In Layer-Datei speichern als Layer-Datei gespeichert wurden.
Wenn ein verwendeter SQL-Ausdruck keine Ergebnisse zurückgibt, ist die Ausgabe leer.
Feldnamen können mit dem Steuerelement Feld-Info geändert werden. Die aus der Eingabe vorhandenen Feldnamen werden in der zweiten Spalte der Steuerung aufgelistet. Um ein Feld umzubenennen, klicken Sie auf den Namen und geben einen neuen Namen ein.
Neue Feldnamen, die Sie mit dem Werkzeug Feld-Info definieren, werden in nachfolgenden Werkzeugen berücksichtigt. Falls dieses Werkzeug das letzte Werkzeug in einem Modell ist, werden die Feldnamen aus den Quelldaten auf dem Datenträger abgerufen. Um neue Feldnamen beizubehalten, muss der neue Layer mit den Werkzeugen Zeilen kopieren oder Features kopieren als neue Daten geschrieben werden.
Sie können die Feldnamen überprüfen, indem Sie ein Eingabe-Workspace angeben. Wenn eine Geodatabase-Feature-Class eingegeben wird und der Ausgabe-Workspace ein Ordner ist, kann es vorkommen, dass die Feldnamen abgeschnitten werden, da die Namen für Shapefile-Attribute eine Länge von zehn Zeichen nicht überschreiten dürfen. Die neuen Namen können mit dem Steuerelement Feld-Info geprüft und geändert werden.
Sie können die Verfügbarkeit für eine Teilmenge von Feldern im neuen Layer deaktivieren, indem Sie die "visible"-Eigenschaft des Steuerelements Feld-Info verwenden. Die dritte Spalte des Steuerelements enthält eine Dropdown-Option, über die Sie angeben können, ob ein Feld im neuen Layer ein- oder ausgeblendet wird. Die Standardeinstellung ist TRUE. Durch Auswahl von FALSE wird das entsprechende Feld ausgeblendet, es ist also nicht sichtbar. Sie können die ausgeblendeten Felder nicht in einem Workflow verwenden, falls der neu erstellte Layer in einen nachfolgenden Prozess oder ein nachfolgendes Werkzeug eingegeben wird. Wenn die Ausgabe auf Datenträger gespeichert wird, werden nur die als sichtbar gekennzeichneten Felder in den neuen Daten angezeigt.
-
Eine Teilungsmethode kann unter Feld-Info mit der Option Verhältnismethode verwenden festgelegt werden. Die Teilungsmethode tritt immer dann in Kraft, wenn der Feature-Layer für ein Werkzeug als Eingabe verwendet wird und eine Geometrie des Eingabe-Feature-Layers während der Verarbeitung geteilt wird. Wird die geteilte Geometrie an die Ausgabe gesendet, wird für den Ausgabe-Attributwert ein Verhältnis zum Eingabe-Attributwert berechnet. Ist die Option Verhältnismethode verwenden aktiviert, stellen die Attribute des resultierenden Features bei jeder Teilung eines Features in einem Überlagerungsvorgang ein Verhältnis des Attributwertes des Eingabe-Features dar. Der Ausgabewert basiert auf dem Verhältnis, in dem die Eingabe-Feature-Geometrie geteilt wurde. Wenn die Geometrie beispielsweise in gleiche Teile geteilt wurde, wird dem Attributwert jedes neuen Features der halbe Wert des Attributwertes des Eingabe-Features zugewiesen. "Verhältnismethode verwenden" gilt nur für numerische Feldtypen.
Diese Option ist standardmäßig deaktiviert. Das bedeutet, dass das Attribut der zwei entstehenden Features eine Kopie des ursprünglichen Attributwertes des Objekts annimmt.
Achtung:Geoverarbeitungswerkzeuge berücksichtigen die Teilungsmethoden von Geodatabase-Feature-Class- oder -Tabellenfeldern nicht.
-
Wenn Sie mit ModelBuilder ein Werkzeug erstellen, stellen Sie sicher, dass die Eingabedatenvariable für das Werkzeug nicht als "dazwischenliegend" gekennzeichnet ist. Ist sie als "dazwischenliegend" gekennzeichnet, wird sie nach Ausführung des Modells aus dem zugehörigen Dialogfeld gelöscht, und der Ausgabe-Layer wird der Anzeige nicht hinzugefügt.
Syntax
Parameter | Erläuterung | Datentyp |
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
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")
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()