Beschriftung | Erläuterung | Datentyp |
Eingabe-Features | Die Eingabe-Feature-Class oder der Eingabe-Feature-Layer, aus der bzw. dem der neue Layer erstellt wird. Komplexe Feature-Classes wie Annotation- und Dimension-Feature-Classes sind als Eingaben nicht zulässig. | Feature Layer |
Ausgabe-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 |
Ausdruck (optional) | Ein SQL-Ausdruck, mit dem eine Feature-Teilmenge ausgewählt wird. Wenn es sich bei der Eingabe um einen Layer mit einer vorhandenen Definitionsabfrage handelt und für diesen Parameter eine WHERE-Klausel angegeben wird, werden im Ausgabe-Layer beide WHERE-Klauseln mit dem Operator "AND" kombiniert. Beispiel: Wenn der Eingabe-Layer die WHERE-Klausel "ID > 10" aufweist und dieser Parameter auf "ID < 20" festgelegt wird, lautet die WHERE-Klausel des Ausgabe-Layers "ID > 10 AND ID < 20". | SQL Expression |
Workspace oder Feature-Dataset (optional) | Der zum Überprüfen der Feldnamen verwendete Eingabe-Workspace. Wenn die Eingabe eine Geodatabase-Tabelle und der Ausgabe-Workspace eine dBASE-Tabelle ist, können die Feldnamen verkürzt sein, da dBASE-Felder nur Namen mit maximal zehn Zeichen aufweisen können. | Workspace; Feature Dataset |
Feld-Info (optional) | Der Felder aus der Eingabe, die umbenannt und in der Ausgabe als sichtbar festgelegt werden. Eine Teilungsmethode kann angegeben werden. | Field Info |
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 der Festplatte gespeichert oder das Kartendokument wird gespeichert.
Verwendung
Der temporäre Feature-Layer kann mit dem Werkzeug In Layer-Datei speichern als Layer-Datei gespeichert werden oder mit dem Werkzeug Features kopieren als neue Feature-Class.
Komplexe Feature-Classes wie Annotation- und Dimension-Feature-Classes werden nicht unterstützt.
Wird ein SQL-Ausdruck verwendet, aber nichts zurückgegeben, bleibt die Ausgabe leer.
Die Feldnamen werden durch die Angabe eines Eingabe-Workspace überprüft. Wenn also die Eingabe eine Geodatabase-Feature-Class und der Ausgabe-Workspace ein Ordner ist, können die Feldnamen verkürzt sein, da Shapefile-Attribute nur Namen mit maximal zehn Zeichen aufweisen können.
Eine Teilungsmethode kann mit der Option Verhältnis des Parameters Feld-Info festgelegt werden. Die Teilungsmethode tritt 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ältnis 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. Die Richtlinie Verhältnis gilt nur für numerische Feldtypen.
Der Standardwert ist "Keine" (deaktiviert). Das bedeutet, dass das Attribut der zwei entstehenden Features eine Kopie des ursprünglichen Attributwertes des Objekts annimmt.
Vorsicht:
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 temporär gekennzeichnet ist. Ist sie als temporär gekennzeichnet, wird sie nach Ausführung des Modells gelöscht, und der Ausgabe-Layer wird der Anzeige nicht hinzugefügt.
In einem Modell kann die Ausgabevariable für das Werkzeug Feature-Layer erstellen einer Layer-Datei zugewiesen werden, deren Symbolisierung auf den zu erstellenden Layer angewendet wird. Wenn der erstellte Layer als Ausgabeparameter des Modells oder Skriptwerkzeugs an eine Karte zurückgegeben wird, wird die Symbolisierung aus der Layer-Datei beibehalten, die Beschriftungseigenschaften jedoch nicht. Wenn der Layer, der mit dem Werkzeug Feature-Layer erstellen (in einem Modell) erstellt wurde, als permanente Daten in einer Feature-Class oder einem Shapefile gespeichert wird und diese permanenten Daten als Ausgabeparameter in der Karte zurückgegeben werden, werden die Beschriftungseigenschaften aus der Layer-Datei korrekt angewendet.
Wenn es sich beim Parameterwert Eingabe-Features um einen Layer handelt, werden die Symbolisierung, Auswahl und Definitionsabfrage der Eingabe in den Ausgabe-Layer übertragen.
Parameter
arcpy.management.MakeFeatureLayer(in_features, out_layer, {where_clause}, {workspace}, {field_info})
Name | Erläuterung | Datentyp |
in_features | Die Eingabe-Feature-Class oder der Eingabe-Feature-Layer, aus der bzw. dem der neue Layer erstellt wird. Komplexe Feature-Classes wie Annotation- und Dimension-Feature-Classes sind als Eingaben 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. Weitere Informationen zur SQL-Syntax finden Sie im Hilfethema SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke. Wenn es sich bei der Eingabe um einen Layer mit einer vorhandenen Definitionsabfrage handelt und für diesen Parameter eine WHERE-Klausel angegeben wird, werden im Ausgabe-Layer beide WHERE-Klauseln mit dem Operator "AND" kombiniert. Beispiel: Wenn der Eingabe-Layer die WHERE-Klausel "ID > 10" aufweist und dieser Parameter auf "ID < 20" festgelegt wird, lautet die WHERE-Klausel des Ausgabe-Layers "ID > 10 AND ID < 20". | SQL Expression |
workspace (optional) | Der zum Überprüfen der Feldnamen verwendete Eingabe-Workspace. Wenn die Eingabe eine Geodatabase-Tabelle und der Ausgabe-Workspace eine dBASE-Tabelle ist, können die Feldnamen verkürzt sein, da dBASE-Felder nur Namen mit maximal zehn Zeichen aufweisen können. | Workspace; Feature Dataset |
field_info (optional) | Der Felder aus der Eingabe, die umbenannt und in der Ausgabe als sichtbar festgelegt werden. Eine Teilungsmethode kann angegeben werden. | Field Info |
Codebeispiel
Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion MakeFeatureLayer im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = "C:/data/input"
arcpy.management.MakeFeatureLayer("parcels.shp", "parcels_lyr")
Das folgende eigenständige Skript veranschaulicht, wie mit der Funktion MakeFeatureLayer ein Layer für die Funktionen SelectLayerByLocation und SelectLayerByAttribute erstellt werden kann.
# Name: makefeaturelayer_example_2.py
# Description: Uses MakeFeatureLayer with custom field info as input to Intersect
# Import system modules
import arcpy
from arcpy import env
# Set overwrite option
arcpy.env.overwriteOutput = True
# Set data path
cityboundaries = "C:/data/City.gdb/boundaries"
countyboundaries = "C:/data/City.gdb/counties"
# Get the fields from the input
fields= arcpy.ListFields(cityboundaries)
# Create a fieldinfo object
fieldinfo = arcpy.FieldInfo()
# Iterate through the input fields and add them to fieldinfo
for field in fields:
if field.name == "POPULATION":
# Set the Population to have a ratio split policy
fieldinfo.addField(field.name, field.name, "VISIBLE", "RATIO")
else:
fieldinfo.addField(field.name, field.name, "VISIBLE", "NONE")
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management(cityboundaries, "city_boundaries_lyr", fieldinfo)
# Intersect cities and counties, splitting city population proportionally by county
arcpy.Intersect_analysis([["city_boundaries_lyr"],[countyboundaries]], "memory/intersected_city_counties")