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 werden.
Wird ein SQL-Ausdruck verwendet, aber nichts zurückgegeben, bleibt die Ausgabe leer.
Mit dem Steuerelement Feld-Info kann Feldnamen ein neuer Name zugewiesen werden. Die zweite Spalte im Steuerelement gibt die vorhandenen Feldnamen aus der Eingabe an. Um ein Feld umzubenennen, klicken Sie auf den Feldnamen, und geben Sie einen neuen Namen ein.
Im Steuerelement Feld-Info definierte Feldnamen werden in nachfolgenden Werkzeugen berücksichtigt. Wenn dieses Werkzeug jedoch das letzte Werkzeug in einem Modell ist, werden die Feldnamen aus den Quelldaten auf der Festplatte abgerufen. Um die Feldnamen beizubehalten, muss der neue Layer mit den Werkzeugen Zeilen kopieren oder Features kopieren in einen neuen Datensatz geschrieben werden.
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. Die neuen Namen können mit dem Steuerelement Feld-Info geprüft und geändert werden.
Über die Eigenschaft für die Sichtbarkeit des Steuerelements Feld-Info kann für einen Teil der Felder festgelegt werden, dass sie im neuen Layer nicht verfügbar sind. Die dritte Spalte im Steuerelement bietet eine Dropdown-Option für die Angabe, ob ein Feld im neuen Layer ein- oder ausgeblendet wird. Die Standardeinstellung ist "TRUE". Durch die Auswahl von "FALSE" wird das Feld ausgeblendet. Sie können die ausgeblendeten Felder nicht in einem Workflow verwenden, wenn der neu erstellte Layer die Eingabe für einen nachfolgenden Prozess oder ein Werkzeug ist. Wenn die Ausgabe auf die Festplatte gespeichert wird, werden in den neuen Daten nur die als sichtbar angegebenen Felder angezeigt.
Eine Teilungsmethode kann mit der Option Verhältnismethode verwenden des Steuerelements Feld-Info 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.
Der Standardwert ist "Keine" (deaktiviert). Das bedeutet, dass das Attribut der zwei entstehenden Features eine Kopie des ursprünglichen Attributwertes des Objekts annimmt.
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.
In einem Modell kann die Ausgabevariable des Werkzeugs Feature-Layer erstellen über die die Symbolisierung auf den erstellten Layer angewendet werden soll. 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 von dem Werkzeug Feature-Layer erstellen (in einem Modell) erstellte Layer jedoch als permanente Daten (Feature-Class oder Shapefile) gespeichert wird und diese permanenten Daten als Ausgabeparameter an die Karte zurückgegeben werden, werden die Beschriftungseigenschaften aus der Layer-Datei richtig angewendet.
Das Muster für die Eingabe einer Quell-Feature-Class für dieses Werkzeug ist die Einbeziehung aller Datenstrukturebenen bis nach unten zur Feature-Class, z. B. C:\my.gdb\feature_dataset\feature_class_name. Bei einer Parcel-Fabric gibt es jedoch eine zusätzliche Ebene (die Fabric-Struktur), die Sie für die Eingabe in dieses Werkzeug nicht verwenden müssen. Wenn der Katalogpfad zu einem Flurstück beispielsweise C:\my.gdb\feature_dataset\fabric_str\feature_class_name lautet, schließen Sie den Teil fabric_str aus dem Pfad aus.
Syntax
arcpy.management.MakeFeatureLayer(in_features, out_layer, {where_clause}, {workspace}, {field_info})
Parameter | Erklärung | Datentyp |
in_features | Die Eingabe-Feature-Class oder der Eingabe-Feature-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. Weitere Informationen zur SQL-Syntax finden Sie in dem Hilfethema SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke. | 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. 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 für das Python-Fenster veranschaulicht, wie die Funktion MakeFeatureLayer im unmittelbaren Modus verwendet wird.
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
# 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
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja