Feld transformieren (Data Management)

Zusammenfassung

Transformiert kontinuierliche Werte in einem oder mehreren Feldern, indem auf die einzelnen Werte mathematische Funktionen angewendet werden und die Form der Verteilung geändert wird. Zu den Transformationsmethoden dieses Werkzeugs gehören "Logarithmisch", "Quadratwurzel", "Box-Cox", "Kehrwert", "Quadrat", "Exponentiell" und "Box-Cox invers".

Eine Transformation kann angewendet werden, um die Verzerrung der Verteilung zu verringern, damit sie der Normalverteilung (Gaußkurve) folgt.

Abbildung

Darstellung des Werkzeugs "Feld transformieren"
Die ursprünglichen Werte werden transformiert, sodass sie sich der Normalverteilung annähern.

Verwendung

  • Eingaben für dieses Werkzeug können Feature-Classes oder Tabellensichten sein.

  • Für den Parameter Transformationsmethode sind sieben Transformationen verfügbar.

    • Logarithmisch: Wendet die natürliche logarithmische Funktion log(x) auf den ursprünglichen Wert (x) in den ausgewählten Feldern an.
      • Die logarithmische Transformation kann nur auf positive Werte angewendet werden. Bei negativen oder Null-Werten in den ausgewählten Feldern wird vor der Transformation standardmäßig ein Versatz zu den Daten hinzugefügt, log(x+Versatz), damit die Werte positiv sind. Der Standardversatz entspricht dem maximalen absoluten negativen Wert im Feld zuzüglich es kleinen positiven Wertes (~10-6). Wenn die maximale negative Zahl im ausgewählten Feld z. B. -25 ist, werden alle Werte um einen Versatz von 25,000001 verschoben, damit sie alle positiv sind.
    • Quadratwurzel: Verwendet die Quadratwurzel der einzelnen Werte in den ausgewählten Feldern.
      • Die Quadratwurzeltransformation kann nicht auf negative Werte angewendet werden. Bei negativen Werten in den ausgewählten Feldern wird vor der Transformation standardmäßig ein Versatz zu den Daten hinzugefügt, damit die Werte nicht negativ sind. Der Standardversatz entspricht dem maximalen absoluten negativen Wert im Feld, damit die Werte nicht mehr negativ sind.
    • Box-Cox: Wendet die folgende Potenzfunktion an, um die Daten in den ausgewählten Feldern normal zu verteilen:

      Box-Cox-Transformation
      Dabei gilt: x' ist der transformierte Wert, x ist der ursprüngliche Wert, λ1 ist der Potenzparameter (Exponent) und λ2 ist der Versatzparameter.

      • Die Box-Cox-Transformation kann nur auf positive Werte angewendet werden. Bei negativen oder Null-Werten in den ausgewählten Feldern wird vor der Transformation standardmäßig ein Versatz zu den Daten hinzugefügt, damit die Werte positiv sind. Der Standardwert entspricht dem maximalen absoluten negativen Wert im Feld, damit die Werte nicht mehr negativ sind. Hinzu kommt ein unendlich kleiner Wert (~10-6), damit sie nicht null sind. Der Parameter Potenz kann verwendet werden, um den Wert der Potenz anzugeben. Er kann Werte zwischen -5 und 5 annehmen. Wenn kein Wert angegeben wird, wird die beste Annäherung einer Normalverteilungskurve verwendet und in den Geoverarbeitungsmeldungen angezeigt.
    • Kehrwert: Verwendet den reziproken Wert (1/x) der einzelnen Werte (x) in den ausgewählten Feldern.
      • Die Kehrwerttransformation kann nicht auf Null-Werte angewendet werden. Null-Werte in den ausgewählten Feldern werden im transformierten Feld als null aufgeführt. Bei dieser Methode wird kein Versatz angewendet.
    • Exponentiell: Wendet die Exponentialfunktion (ex) auf den ursprünglichen Wert (x) in den ausgewählten Feldern an. Die exponentielle Transformation ist zudem die Umkehrung einer logarithmischen Transformation. Dies bedeutet, dass die Anwendung der exponentiellen Transformation auf ein logarithmisch transformiertes Feld wieder zu den ursprünglichen Datenwerten führt.
      • Standardmäßig wird kein Versatz auf das ausgewählte Feld angewendet. Um wieder die ursprünglichen Werte eines logarithmisch transformierten Feldes zu erhalten, geben Sie den gleichen Versatzwert an, der zum Erstellen des logarithmischen Feldes verwendet wurde. Der Versatz wird subtrahiert, nachdem die exponentielle Transformation angewendet wurde: ex - Versatz.
    • Quadrat: Wendet die Quadratfunktion auf die einzelnen Werte in den ausgewählten Feldern an. Die Quadrattransformation ist zudem die Umkehrung der Quadratwurzeltransformation. Dies bedeutet, dass die Anwendung der Quadrattransformation auf ein mit Quadratwurzel transformiertes Feld wieder zu den ursprünglichen Datenwerten führt.
      • Standardmäßig wird kein Versatz auf die ausgewählten Felder angewendet. Um wieder die ursprünglichen Werte eines mit Quadratwurzel transformierten Feldes zu erhalten, geben Sie den gleichen Versatzwert an, der zum Erstellen des Quadratwurzelfeldes verwendet wurde. Der Versatz wird subtrahiert, nachdem die Quadrattransformation angewendet wurde: x2 - Versatz.
    • Box-Cox invers: Wendet die Umkehrung der Box-Cox-Transformation an. Dies bedeutet, dass die Anwendung der inversen Box-Cox-Transformation auf ein mit Box-Cox transformiertes Feld wieder zu den ursprünglichen Datenwerten führt. Die inverse Box-Cox-Potenzfunktion wird wie folgt berechnet:

      Inverse Box-Cox-Transformation
      Dabei gilt: x' ist der transformierte Wert, x ist der ursprüngliche Wert, λ1 ist der Potenzparameter (Exponent) und λ2 ist der Versatzparameter.

      • Standardmäßig werden weder Versatz noch Potenz auf die ausgewählten Felder angewendet. Um wieder die ursprünglichen Werte eines mit Box-Cox transformierten Feldes zu erhalten, geben Sie die gleichen Versatz- und Potenzwerte an, der zum Erstellen des Box-Cox-Feldes verwendet wurden.

  • Wenn kein Versatz auf die Methoden "Logarithmisch", "Quadratwurzel" und "Box-Cox" angewendet werden soll, können Sie den Wert 0 für den Versatzparameter angeben. Dann wird kein Versatz angewendet.

  • Wenn bei der Werkzeugausführung mehrere Felder verwendet werden, wird die ausgewählte Transformationsmethode auf alle Felder angewendet. Wenn ein Versatz- oder Potenzwert angegeben wird, werden die gleichen Werte auf alle ausgewählten Felder angewendet. Wenn keine Werte für die Parameter Versatz und Potenz angegeben werden, werden die Standardwerte für jedes ausgewählte Feld je nach ausgewählter Transformationsmethode unabhängig berechnet.

  • Das Werkzeug ändert die Eingabedaten und fügt die neu erstellten transformierten Felder der Eingabetabelle oder -Feature-Class an.

  • Im Parameter Zu transformierendes Feld können Eingabe- und Ausgabefeldnamen angegeben werden. Wenn der Ausgabefeldname in den Daten bereits vorhanden ist, wird das Feld vom Werkzeug überschrieben.

  • Für jedes transformierte Feld werden in den Ergebnismeldungen der Geoverarbeitung Summenstatistiken für die Quellfelder und die transformierten Felder angegeben. Diese Statistiken enthalten Werte für Maximum, Minimum, Summe, Mittelwert, Standardabweichung, Medianwert, Verzerrung und Wölbung.

  • Die für die Parameter Potenz und Versatz vom Werkzeug geschätzten Werte werden in den Geoverarbeitungsmeldungen ebenfalls angezeigt. Mithilfe dieser Werte können die ursprünglichen Datenwerte über eine Umkehrung der Transformationsmethode ermittelt werden.

  • Das Werkzeug erstellt ein Histogramm für jedes der neu erstellten transformierten Felder, um die Verteilungen zu visualisieren.

