Calculer un champ (Outils de gestion des données)
Résumé
Calcule les valeurs d’un champ pour une classe d’entités, une couche d’entités ou un raster.
Utilisation
Attention :
Cet outil modifie les données en entrée. Pour en savoir plus et découvrir des stratégies permettant d’éviter des modifications de données non souhaitées, reportez-vous à la section Outils qui modifient ou mettent à jour les données en entrée.
Pour en savoir plus sur les expressions Python, consultez Exemples d’utilisation de l’outil Calculer un champ dans Python.
Pour en savoir plus sur les expressions Arcade, consultez ArcGIS Arcade dans l’aide pour les développeurs.
Pour en savoir plus sur les expressions SQL, consultez Syntaxe d’une expression SQL et Calculer des valeurs de champ.
Pour en savoir plus sur les expressions VBScript, consultez Exemples VBScript d’utilisation de l’outil Calculer un champ.
Les expressions Arcade de cet outil utilisent le profil Arcade Field Calculation (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 renvoyée est convertie dans le type de champ de la valeur en sortie.
S’il est utilisé avec un ensemble de sélection d’entités, telles que celles créées à partir d’une requête dans l’outil Créer une couche d’entités ou Sélectionner une couche par attributs, cet outil ne met à jour que les enregistrements sélectionnés.
Attention :
Avec Windows 11, version 24H2, VBScript devient une fonction à la demande et requiert la fonctionnalité VBScript.
Pour continuer d’utiliser l’option VBScript, procédez comme suit :
Convertissez le type d’expression en Python, Arcade ou SQL.
Activez la fonctionnalité facultative VBScript dans les paramètres système de Windows.
Pour en savoir plus, reportez-vous à l’article Avis de retrait et d’obsolescence.
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, créez une copie de la table en entrée comme sauvegarde ou utilisez l’option Enable Undo (Activer l’annulation) de la fenêtre Geoprocessing (Géotraitement).
Dans le cas des calculs Python, les noms de champ doivent être délimités par des points d’exclamation (
!fieldname!, par exemple).Pour les calculs Arcade, les noms de champ doivent avoir comme préfixe
$feature.($feature.fieldname, par exemple).Remarque :
Pour transférer des valeurs temporelles entre les types de champs (Date, Date Only [Date uniquement], Time Only [Heure uniquement], Timestamp Offset [Décalage de l’horodatage] et Text [Texte]), utilisez l’outil Convertir un champ temporel à la place.
Pour que vous puissiez calculer des chaînes dans des champs de type texte ou caractère, dans la boîte de dialogue, celles-ci doivent être placées entre guillemets doubles (par exemple "chaîne"). Dans les scripts, les chaînes entre guillemets doubles doivent, à leur tour, être placées entre guillemets simples (par exemple,
'"string"').Pour calculer un champ afin qu’il corresponde à une valeur numérique, spécifiez la valeur en question dans le paramètre Expression sans guillemet.
Héritage :
arcgis.rand()n’est plus pris en charge à partir de la version 2.0 d’ArcGIS Pro. Des fonctions comparables utilisant le modulerandomPython doivent être utilisées en lieu et place. Pour utiliser le modulerandomavec succès, ajoutez-le en tant qu’importation dans le paramètre Code Block (Bloc de code).Vous pouvez créer des expressions complexes à l’aide du paramètre Code Block (Bloc de code). Spécifiez directement le bloc de code dans la boîte de dialogue ou sous la forme de 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
mathPython dans le paramètre Code Block (Bloc de code). Vous pouvez également importer des modules supplémentaires. Le modulemathfournit 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 modulemath, consultez l’aide 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é.Remarque :
L’outil Calculer des attributs géométriques prend en charge des calculs similaires.
Pour calculer la surface et la longueur dans Python, utilisez les méthodes
getAreaetgetLengthavec 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')
Voir les objets ArcPy
PolygonetPolylinepour plus d’informations.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. Il est possible d’utiliser d’autres applications (par exemple, Notepad) pour créer ou modifier des fichiers.calà condition que ces fichiers soient écrits en utilisant le 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.
Remarque :
L’utilisation d’une expression SQL pour concaténer des champs de type chaîne dans une géodatabase mobile combine les valeurs tout en ignorant les valeurs nulles.
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 les expressions Python ou Arcade.
L’utilisation de l’option SQL du paramètre Expression Type (Type d’expression) a les limitations suivantes :
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éodatabase 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.
Paramètres
| Etiqueter | Explication | Type de données |
|---|---|---|
|
Input Table (Table en entrée) |
Table en entrée contenant le champ qui sera mis à jour avec le nouveau calcul. |
Mosaic Layer; Raster Layer; Table View |
|
Nom du champ (existant ou nouveau) |
Champ qui sera mis à jour avec le nouveau calcul. S’il n’existe pas de champ portant le nom spécifié dans la table en entrée, il est ajouté. |
Field |
|
Expression |
Expression de calcul simple utilisée pour créer une valeur qui sera indiquée dans les lignes sélectionnées. |
SQL Expression |
|
Type d’expression (Facultatif) |
Précise le type d’expression qui sera utilisé. Si l’entrée est un service d’entités, le type d’expression par défaut est SQL. Pour les autres types d’entrée, le type d’expression par défaut est Python. Pour en savoir plus sur les expressions Python, consultez Exemples d’utilisation de l’outil Calculer un champ dans Python. Pour en savoir plus sur les expressions Arcade, consultez ArcGIS Arcade dans l’aide pour les développeurs. Pour en savoir plus sur les expressions SQL, consultez Syntaxe d’une expression SQL et Calculer des valeurs de champ. 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. Seuls 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 les expressions Python ou Arcade. Pour en savoir plus sur les expressions VBScript, consultez Exemples VBScript d’utilisation de l’outil Calculer un champ.
|
String |
|
Bloc de code (Facultatif) |
Bloc de code utilisé pour des expressions Python ou VBScript complexes. |
String |
|
Type de champ (Facultatif) |
Spécifie le type de champ du nouveau champ. Ce paramètre n’est utilisé que lorsque le nom de champ n’existe pas dans la table en entrée. Si le champ est de type texte, il sera d’une longueur de 512, sauf si l’entrée est un shapefile ou un fichier dBASE. Dans ce cas, la longueur sera égale à 254. Pour ajuster la longueur, utilisez l’outil Modifier le champ.
|
String |
|
Appliquer des domaines (Facultatif) |
Indique si les règles de domaine de champs sont appliquées.
|
Boolean |
Sortie dérivée
| Etiqueter | Explication | Type de données |
|---|---|---|
|
Table en entrée mise à jour |
Table mise à jour. |
Table View; Raster Layer; Mosaic Layer |
Environnements
Espace de travail courant, Etendue, Transférer les descriptions des domaines de champs
Cas particuliers
- Transférer les descriptions des domaines de champs
-
When this environment is turned on, any fields that have an associated domain will use the domain description instead of the field's value. Values from fields that do not have a domain will be unaffected.
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui