Comme vous vous en doutez, j'ai eu quelques contretemps dans la publication
des tutoriels sur l'API Python... La bonne nouvelle, c'est qu'entre temps la
version 2.4.3
est sortie, et avec elle les capacités très cools du module
arcgis.ai.
Dans ce tutoriel, nous allons voir comment utiliser la
classe d'analyse d'image
pour analyser les pièces jointes d'une couche d'entités. Ce workflow peut par
exemple vous être utile dans le cas d'une couche d'entité issue d'une enquête
de terrain Survey123, où l'opérateur de terrain peut prendre des photos, puis
votre script se déclencherait tous les soirs pour remplir un champ de
description de l'image, qui accélèrerait le travail de terrain.
Pour utiliser cette capacité, vous devez utiliser la version 2.4.3 de l'API.
Si vous utilisez ArcGIS Notebooks, elle est incluse à partir de la v3.7
d'ArcGIS Pro, et dans la mise à jour de juin 2026 dans ArcGIS Online. Si vos
versions des logiciels ne sont pas à jour (ou pas encore disponible), vous
pouvez suivre le premier tutoriel de cette série pour
installer un environnement Python avec l'API, ce qui vous permettra d'installer celle-ci (ou de la mettre à jour) dans la
dernière version. Notez que vous devez également posséder une organisation où
les assistants IA sont activés.
Cet article vous présente les étapes pas à pas avec les captures d'écran, et
vous pouvez également récupérer
le Notebook complet sur mon Github.
Imports et connexion au portail
Je commence comme d'habitude par importer les différents modules qui me seront
utiles. Vous pouvez également vérifier que votre version de l'API est correcte
(si ça n'est pas le cas, l'import d'arcgis.ai échouera de toute façon).
Vous pouvez ensuite vous connecter au portail. Ici, vu que je ne travaille pas
dans ArcGIS Notebooks, je passe mes identifiants de la manière suivante
:
Appel et préparation de la couche d'entités
J'ai repéré dans mon org une couche d'entités parfaite pour les besoins de ma
démonstration : elle comporte des pièces jointes hébergées sur un
domaine arcgis.com (obligatoire pour que l'analyse fonctionne) ; c'est le cas
par défaut pour les couches d'entités issues d'enquêtes Survey123. Mon but va
être de rajouter un champ de description de la photo, et d'utiliser l'IA pour
le compléter.
Dans votre script, remplacez l'id de la couche par celui d'une couche
hébergée sur votre portail.
Vous pouvez travailler directement sur la couche d'entités d'origine, mais vu
qu'elle appartient à l'un de mes collègues et que je n'ai pas envie de
bousiller son travail, je l'ai d'abord clonée, puis j'accède au layer que je
veux cibler (ici il n'y en a qu'un seul, il est donc à l'index 0) :
Je viens maintenant ajouter un champ description_photo dans ma couche clonée
:
Enfin, je requête toutes les entités de la couche :
Analyse de la photo par l'IA
Voici à quoi ressemblent les données de ma couche à l'heure actuelle si je
vais l'observer sur mon portail :
Le champ de description est vide, et je vais demander au service d'IA
d'analyser la photo et de la décrire. Ici, nous nous contenterons d'une
description globale, mais vous pouvez vous servir de la même classe pour faire
de la détection d'objets, de l'extraction de texte ou de la segmentation, en
fonction de ce que vous indiquez dans votre prompt.
Je vais parcourir chacune des entités, et accéder à leur pièce jointe (le
script ignore les entités ne possédant pas de pj). J'appelle ensuite la
fonction d'analyse d'image, et lui passe en argument la pièce jointe de
l'entité. J'indique dans le prompt ce que j'attends pour l'analyse de cette
image, ici une simple description. Notez que vous pouvez passer plusieurs
prompts dans la même fonction via une liste, ce qui vous permet de demander
plusieurs choses différentes.
Il ne me reste plus qu'à appliquer les mises à jour à la couche.
En rafraîchissant votre couche, vous verrez que le champ description_photo de
la table attributaire de votre couche a été complété :
C'est fini pour cet épisode ! Notez qu'en plus de pouvoir analyser les images,
le module
arcgis.ai
possède des capacités d'analyse de texte et de traduction que vous pouvez
également inclure à vos workflows d'automatisation.












Aucun commentaire:
Enregistrer un commentaire