Ajouter un champ (Gestion des données)

Résumé

Ajoute un nouveau champ à une table ou la table d’une classe d’entités, couche d’entités et/ou de rasters avec des tables attributaires.

Utilisation

  • Pour les shapefiles et les tables dBase, si le type d'attribut définit un caractère, des blancs sont insérés pour chaque enregistrement. Si le type de champ définit un attribut numérique, des zéros sont insérés pour chaque enregistrement.

  • Le paramètre Field Length (Longueur du champ) est uniquement applicable aux champs de type texte. Si aucune longueur n'est spécifiée, la longueur par défaut est de 255.

  • Pour les géodatabases, si le type de champ définit un caractère ou un nombre, <null> est inséré dans chaque enregistrement si le paramètre Champ acceptant les valeurs Null est activé (défini sur field_is_nullable="NULLABLE" dans Python).

  • Un champ ne pouvant contenir des valeurs nulles ne peut pas être ajouté à une table ou classe d’entités de géodatabase non vide.

  • Un shapefile ne prend pas en charge les alias pour les champs, donc vous ne pouvez pas ajouter d’alias de champ à un shapefile.

  • Le paramètre Domaine du champ peut utiliser un domaine existant d'une classe d'entités dans une géodatabase. Vous devez entrer le nom d’un domaine existant. La saisie d’un nom de domaine ou d’une valeur non valide ne fait pas échouer l’outil, mais le nom ou la valeur non valide est ignoré(e) et aucun domaine n’est défini pour le champ.

  • La précision et l’échelle d’un champ décrivent la précision et la taille maximales des données qui peuvent être stockées dans le champ. La précision décrit le nombre de chiffres qui peuvent être stockés dans le champ et l'échelle décrit le nombre de décimales pour les champs réel simple et réel double. Par exemple, si la valeur du champ est 54,234, l'échelle est égale à 3 et la précision à 5.

    Utilisez les conseils suivants pour le choix du type de champ correct pour une précision et une échelle données :

    • Si vous créez un champ de type réel simple, réel double ou entier et que vous spécifiez 0 pour la précision et l'échelle, l'outil essaiera de créer un champ de type binaire si la base de données sous-jacente le prend en charge. Les géodatabases fichier prennent en charge les champs de type binaire uniquement, et la précision et l'échelle sont ignorées.
    • Lorsque vous créez des champs de type réel et réel double et que vous spécifiez une précision et une échelle, si la précision est supérieure à 6, utilisez un réel double ; sinon, utilisez un réel simple. Si vous créez un champ de type réel double et spécifiez une précision de 6 ou moins, un champ de type réel simple est créé. Si vous créez un champ de type réel simple et spécifiez une précision supérieure à 6, un champ de type réel double est créé.
    • Si vous spécifiez une échelle de 0 et une précision de 10 ou moins, créez un champ de type entier. Lors de la création d’un champ de type entier, spécifiez une précision inférieure ou égale à 10, sinon votre champ peut être créé en tant que réel double.
  • Lorsque vous créez un champ dans une classe d’entités ou une table de géodatabase, vous pouvez spécifier le type du champ, mais pas sa précision ni son échelle. Même si la boîte de dialogue vous permet d’ajouter une valeur pour la précision ou l’échelle, cette valeur sera ignorée pendant l’exécution.

  • Les champs obligatoires sont permanents et ne peuvent pas être supprimés. Pour permettre leur suppression ultérieurement, le champ doit être défini comme facultatif (valeur par défaut).

  • Un champ de type raster vous permet d’inclure une image raster en tant qu’attribut. Il est stocké dans ou avec la géodatabase. Cela est utile lorsqu’une image est la meilleure méthode pour décrire une entité. La précision, l'échelle et la longueur ne peuvent pas être définies pour les champs de type raster.

Syntaxe