Syntax

arcpy.management.TransformField(in_table, fields, {method}, {power}, {shift})
ParameterErklärungDatentyp
in_table

Die Eingabetabelle oder -Feature-Class mit dem Feld, das transformiert werden soll. Die neu transformierten Felder werden zur Eingabetabelle hinzugefügt.

Table View; Raster Layer; Mosaic Layer
fields
[[input_field, output_field_name],...]

Die Felder, die die zu transformierenden Werte enthalten. Für jedes Feld kann ein Ausgabefeldname angegeben werden. Wenn kein Ausgabefeldname angegeben wird, erstellt das Werkzeug einen Ausgabefeldnamen aus dem Feldnamen und der Transformationsmethode.

Value Table
method
(optional)

Gibt die Methode an, die zum Transformieren der Werte in den angegebenen Feldern verwendet wird.

  • INVXDie Kehrwertmethode (1/x) wird auf den ursprünglichen Wert (x) in den ausgewählten Feldern angewendet.
  • SQRTDie Quadratwurzelmethode wird auf den ursprünglichen Wert in den ausgewählten Feldern angewendet.
  • LOGDie natürliche logarithmische Funktion log(x) wird auf den ursprünglichen Wert (x) in den ausgewählten Feldern angewendet.
  • BOX-COXDie Box-Cox-Potenzfunktion wird angewendet, um die ursprünglichen Werte in den ausgewählten Feldern normal zu verteilen. Dies ist die Standardeinstellung.
  • INV_BOX-COXDie Umkehrung der Box-Cox-Transformation wird auf die ursprünglichen Werte in den ausgewählten Feldern angewendet.
  • INV_SQRTDie Quadratmethode wird auf die ursprünglichen Werte in den ausgewählten Feldern angewendet. Diese Transformation ist die Umkehrung der Quadratwurzeltransformation.
  • INV_LOGDie Exponentialfunktion exp(x) wird auf den ursprünglichen Wert (x) in den ausgewählten Feldern angewendet. Diese Transformation ist die Umkehrung der logarithmischen Transformation.
