Un des outils les plus fréquents pour la gestion de données est la fameuse calculatrice de champ d’ArcGis. Quand vous êtes sur une vue tabulaire, en cliquant droit sur le nom du champ (colonne), vous avez l’option « Calculateur de champs » qui vous ouvre la fameuse calculatrice:
Dans ArcGis Pro, pareil, vous faites la même opération et vous ouvrez la fenêtre de calculatrice de champs:
A première vue on dirait que c’est la même chose, avec un toilettage de mise en forme. Détrompez-vous il y a plus que ça.
Au revoir calculatrice ArcMap, bienvenue Calculatrice de la Toolbox
Contrairement aux apparences, ce n’est plus la même calculatrice qui est appelée à partir de la table attributaire.
Dans ArcMap vous avez une calculatrice interactive que vous appelez d’ArcMap ou ArcCatalog, et une calculatrice « batch » que vous pouvez utiliser dans les modèles de traitement ou directement à partir de la Toolbox.
Dans ArcGis Pro, c’est cette deuxième qui est appelée à partir de la table.
Conceptuellement, maintenant c’est plus simple car vous n’avez qu’un mode de travail. Par contre il y a quelques petits détails qu’il faudra avoir en tête. Le premier, et de taille, c’est que contrairement à votre calculatrice ArcMap, comme la nouvelle fait partie du geoprocesseur, elle obéit aux paramètres d’environnement. En particulier, si vous avez une étendue de traitement définie, le calcul ne se fera que sur les enregistrements qui sont à l’intérieur de cette étendue. Le reste des enregistrements ne sera pas calculé.
Pour modifier les paramètres d’environnement vous devez cliquer sur « Environments » en haut de la fenêtre.
Au revoir VB, bienvenue Python
Dans la calculatrice ArcMap vous avez deux boutons, en haut de la fenêtre qui vous permettent de choisir le langage utilisée pour écrire des expressions complexes dans la calculatrice. Vous avez le choix entre Script VB et Python. Dans ArcGis Pro, plus de boutons, plus de choix. Ou vous vous y mettez à Python, ou vous vous y mettez!
Annoncé maintes fois et entamé par étapes depuis quelques années, l’abandon de VB de la part d’ESRI est complet dans ArcGis Pro.
Si vous aviez stocké des expressions de calcul en VB, vous en êtes quittes pour les réécrire en Python.
Par contre, Python c’est un réel plus en ce qui concerne les possibilités de la calculatrice. Autant en VB vous étiez limité à l’enregistrement en cours, autant maintenant vous disposez de fonctions telles que autoincrement() qui génère un identifiant séquentiel, accumulate() qui calcule le cumul de valeurs d’une colonne (chaque ligne est le résultat de la somme de sa valeur plus la valeur de la ligne précédente), percentIncrease() qui est similaire mais qui stocke le pourcentage par rapport à la ligne précédente.
Un autre élément intéressant c’est que Python travaille sur les propriétés area et length des entités, mais qu’il peut le faire en changeant les unités par défaut. Vous pouvez avoir des area en mètres carrés et effectuer les calculs en km², etc…
Pour ce qui est des calculs de longueurs, en particulier pour les utilisateurs de la projection Lambert 93 (pas le CC) vous pouvez demander de calculer les longueurs géodésiques au lieu des longueurs planes. Ceci évite les erreurs de calcul de longueur avec le Lambert 93.
De plus des expressions Python peuvent utiliser les propriétés géométriques telles que : type, extent, centroid, firstPoint, lastPoint, area, length, isMultipart, et partCount (par exemple, !shape.area!).
Premiers pas avec la nouvelle calculatrice
Ce qu’il faut absolument savoir avant de commencer, les noms des champs sont maintenant délimités par des points d’exclamation : !fieldname!
Un autre petit point de détail, quand vous double-cliquez sur le nom du champ, comme avant, il est copié dans la fenêtre de calcul. Par contre si vous voulez replacer un champ qui est déjà dans la fenêtre de calcul, avant vous le sélectionniez, puis vous double-cliquiez sur le nom du nouveau champ. Ceci ne marche plus. Vous devrez effacer le champ dans la fenêtre de calcul car le double-clic ne fait qu’ajouter un nom de champ, ça ne remplace pas la sélection.
On ne peut pas faire ici un cours de Python. Il y en a pas mal sur le net. Vous avez dans la fenêtre de droite (Helpers) de la calculatrice de champs ArcGis Pro la liste des principales fonctions disponibles.
Hasard de l’ordre alphabétique, vous trouvez comme premier « Helper », donc comme outil d’aide, la fonction conjugate(). Si vous vous dites que vous pouvez commencer à regarder ce que fait Python avec cette fonction, vous prenez le plus mauvais départ!
Conjugate(), comme imag(), real() sont des fonctions pour travailler avec des nombres imaginaires! Sincèrement, j’en doute que ce soit votre cas.
Pour démarrer, allez voir les fonctions sur les chaînes de caractères (capitalize, rstrip, replace), les fonctions mathématiques (math.*) et surtout, tout en bas de la liste, les nouvelles fonctions dont on a parlé (accumulate, percentage, etc).
Dernier point avant de commencer, si vous n’êtes pas familier de Python et que vous vous lancez tout seul, dans Python les lignes respectent une indentation. Quand vous avez des scripts sur plusieurs lignes, le fait de mettre ou pas deux espaces en début de ligne, ça change tout!