arcpy.management.AddField(in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
ParamètreExplicationType de données
in_table

Table en entrée à laquelle le champ spécifié est ajouté. Le champ est ajouté à la table en entrée existante ; il ne crée pas de table en sortie.

Vous pouvez ajouter des champs à des classes d'entités dans des géodatabases, des fichiers de formes, des couvertures, des tables autonomes, des catalogues d'images, des rasters avec tables attributaires et des couches.

Mosaic Layer; Raster Layer; Table View
field_name

Nom du champ qui sera ajouté à la table en entrée.

String
field_type

Spécifie le type de champ du nouveau champ.

  • TEXTToute chaîne de caractères.
  • FLOAT Nombres fractionnels compris entre -3,4E38 et 1,2E38.
  • DOUBLE Nombres fractionnels compris entre-2,2E308 et 1,8E308.
  • SHORT Nombres entiers compris entre -32 768 et 32 767.
  • LONG Nombres entiers compris entre -2 147 483 648 et 2 147 483 647.
  • DATEDate et/ou heure.
  • BLOBLongue séquence de nombres binaires. Vous avez besoin d'une visionneuse ou d'un chargeur personnalisé, ou d'une application tierce pour charger des attributs dans un champ BLOB ou afficher le contenu d'un champ BLOB.
  • RASTERImages raster. Tous les formats de jeu de données raster pris en charge par ArcGIS peuvent être stockés, mais il est fortement recommandé de n'utiliser que des images de petite taille.
  • GUIDIdentifiant unique global.
String
field_precision
(Facultatif)

Nombre de chiffres pouvant être stockés dans le champ. Tous les chiffres sont comptabilisés, qu’ils se trouvent à gauche ou à droite de la virgule.

Si la table en entrée est une géodatabase fichier, la valeur de précision de champ est ignorée.

Long
field_scale
(Facultatif)

Nombre de décimales stockées dans un champ. Ce paramètre est utilisé uniquement dans les champs de données de type Réel simple ou Réel double.

Si la table en entrée est une géodatabase fichier, la valeur d'échelle de champ est ignorée.

Long
field_length
(Facultatif)

Longueur du champ en cours d'ajout. Définit le nombre maximal de caractères autorisés pour chaque enregistrement du champ. Ce paramètre est uniquement applicable aux champs de type texte.

Long
field_alias
(Facultatif)

Autre nom donné au champ. Ce nom sert à décrire les noms de champs sibyllins. Ce paramètre s’applique uniquement aux géodatabases.

String
field_is_nullable
(Facultatif)

Indique si le champ peut contenir des valeurs Null. Les valeurs Null sont différentes de zéro ou de champs vides et sont uniquement valables pour les champs d'une géodatabase.

  • NON_NULLABLELe champ n'autorise pas les valeurs Null.
  • NULLABLELe champ autorise les valeurs Null. Il s’agit de l’option par défaut.
Boolean
field_is_required
(Facultatif)

Précise si le champ en cours de création est obligatoire pour la table ou non. Les champs obligatoires sont uniquement pris en charge dans une géodatabase.

  • NON_REQUIREDLe champ n'est pas obligatoire. Il s’agit de l’option par défaut.
  • REQUIREDLe champ est obligatoire. Les champs obligatoires sont permanents et ne peuvent pas être supprimés.
Boolean
field_domain
(Facultatif)

Force les valeurs permises d’un attribut quelconque d’une table, d’une classe d’entités ou d’un sous-type d’une géodatabase. Vous devez indiquer le nom d'un domaine existant pour qu'il soit appliqué au champ.

String

Sortie dérivée

NomExplicationType de données
out_table

Table en entrée mise à jour.

Tableau

Exemple de code

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

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction AddField en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.AddField_management("schools", "ref_ID", "LONG", 9, "", "", "refcode", 
                          "NULLABLE", "REQUIRED")
2e exemple d'utilisation de l'outil AddField (script autonome)

Le script autonome ci-dessous illustre l'utilisation de la fonction AddField.

# Name: AddField_Example2.py
# Description: Add a pair of new fields to a table
 
# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables
inFeatures = "schools"
fieldName1 = "ref_ID"
fieldPrecision = 9
fieldAlias = "refcode"
fieldName2 = "status"
fieldLength = 10
# Execute AddField twice for two new fields
arcpy.AddField_management(inFeatures, fieldName1, "LONG", fieldPrecision,
                          field_alias=fieldAlias, field_is_nullable="NULLABLE")
arcpy.AddField_management(inFeatures, fieldName2, "TEXT", 
                          field_length=fieldLength)

Informations de licence

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

Rubriques connexes