Symbolisierung aus Layer anwenden (Datenmanagement)

Zusammenfassung

Wendet die Symbolisierung eines angegebenen Layers oder einer angegebenen Layer-Datei auf den Eingabe-Layer an. Das Werkzeug kann auf Feature-, Raster-, Netzwerkanalyse-, TIN- und geostatistische Layer angewendet werden.

Verwendung

  • Der Symbolisierungs-Layer muss mit dem Datentyp des Eingabe-Layers übereinstimmen. Es ist z. B. nicht möglich, einen Feature-Layer auf einen Raster-Layer (oder umgekehrt) anzuwenden.

  • Ebenso kann die Symbolisierung nur auf Features mit identischer Geometrie angewendet werden. Es ist also nicht möglich, eine Punkt-Symbolisierung auf einen Polygon-Layer anzuwenden.

  • Zusätzlich zur Symbolisierung überträgt das Werkzeug ebenfalls das Zeitfeld, 3D-Höhe und -Versatz, die Beschriftungsklasse und HTML-Pop-up-Eigenschaften.

  • Wenn es sich bei der Eingabe um eine Feature-Class oder einen Dataset-Pfad handelt, wird von diesem Werkzeug mit dem Ergebnis des angewendeten Werkzeugs automatisch ein neuer Layer erstellt und zurückgegeben.

  • Sie können die Symbolisierungsbereiche beibehalten oder mit dem Parameter Symbolisierungsbereiche nach Daten aktualisieren aktualisieren. Die Standardsymbolisierungsmethoden sind dynamisch. Wird beispielsweise die fünfklassige Klassifizierungsmethode "Natürliche Unterbrechungen" aus dem Symbolisierungs-Layer auf den Eingabe-Layer angewendet, werden die Bereichswerte aktualisiert, um die Shape_Area -Werte des Eingabe-Layers widerzuspiegeln. Die Option Bereiche beibehalten, verwendet dieselben Werte wie der Symbolisierungs-Layer. Bei der Option Bereiche aktualisieren wird die fünftklassige Klassifizierungsmethode "Natürliche Unterbrechungen" aus dem Feld Shape_Area des Eingabe-Layers verwendet.

    Abbildung des Werkzeugs "Symbolisierung aus Layer anwenden"

    Die folgenden Methoden sind dynamisch:

    • Einzelwertsymbolisierung zu einem Feature
      • Die Einzelwerte werden aktualisiert, um die Werte des Eingabe-Layers widerzuspiegeln.
      • Wenn Sie nicht möchten, dass die Einzelwertklassifizierung aktualisiert wird, können Sie im Symbolisierungs-Layer das Standardsymbol <alle anderen Werte> auswählen.
    • Symbolisierung "Abgestufte Farben" zu einem Feature
      • Die Bereichswerte werden auf die Werte des Eingabe-Layers aktualisiert.
      • Wenn Sie nicht möchten, dass die Ausgabe des Bereichs aktualisiert wird, können Sie die manuelle Klassifizierung auswählen.
    • Wert-Rendering "Klassifiziert" zu einem Raster
      • Die Bereichswerte werden aktualisiert, um die Werte des Eingabe-Layers widerzuspiegeln.
      • Wenn Sie nicht möchten, dass die Ausgabe des Bereichs aktualisiert wird, können Sie die manuelle Klassifizierung auswählen.

  • Wird der Parameter Symbolisierungsbereiche nach Daten aktualisieren auf Bereiche beibehalten gesetzt, werden die Beschriftungen aus dem Wert Symbolisierungs-Layer in den Wert Eingabe-Layer kopiert. Falls der Parameter auf Bereiche aktualisieren gesetzt wird, werden die Beschriftungen neu berechnet.

  • Die Symbolisierung besteht nur solange der Layer vorhanden ist. Ein Layer kann beibehalten werden, indem die AllSource-Sitzung gespeichert wird oder indem er unter Verwendung des Werkzeugs In Layer-Datei speichern in eine Layer-Datei gespeichert wird.

    Damit die in einem Skriptwerkzeug erstellte Symbolisierung angezeigt werden kann, muss das Werkzeug den Layer als abgeleiteten Ausgabeparameter enthalten. Dementsprechend muss der Wert des Parameters Aktualisierter Eingabe-Layer als abgeleiteter Modellparameter in einem Modellwerkzeug hinzugefügt werden, um die Änderungen der Symbolisierung anzuzeigen.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Layer

Der Layer, auf den die Symbolisierung angewendet wird.

Feature Layer; Raster Layer; Layer
Symbolisierungs-Layer

Der Layer, der die Symbolisierung enthält, wird dann auf den Eingabe-Layer angewendet. Sowohl .lyrx- als auch .lyr-Dateien werden unterstützt.

Layer
Symbolisierungsfelder
(optional)

