Pour en savoir plus sur les expressions Python, consultez les exemples d’utilisation de l’outil Python Calculer un champ.
Pour en savoir plus sur les expressions Arcade, reportez-vous à la documentation ArcGIS Arcade dans l’aide pour les développeurs.
Pour en savoir plus sur les expressions SQL, reportez-vous aux rubriques Syntaxe d’une expression SQL et Calculer des valeurs de champ.
Pour en savoir plus sur les expressions VBScript, reportez-vous à la rubrique Exemples VBScript d’utilisation de l’outil Calculer un champ.
Les expressions Arcade de cet outil utilisent le profil Arcade Calcul de champ. Un profil Arcade est le contexte dans lequel une expression Arcade est évaluée et interprétée. Lorsqu’une expression Arcade est évaluée, la valeur de retour est convertie dans le type de champ de la valeur en sortie.
Lorsqu’il est utilisé avec un jeu sélectionné d’entités, telles que celles créées à partir d’une requête dans l’outil Générer une couche ou l’outil 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. Pour appliquer plusieurs calculs, utilisez l’outil Calculer des champs.
Les valeurs de champs existantes seront écrasées. Pour conserver les valeurs d’origine, faites une copie de la table en entrée en sauvegarde ou utilisez l’option Activer l’annulation dans la fenêtre Géotraitement.
Dans le cas des calculs Python, les noms de champs doivent être délimités par des points d’exclamation (!fieldname!, par exemple).
Pour les calculs Arcade, les noms de champs doit avoir comme préfixe $feature. ($feature.fieldname, par exemple).
Pour transférer des valeurs temporelles entre des types de champ (Date, Date uniquement, Heure uniquement, Décalage de l’horodatage et Texte), utilisez l’outil Convertir un champ temporel à la place.
Pour calculer des chaînes sur des champs de type texte ou caractère, dans le cas d’une boîte de dialogue, les chaînes doivent être placées entre guillemets doubles (par exemple, "chaîne"). S’il s’agit de scripts, les chaînes entre guillemets doubles doivent, à leur tour, être incluses dans des guillemets simples (par exemple, '"string"').
Pour calculer un champ de sorte qu’il s’agisse d’une valeur numérique, fournissez la valeur numérique dans le paramètre Expression sans guillemets.
Héritage :
arcgis.rand() n’est plus pris en charge dans la version ArcGIS AllSource 2.0. Des fonctions comparables à l'aide du random module Python doivent être utilisées en lieu et place. Pour utiliser le random module avec succès, importez-le dans le paramètre Bloc de code.
Vous pouvez créer des expressions complexes à l’aide du paramètre Code Block (Bloc de code). Fournissez le bloc de code directement dans la boîte de dialogue ou sous la forme d’une chaîne dans des scripts. 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.
Le paramètre Code Block (Bloc de code) est uniquement pris en charge pour les expressions Python.
Vous pouvez utiliser la mise en forme et le module Python math dans le paramètre Code Block (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.
Pour calculer les informations de géométrie dans Python, utilisez des propriétés d’objet Geometry. Par exemple, utilisez une expression de !shape.pointCount! pour calculer le nombre de sommets d’une entité.
Pour calculer la surface et la longueur dans Python, utilisez les méthodes getArea et getLength avec un type de méthode et d’unité.
- Pour calculer la surface géodésique de polygones en kilomètres carrés, utilisez l’expression suivante :
!shape.getArea('GEODESIC', 'SQUAREKILOMETERS')!
- Pour calculer la longueur plane de polylignes (ou de polygones) en yards, utilisez l’expression suivante :
!shape.getLength('PLANAR', 'YARDS')
Pour plus d’informations, reportez-vous aux objets ArcPy Polygon et Polyline.
En savoir plus sur les outils de géotraitement et les unités linéaires et surfaciques
Les applications ArcGIS utilisent le codage UTF-16-LE pour lire et écrire les fichiers .cal. D’autres applications (par exemple, Notepad) peuvent servir à créer ou à modifier les fichiers .cal, tant que le fichier est écrit à l’aide du codage UTF-16-LE. Un fichier utilisant un autre codage ne sera pas chargé dans le bloc de code.
Les expressions Python et SQL qui tentent de concaténer des champs de type chaîne comprenant une valeur nulle ou de division par zéro renvoient une valeur nulle pour cette valeur de champ.
Si vous utilisez une expression SQL pour concaténer des champs de type chaîne dans une géodatabase mobile, les valeurs sont combinées et les valeurs nulles sont ignorées.
Si vous utilisez des données jointes, vous ne pouvez modifier que les champs de la table d’origine. Vous ne pouvez pas modifier les champs de la table jointe. Pour effectuer un calcul sur la table jointe, effectuez-le directement sur cette table.
Les expressions SQL effectuent des calculs plus rapides pour les services d’entités et géodatabases d’entreprise. Au lieu d’effectuer les calculs entité par entité ou ligne par ligne, une requête unique est définie sur le serveur ou la base de données, ce qui entraîne des calculs plus rapides.
Les services d’entités, les géodatabases d’entreprise, les géodatabases mobiles, les géodatabases fichier, les bases de données SQLite et GeoPackage prennent en charge les expressions SQL. Pour les autres formats, utilisez des expressions Python ou Arcade.
L’utilisation de l’option SQL du paramètre Expression Type (Type d’expression) a les limitations suivantes pour les géodatabases d’entreprise :
- L’option est uniquement prise en charge pour les géodatabases fichier, les géodatabases mobiles, Db2, Oracle, PostgreSQL, SAP HANA et SQL Server (avec ou sans géodatabases d’entreprise à l’intérieur), SQLite et GeoPackage.
- Le calcul des valeurs de champ sur les tables jointes n’est pas pris en charge.
- Les données de géodatabases d’entreprise versionnées et archivées ne sont pas prises en charge.
- L’annulation des opérations de géotraitement n’est pas prise en charge.
Consultez la documentation du fournisseur de base de données pour obtenir de l’aide sur les expressions SQL.
Le paramètre Expression dans la boîte de dialogue de l’outil comporte une liste déroulante Insert Values (Insérer des valeurs) dans laquelle vous pouvez ajouter des valeurs de champ à partir du champ sélectionné dans la liste Fields (Champs) ou des valeurs de domaine à partir du domaine du champ sélectionné. Utilisez les valeurs de domaine pour vous assurer que seules les valeurs valides pour le domaine du champ sont insérées dans ce dernier.