ArcGIS Desktop

  • Documentation
  • Support

  • My Profile
  • Aide
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS Desktop

Un SIG professionnel complet

ArcGIS Enterprise

SIG dans votre entreprise

ArcGIS for Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

ArcMap

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Extensions

Utilisation de l'outil Calculer un champ

  • Astuces et pratiques conseillées pour l'utilisation de l'outil Calculer un champ
  • Exemple de blocs de code utilisant l'outil Calculer un champ

L'outil Calculer un champ se trouve dans la boîte à outils Gestion des données, dans le jeu d'outils Champs. Il s'agit du même outil qui est ouvert lorsque vous cliquez sur la commande Calculateur de champs dans le menu contextuel de champ d'une table attributaire. Lorsque vous effectuez des calculs de champ, il est important de savoir quel type de données vous utilisez et dans quel contexte il sera utilisé dans le futur. La syntaxe à utiliser dans une expression de calcul diffère selon la source de données et le langage d'écriture.

Les éléments suivants comprennent plusieurs astuces importantes et pratiques conseillées pour l'utilisation de l'outil Calculer un champ.

Astuces et pratiques conseillées pour l'utilisation de l'outil Calculer un champ

Calcule les valeurs d'un champ pour une classe d'entités, une couche d'entités ou un raster.

Les expressions peuvent être créées à l'aide de VBScript ou d'un format Python standard. Le style de mise en forme de la chaîne utilisé pour l'expression doit être approprié pour l'environnement (type).

Il est possible de créer des expressions Python à l'aide de propriétés de l'objet Géométrie, notamment type, extent, centroid, firstPoint, lastPoint, area, length, isMultipart et partCount (par exemple, !shape.area!).

Les expressions Python peuvent utiliser les propriétés géométriques area et length avec une unité surfacique ou linéaire pour convertir la valeur dans une autre unité de mesure (par exemple, !shape.length@kilometers!). Si les données sont stockées dans un système de coordonnées géographiques et qu'une unité linéaire est fournie (par exemple, les miles), la longueur sera calculée à l'aide d'un algorithme géodésique. L'utilisation d'unités surfaciques sur les données géographiques donnera des résultats douteux, car les degrés décimaux ne sont pas cohérents dans l'ensemble du globe.

!shape.area@acres!
  • Mots-clés d'unité de mesure surfacique :
    • ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | SQUAREMAPUNITS | UNKNOWN
  • Mots-clés d'unité de mesure linéaire :
    • CENTIMETERS | DECIMALDEGREES | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | POINTS | UNKNOWN | YARDS

Lorsqu'il est utilisé avec un jeu sélectionné d'entités, telles que celles créées à partir d'une requête dans Générer une couche ou Sélectionner une couche par attributs, cet outil ne met à jour que les enregistrements sélectionnés.

Le calcul ne peut être appliqué qu'à un seul champ par opération.

Les champs sont toujours entre crochets [ ] pour VBScript.

Dans le cas des calculs Python, les noms de champs doivent être délimités par des points d'exclamation (!fieldname!).

Pour calculer des chaînes sur des champs de type texte ou caractère, elles doivent utiliser des guillemets doubles ("chaîne") dans le cas d'une boîte de dialogue. S'il s'agit de scripts, les chaînes entre guillemets doubles doivent, à leur tour, être encapsulées dans des guillemets simples ('"string"').

This tool can also be used to update character items. Expressions using a character string should be wrapped, using single quotes—for example, [CHARITEM] = 'NEW STRING'. However, if the character string has embedded single quotes, wrap the string using double quotes—for example, [CHARITEM] = "TYPE'A'".

Pour calculer un champ afin qu'il soit une valeur numérique, entrez la valeur en question dans le paramètre Expression ; la valeur ne doit pas être placée entre guillemets.

La fonction arcgis.rand () est prise en charge par l'outil Calculer un champ, et le type d'expression doit être Python. La fonction arcgis.rand () a été créée pour les outils ArcGIS et ne doit pas être confondue avec la fonction rand Python ().

L'expression et le code de bloc sont connectés. Le code de bloc doit relier l'expression ; le résultat du code de bloc doit être transmis à l'expression.

La mise en forme et le module math Python peuvent être utilisés dans le paramètre Bloc de code. Vous pouvez importer des modules supplémentaires. Le module math fournit des fonctions de représentation des nombres et d'arithmétique formelle, des fonctions logarithmiques et de puissance, des fonctions trigonométriques, des fonctions de conversion angulaire, des fonctions hyperboliques et des constantes mathématiques. Pour en savoir plus sur le module math, consultez l'aide de Python.