Die Felder aus dem Eingabe-Layer, die mit den Symbolisierungsfeldern übereinstimmen, die im Symbolisierungs-Layer verwendet werden. Symbolisierungsfelder können drei Eigenschaften enthalten:

  • Feldtyp: Der Feldtyp – Symbolisierungswert, Normalisierung oder ein anderer Typ.
  • Quellfeld: Das Symbolisierungsfeld, das vom Symbolisierungs-Layer verwendet wird. Verwenden Sie einen leeren Wert oder "#", wenn Sie das Quellfeld nicht kennen und die Standardeinstellung verwenden möchten.
  • Zielfeld: Das Feld aus dem Eingabe-Layer, das beim Anwenden der Symbolisierung zu verwenden ist.

Die folgenden Feldtypen werden unterstützt:

  • Wertefeld: Primärfeld zur Symbolisierung von Werten
  • Normalisierungsfeld: Feld zur Normalisierung quantitativer Werte
  • Ausschlussklauselfeld: Feld für die Ausschlussklausel der Symbolisierung
  • Diagramm-Renderer-Kreisgröße-Feld: Feld zum Festlegen der Größe von Kreisdiagrammsymbolen
  • Rotation-X-Ausdruck-Feld: Feld zum Festlegen der Drehung von Symbolen auf der X-Achse
  • Rotation-Y-Ausdruck-Feld: Feld zum Festlegen der Drehung von Symbolen auf der Y-Achse
  • Rotation-Z-Ausdruck-Feld: Feld zum Festlegen der Drehung von Symbolen auf der Z-Achse
  • Transparenzausdrucksfeld: Feld zum Festlegen der Transparenz von Symbolen
  • Transparenznormalisierungsfeld: Feld zur Normalisierung von Transparenzwerten
  • Größenausdrucksfeld: Feld zum Festlegen der Größe oder Breite von Symbolen
  • Farbausdrucksfeld: Feld zum Festlegen der Farbe von Symbolen
  • Einfacher-Override-Ausdruck-Feld: Feld zum Festlegen verschiedener Eigenschaften für einzelne Symbol-Layer

Value Table
Symbolisierungsbereiche nach Daten aktualisieren
(optional)

Gibt an, ob Symbolisierungsbereiche aktualisiert werden.

  • StandardSymbolisierungsbereiche werden aktualisiert, außer unter den folgenden Bedingungen: Der Eingabe-Layer ist leer, der Symbolisierungs-Layer verwendet Klassengrenzen (z. B. abgestufte Farben oder abgestufte Symbole) und die Klassifizierungsmethode ist "Manuell" oder "Definiertes Intervall", oder der Symbolisierungs-Layer verwendet Einzelwerte und die Option Alle anderen Werte anzeigen ist aktiviert.
  • Bereiche aktualisierenSymbolisierungsbereiche werden aktualisiert.
  • Bereiche beibehaltenSymbolisierungsbereiche werden nicht aktualisiert, sondern beibehalten.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierter Eingabe-Layer

Der aktualisierte Eingabe-Layer.

Layer

arcpy.management.ApplySymbologyFromLayer(in_layer, in_symbology_layer, {symbology_fields}, {update_symbology})
NameErläuterungDatentyp
in_layer

Der Layer, auf den die Symbolisierung angewendet wird.

Feature Layer; Raster Layer; Layer
in_symbology_layer

Der Layer, der die Symbolisierung enthält, wird dann auf den Eingabe-Layer angewendet. Sowohl .lyrx- als auch .lyr-Dateien werden unterstützt.

Layer
symbology_fields
[[field_type, source_field, target_field],...]
(optional)

Die Felder aus dem Eingabe-Layer, die mit den Symbolisierungsfeldern übereinstimmen, die im Symbolisierungs-Layer verwendet werden. Symbolisierungsfelder können drei Eigenschaften enthalten:

  • Feldtyp: Der Feldtyp – Symbolisierungswert, Normalisierung oder ein anderer Typ.
  • Quellfeld: Das Symbolisierungsfeld, das vom Symbolisierungs-Layer verwendet wird. Verwenden Sie einen leeren Wert oder "#", wenn Sie das Quellfeld nicht kennen und die Standardeinstellung verwenden möchten.
  • Zielfeld: Das Feld aus dem Eingabe-Layer, das beim Anwenden der Symbolisierung zu verwenden ist.

