Transformer un champ (Gestion des données)

Résumé

Transforme des valeurs continues en un ou plusieurs champs en appliquant des fonctions mathématiques à chaque valeur et en modifiant la forme de la distribution. Les méthodes de transformation de l’outil sont les suivantes : logarithmique, racine carrée, Box-Cox, inverse multiplicatif, carré, exponentielle et Box-Cox inverse.

Une transformation peut être appliquée pour réduire l’asymétrie dans la distribution et la rendre normale (gaussienne).

Illustration

Illustration de l’outil Transformer un champ
Les valeurs initiales sont transformées pour se rapprocher d’une distribution normale.

Utilisation

  • Cet outil prend en charge des classe d’entités ou des vues tabulaires en entrée.

  • Sept transformations sont disponibles dans le paramètre Transformation Method (Méthode de transformation).

    • Log (Logarithmique) : applique la fonction logarithmique naturelle, log(x), à la valeur initiale (x) dans les champs sélectionnés.
      • La transformation logarithmique ne peut être appliquée qu’aux valeurs positives. Si les champs sélectionnés comportent des valeurs négatives ou zéro, par défaut, un décalage est ajouté aux données avant la transformation, log(x+shift), pour rendre les valeurs positives. Le décalage par défaut est égal à la valeur négative absolue maximale du champ, plus une valeur positive faible (~10-6). Par exemple, si le nombre négatif maximal du champ sélectionné est -25, toutes les valeurs sont décalées de 25,000001 pour les rendre positives.
    • Square root (Racine carrée) : utilise la racine carrée de chaque valeur dans les champs sélectionnés.
      • La transformation Racine carrée ne peut pas être appliquée aux valeurs négatives. Si les champs sélectionnés comportent des valeurs négatives, par défaut, un décalage est ajouté aux données avant la transformation pour rendre les valeurs non négatives. Le décalage par défaut est égal à la valeur négative absolue maximale dans le champ pour rendre les valeurs non négatives.
    • Box-Cox : applique la fonction puissance suivante pour distribuer normalement les données dans les champs sélectionnés :

      Transformation Box-Cox
      x' est la valeur transformée, x est la valeur initiale, λ1 est le paramètre de puissance (exposant) et λ2 est le paramètre de décalage.

      • La transformation Box-Cox ne peut être appliquée qu’aux valeurs positives. Si les champs sélectionnés comportent des valeurs négatives ou zéro, par défaut, un décalage est ajouté aux données avant la transformation pour rendre les valeurs positives. La valeur par défaut est égale à la valeur négative absolue minimale dans le champ pour rendre les valeurs non négatives, plus une petite valeur infinitésimale (~10-6) pour les rendre différentes de zéro. Le paramètre Power (Puissance) peut être utilisé pour spécifier la valeur de la puissance, qui peut être comprise entre -5 et 5. Si aucune valeur n’est indiquée, la meilleure approximation d’une courbe de distribution normale est utilisée et affichée dans les messages de géotraitement.
    • Multiplicative Inverse (Inverse multiplicatif) : utilise la réciproque (1/x) de chaque valeur (x) dans les champs sélectionnés.
      • La transformation Inverse multiplicatif ne peut pas être appliquée aux valeurs zéro. Si les champs sélectionnés comportent des valeurs zéro, elles sont signalées comme nulles dans le champ transformé. Aucun décalage n’est appliqué pour cette méthode.
    • Exponential (Exponentielle) : applique la fonction exponentielle , (ex), à la valeur initiale (x) dans les champs sélectionnés. La transformation exponentielle est également l’inverse d’une transformation logarithmique ; ainsi, l’application de la transformation exponentielle à un champ ayant fait l’objet d’une transformation logarithmique produit les valeurs de données d’origine.
      • Par défaut, aucun décalage n’est appliqué au champ sélectionné. Pour rétablir les valeurs d’origine d’un champ ayant fait l’objet d’une transformation logarithmique, indiquez la même valeur de décalage que celle utilisée pour créer le champ logarithmique. Le décalage est soustrait après l’application de la transformation exponentielle : ex - shift.
    • Square (Carré) : applique la fonction Carré à chaque valeur dans les champs sélectionnés. La transformation Carré est également l’inverse d’une transformation Racine carrée ; ainsi, l’application de la transformation Carré à un champ ayant fait l’objet d’une transformation Racine carrée produit les valeurs de données d’origine.
      • Par défaut, aucun décalage n’est appliqué aux champs sélectionnés. Pour rétablir les valeurs d’origine d’un champ ayant fait l’objet d’une transformation Racine carrée, indiquez la même valeur de décalage que celle utilisée pour créer le champ Racine carrée. Le décalage est soustrait après l’application de la transformation Carré : x2 - shift.
    • Inverse Box-Cox (Box-Cox inverse) : applique l’inverse de la transformation Box-Cox ; ainsi l’application de la transformation Box-Cox inverse à un champ ayant fait l’objet d’une transformation Box-Cox produit les valeurs de données d’origine. La fonction puissance Box-Cox inverse est calculée comme suit :

      Transformation Box-Cox inverse
      x' est la valeur transformée, x est la valeur initiale, λ1 est le paramètre de puissance (exposant) et λ2 est le paramètre de décalage.

      • Par défaut, aucun décalage ni puissance n’est appliqué aux champs sélectionnés. Pour rétablir les valeurs d’origine d’un champ ayant fait l’objet d’une transformation Box-Cox, indiquez les mêmes valeurs de décalage et de puissance que celles utilisées pour créer le champ Box-Cox.

  • Si vous ne souhaitez pas qu’un décalage par défaut soit appliqué aux méthodes Logarithmique, Racine carrée et Box-Cox, vous pouvez indiquer la valeur 0 pour le paramètre Shift (Décalage).

  • Si plusieurs champs sont utilisés lors de l’exécution de l’outil, la méthode de standardisation sélectionnée est appliquée à tous les champs. Si une valeur de décalage ou de puissance est indiquée, les mêmes valeurs sont appliquées à tous les champs sélectionnés. Si aucune valeur n’est indiquée pour les paramètres Shift (Décalage) et Power (Puissance), les valeurs par défaut sont calculées de manière indépendante pour chaque champ sélectionné, selon la méthode de transformation choisie.

  • Cet outil modifie les données en entrée et ajoute les nouveaux champs transformés à la table en entrée ou la classe d’entités.

  • Des noms de champ en entrée et en sortie peuvent être spécifiés pour le paramètre Field to Transform (Champ à transformer). Si le nom de champ en sortie existe déjà dans les données, le champ existant est remplacé par l’outil.

  • Pour chaque champ transformé, des statistiques résumées sont fournies pour le champ source et le champ transformé dans les messages de géotraitement. Ces statistiques incluent le maximum, le minimum, la somme, la moyenne, l’écart type, la médiane, l’asymétrie et l’aplatissement.

  • Les valeurs des paramètres Power (Puissance) et Shift (Décalage) estimées par l’outil s’affichent également dans les messages de géotraitement. Ces valeurs peuvent être utilisées pour obtenir les valeurs de données d’origine en utilisant l’inverse de la méthode de transformation.

  • L’outil crée un histogramme pour chaque nouveau champ transformé pour permettre d’en visualiser la distribution.