Saved VB .cal files from previous versions of ArcGIS may work or require minimal modifications. If you have VBA code from past releases that use ArcObjects, you will need to modify your calculations to work.

Lorsque vous calculez des données jointes, vous ne pouvez pas calculer directement les colonnes jointes. Vous pouvez toutefois calculer directement les colonnes de la table d'origine. Pour calculer les données jointes, vous devez commencer par ajouter les tables ou couches jointes à la carte. Vous pouvez alors effectuer séparément des calculs sur ces données. Ces modifications sont apportées aux colonnes jointes.

Le type d'expression doit être Python lors de l'exécution de Calculer un champ avec ArcGIS Engine Runtime ou ArcGIS for Server. Utilisez uniquement Python comme type d'expression toutes les fois que l'outil est compris dans un modèle qui sera publié sur ArcGIS for Server.

Exemple de blocs de code utilisant l'outil Calculer un champ

Exemple CalculateField : calculer des centroïdes

Utilisez CalculateField pour affecter des valeurs de centroïde à de nouveaux champs.

# Name: CalculateField_Centroids.py
# Description: Use CalculateField to assign centroid values to new fields
# Import system modules import arcpy
try: 
    # Set environment settings
    arcpy.env.workspace = "C:/data/airport.gdb"
 
    # Set local variables
    inFeatures = "parcels"
    fieldName1 = "xCentroid"
    fieldName2 = "yCentroid"
    fieldPrecision = 18
    fieldScale = 11
 
    # Add fields
    arcpy.AddField_management(inFeatures, fieldName1, "DOUBLE", 
                              fieldPrecision, fieldScale)
    arcpy.AddField_management(inFeatures, fieldName2, "DOUBLE", 
                              fieldPrecision, fieldScale)
 
    # Calculate centroid
    arcpy.CalculateField_management(inFeatures, fieldName1, 
                                    "!SHAPE.CENTROID.X!",
                                    "PYTHON_9.3")
    arcpy.CalculateField_management(inFeatures, fieldName2, 
                                    "!SHAPE.CENTROID.Y!",
                                    "PYTHON_9.3")
except Exception:
    e = sys.exc_info()[1]
    print(e.args[0])

Exemple CalculateField : calculer des plages

Utilisez CalculateField avec un bloc de code pour calculer des valeurs à partir de plages.

# Name: CalculateField_Ranges.py
# Description: Use CalculateField with a codeblock to calculate values
#  based on ranges
# Import system modules import arcpy
 
# Set environment settings arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables inTable = "parcels"
fieldName = "areaclass"
expression = "getClass(float(!SHAPE.area!))"
codeblock = """def getClass(area):
    if area <= 1000:
        return 1
    if area > 1000 and area <= 10000:
        return 2
    else:
        return 3"""
 
# Execute AddField arcpy.AddField_management(inTable, fieldName, "SHORT")
 
# Execute CalculateField arcpy.CalculateField_management(inTable, fieldName, expression, "PYTHON_9.3", 
                                codeblock)

Exemple CalculateField : calculer des valeurs aléatoires

Utilisez CalculateField pour affecter des valeurs aléatoires à un nouveau champ.

# Name: CalculateField_Random.py
# Description: Use CalculateField to assign random values to a new field
# Import system modules import arcpy
 
# Set environment settings arcpy.env.workspace = "C:/data/airport.gdb"
  
# Set local variables inFeatures = "parcels"
fieldName = "RndValue"
expression = "arcgis.rand('Integer 0 10')"
 
# Execute AddField arcpy.AddField_management(inFeatures, fieldName, "LONG")
 
# Execute CalculateField arcpy.CalculateField_management(inFeatures, fieldName, expression, "PYTHON_9.3")

Rubriques connexes

  • Notions de base des calculs de champ
  • Exécution de calculs de champs simple
  • Calcul de la surface, de la longueur et d'autres propriétés géométriques
  • Modification de la casse des valeurs de champ texte
  • Exemples d'utilisation de l'outil Calculer un champ

ArcGIS Desktop

  • Accueil
  • Documentation
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog d’Esri
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
Donnez-nous votre avis.
Copyright © 2018 Esri. | Confidentialité | Légal