Die folgenden Feldtypen werden unterstützt:

  • VALUE_FIELD: Primärfeld zur Symbolisierung von Werten
  • NORMALIZATION_FIELD: Feld zur Normalisierung quantitativer Werte
  • EXCLUSION_CLAUSE_FIELD: Feld für die Ausschlussklausel der Symbolisierung
  • CHART_RENDERER_PIE_SIZE_FIELD: Feld zum Festlegen der Größe von Kreisdiagrammsymbolen
  • ROTATION_XEXPRESSION_FIELD: Feld zum Festlegen der Drehung von Symbolen auf der X-Achse
  • ROTATION_YEXPRESSION_FIELD: Feld zum Festlegen der Drehung von Symbolen auf der Y-Achse
  • ROTATION_ZEXPRESSION_FIELD: Feld zum Festlegen der Drehung von Symbolen auf der Z-Achse
  • TRANSPARENCY_EXPRESSION_FIELD: Feld zum Festlegen der Transparenz von Symbolen
  • TRANSPARENCY_NORMALIZATION_FIELD: Feld zur Normalisierung von Transparenzwerten
  • SIZE_EXPRESSION_FIELD: Feld zum Festlegen der Größe oder Breite von Symbolen
  • COLOR_EXPRESSION_FIELD: Feld zum Festlegen der Farbe von Symbolen
  • PRIMITIVE_OVERRIDE_EXPRESSION_FIELD: Feld zum Festlegen verschiedener Eigenschaften für einzelne Symbol-Layer

Value Table
update_symbology
(optional)

Gibt an, ob Symbolisierungsbereiche aktualisiert werden.

  • DEFAULTSymbolisierungsbereiche werden aktualisiert, außer in den folgenden Situationen:
  • UPDATESymbolisierungsbereiche werden aktualisiert.
  • MAINTAINSymbolisierungsbereiche werden nicht aktualisiert, sondern beibehalten.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_layer

Der aktualisierte Eingabe-Layer.

Layer

Codebeispiel

ApplySymbologyFromLayer: Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion ApplySymbologyFromLayer im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data.gdb"
arcpy.management.ApplySymbologyFromLayer("sf_points", "sf_points_water.lyrx")
ApplySymbologyFromLayer: Beispiel 2 (eigenständiges Skript)

Das folgende Skript veranschaulicht, wie die Funktion ApplySymbologyFromLayer in einem eigenständigen Skript verwendet wird.


# Import system modules
import arcpy

# Set the current workspace
arcpy.env.workspace = "C:/data.gdb"

# Set layer to apply symbology to
inputLayer = "sf_points"

# Set layer that output symbology will be based on
symbologyLayer = "water_symbols_pnt.lyrx"

# Apply the symbology from the symbology layer to the input layer
arcpy.management.ApplySymbologyFromLayer(inputLayer, symbologyLayer)
ApplySymbologyFromLayer: Beispiel 3 (eigenständiges Skript)

Das folgende Skript veranschaulicht, wie die Funktion ApplySymbologyFromLayer in einem eigenständigen Skript verwendet wird.


# Import system modules
import arcpy

# Set the current workspace
arcpy.env.workspace = "C:/data.gdb"

# Set layer to apply symbology to
inputLayer = "InlandEmpireBlocks"

# Set layer that output symbology will be based on
symbologyLayer = "USCensusBlocks.lyrx"

# The symbology layer is symbolized by population normalized by area.
# Symbolize the input by Pop2014 field normalized to Square Miles
symbologyFields = [["VALUE_FIELD", "#", "Pop2014"], 
                   ["NORMALIZATION_FIELD", "#", "SQ_MILES"]]

# Apply the symbology from the symbology layer to the input layer
arcpy.management.ApplySymbologyFromLayer(inputLayer, symbologyLayer, 
                                         symbologyFields)
ApplySymbologyFromLayer: Beispiel 3 (Skriptwerkzeug)

Wenden Sie in einem Skriptwerkzeug die Symbolisierung auf mehrere abgeleitete Ausgabe-Feature-Layer an. Das Beispiel-Werkzeug hat die folgenden Parameter:

  • Eingabe-Layer
    • Datentyp: Feature-Layer (MultiValue)
    • Typ: Erforderlich
    • Richtung: Eingabe
  • Symbolisierung
    • Datentyp: Feature-Layer
    • Typ: Erforderlich
    • Richtung: Eingabe
  • Abgeleitete Ausgabe
    • Datentyp: Feature-Layer (MultiValue)
    • Typ: Abgeleitet
    • Richtung: Ausgabe

# Import system modules
import os
import arcpy

# Get Parameters
layers = arcpy.GetParameter(0)  # Accepts Feature Layers (multivalue)
sym = arcpy.GetParameter(1)  # Accepts a Feature Layer

# Apply symbology to each input layer, store the result objects in a list
results = []
for layer in layers:

    # Derive the name of the output featureclass
    layername = arcpy.Describe(layer).baseName
    outfeature = os.path.join(arcpy.env.scratchGDB, layername + "_out")

    # Copy feature to get output. This step could be replaced by other
				# steps that produce or manipulate a featureclass.
    arcpy.management.CopyFeatures(layer, outfeature)

				# Apply symbology to the each final output
    res = arcpy.management.ApplySymbologyFromLayer(outfeature, sym)

    # Append multivalue feature
    results.append(res)

# Set the symbology of the derived output parameter using the 
# list of result objects
arcpy.SetParameter(2, results)