Syntaxe

arcpy.management.TransformField(in_table, fields, {method}, {power}, {shift})
ParamètreExplicationType de données
in_table

Classe d’entités ou table en entrée qui contient les champs à transformer. Les champs transformés sont ajoutés à la table en entrée.

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

Champs contenant les valeurs à transformer. Pour chaque champ, un nom de champ en sortie peut être spécifié. Si aucun nom de champ en sortie n’est spécifié, l’outil en crée un, basé sur le nom du champ et la méthode de transformation.

Value Table
method
(Facultatif)

Spécifie la méthode utilisée pour transformer les valeurs présentes dans les champs spécifiés.

  • INVXLa méthode Inverse multiplicatif (1/x) est appliquée à la valeur d’origine (x) des champs sélectionnés.
  • SQRTLa méthode Racine carrée (1/x) est appliquée à la valeur d’origine des champs sélectionnés.
  • LOGLa fonction logarithmique naturelle, log(x), est appliquée à la valeur initiale (x) dans les champs sélectionnés.
  • BOX-COXLa fonction puissance Box-Cox est appliquée pour distribuer normalement les valeurs d’origine des champs sélectionnés. Il s’agit de l’option par défaut.
  • INV_BOX-COXL’inverse de la transformation Box-Cox est appliquée aux valeurs d’origine des champs sélectionnés.
  • INV_SQRTLa méthode Carré est appliquée aux valeurs d’origine des champs sélectionnés. Cette transformation est l’inverse de la racine carrée.
  • INV_LOGLa fonction exponentielle, exp(x), est appliquée à la valeur initiale (x) dans les champs sélectionnés. Cette transformation est l’inverse de la transformation logarithmique.
String
power
(Facultatif)

Paramètre de puissance (λ1) de la transformation Box-Cox. Si aucune valeur n’est indiquée, une valeur optimale est déterminée à l’aide de l’estimation de probabilité maximale (MLE).

Double
shift
(Facultatif)

Valeur utilisée pour décaler toutes les données (en ajoutant une valeur constante). Aucun décalage n’est appliqué si la valeur 0 est spécifiée.

Pour les transformations logarithmique, Box-Cox et racine carrée, une valeur de décalage par défaut est ajoutée avant la transformation si des valeurs négatives ou zéro sont présentes.

Pour les transformations exponentielle (logarithmique inverse), Box-Cox inverse et Carré (racine carrée inverse), aucun décalage n’est appliqué par défaut. Si une valeur de décalage est indiquée, elle est soustraite après l’application de la transformation. Vous pouvez ainsi utiliser la même valeur de décalage pour les transformations et les inverses associées.

Double

Sortie dérivée

NomExplicationType de données
updated_table

Table mise à jour contenant les champs transformés.

Vue tabulaire

Exemple de code

Exemple 1 d’utilisation de l’outil TransformField (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil TransformField.

import arcpy
arcpy.management.TransformField("County_Data", "Income", "LOG")
Exemple 2 d’utilisation de l’outil TransformField (script autonome)

Le script Python autonome ci-dessous illustre l'utilisation de l'outil TransformField.

# 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())

Environnements

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes