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
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 :
où 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 :
où 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.
- Log (Logarithmique) : applique la fonction logarithmique naturelle, log(x), à la valeur initiale (x) dans les champs sélectionnés.
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ètre | Explication | Type 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.
| 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
Nom | Explication | Type de données |
updated_table | Table mise à jour contenant les champs transformés. | Vue tabulaire |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil TransformField.
import arcpy
arcpy.management.TransformField("County_Data", "Income", "LOG")
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
Vous avez un commentaire à formuler concernant cette rubrique ?