String
power
(optional)

Der Potenzparameter (λ1) der Box-Cox-Transformation. Wenn kein Wert angegeben wird, wird ein optimaler Wert über eine Schätzung der maximalen Wahrscheinlichkeit (Maximum Likelihood Estimation, MLE) ermittelt.

Double
shift
(optional)

Der Wert, um den alle Daten verschoben werden (ein konstanter Wert wird hinzugefügt). Kein Versatz wird angewendet, wenn 0 angegeben ist.

Für die Transformationen "Logarithmisch", "Box-Cox" und "Quadratwurzel" wird vor der Transformation ein Standardversatzwert hinzugefügt, falls negative oder Null-Werte vorhanden sind.

Für die Transformationen "Exponentiell" (logarithmisch invers), "Box-Cox invers" und "Quadrat" (Quadratwurzel invers) wird standardmäßig kein Versatz angewendet. Wenn ein Versatzwert angegeben wird, wird er nach Anwendung der Transformation subtrahiert. Dadurch können Sie den gleichen Versatzwert für Transformationen und deren Umkehrungen verwenden.

Double

Abgeleitete Ausgabe

NameErklärungDatentyp
updated_table

Die aktualisierte Tabelle mit den transformierten Feldern.

Tabellensicht

Codebeispiel

TransformField – Beispiel 1 (Python-Fenster)

Das folgende Skript veranschaulicht die Verwendung des Werkzeugs TransformField im Python-Fenster.

import arcpy
arcpy.management.TransformField("County_Data", "Income", "LOG")
TransformField – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Python-Skript veranschaulicht, wie Sie das Werkzeug TransformField verwenden.

# Import system modules. 
import arcpy 
 
try: 
    # Set the workspace and input features. 
    arcpy.env.workspace = r"C:\\Transform\\MyData.gdb" 
    inputFeatures = "County_Data" 
 
    # Set the input fields that will be standardized 
    fields = "population_total;unemployment_rate;income" 
 
    # Set the standardization method. 
    method = "BOX-COX" 
 
    # Run the Transform Field tool 
    arcpy.management.TransformField(inputFeatures, fields, method) 
 
except arcpy.ExecuteError: 
    # If an error occurred when running the tool, print the error message. 
    print(arcpy.GetMessages())

Umgebungen

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen