Automatisation ArcPy
Pauline Louis
Created on January 29, 2022
More creations to inspire you
BEYONCÉ
Horizontal infographics
ALEX MORGAN
Horizontal infographics
ZODIAC SUN SIGNS AND WHAT THEY MEAN
Horizontal infographics
OSCAR WILDE
Horizontal infographics
GOOGLE - SEARCH TIPS
Horizontal infographics
NORMANDY 1944
Horizontal infographics
VIOLA DAVIS
Horizontal infographics
Transcript
Option Numérique appliqué aux géosciences
01 - Automatiser un workflow
03 - Accéder aux propriétés des données
04 - Accéder à la géométrie et aux valeurs des tables attributaires
05 - Créer de nouvelles données SIG
02 - Transformer un script en Toolbox
Données
Aide en ligne
Créer un script
Automatiser un workflow
Exercice 1 : création d'un script pour l'outil Clip
Exercice 2 : Coder un petit workflow
Exercice 3 : Utiliser les outils de sélection.
Automatisation complète d'un workflow (CR1)
Lien vers la Storymap
Transformer un script en toolbox
Transformer un script en toolbox
Créer une nouvelle boîte à outils
1
Créer une nouvelle boîte à outils
2
Edit permet d'accéder au script de la toolbox. Cliquez dessus pour ouvrir le script et continuer l'exercice.
Check syntax permet de vérifier les erreurs dans votre script. A utiliser par exemple si votre outil ne se lance plus.
Toolbox et Tool
La Toolbox Analysis Tool contient plusieurs outils (Tool) : Clip, Select, Split, Split by Attributes, Table Select...
Vous pouvez définir plusieurs class Tool (Tool1, Tool2, ...) pour que votre boîte à outils soit composée de plusieurs outils.
Il faudra penser à les appeler dans la fonction self.tools de la Toolbox (ex : self.tools = [Tool1, Tool2])
Category
La Toolbox Analysis Tool est divisée en plusieurs catégories : Extract, Overlay, ...
Vous pouvez vous aussi créer des catégories dans votre Toolbox, en ajoutant un attribut self.category ="Nom de la catégorie" à vos outils.
N'hésitez pas à changer l'alias de votre Toolbox ainsi que le nom, le label et la description de votre Tool
Nous allons maintenant modifier la fonction getParameterInfo () de notre outil
Commençons par ajouter un paramètre.
Vous pouvez directement ajouter plusieurs paramètres d'un coup. Pensez à l'ajouter à la liste des paramètres que votre fonction retournera.
Il est temps d'en modifier les valeurs!
1
2
3
5
4
6
Nom de la variable contenant votre paramètre. Donnez un nom explicite, sans caractère spéciaux!
Alias du paramètre, c'est le nom qui apparaîtra lorsque vous utiliserez votre outil. Tous les caractères sont acceptés!
Nom de votre paramètre. Donnez un nom explicite, sans caractère spéciaux! (il peut être égal au nom de la variable contenant le paramètre)
Enregistrez votre script, puis faites un refresh sur votre Toolbox et lancez votre outil en double-cliquant sur le petit parchemin . Voici ce qui devrait apparaître :
Votre premier paramètre est créé, à vous maintenant de faire tous les autres. Voici quelques petits indices supplémentaires pour définir au mieux vos paramètres :
Forcer la géométrie du .shp en entrée
Votre premier paramètre est créé, à vous maintenant de faire tous les autres. Voici quelques petits indices supplémentaires pour définir au mieux vos paramètres :
Forcer les valeurs prises à être contenues dans une liste, puis paramétrer une valeur par défaut (peuvent être utilisés séparément)
Voici ce à quoi devrait ressembler votre outil une fois que tous les paramètres auront été définis :
Copiez-collez le script de l'exercice 3 avant le return. Adaptez les indentations.
Mettez en commentaire ou supprimez toutes vos définitions de variables dont les valeurs seront celles prises par les paramètres définis plus tôt (dans l'exemple ci-contre, la couche de géomorphologie et la valeur + l'unité du buffer)
Nous allons ensuite récupérer toutes les valeurs des paramètresqui seront rentrées par l'utilisateur avec .valueAsText ou .value
Les noms que vous donnez aux variables récupérant les valeurs des paramètres devront être ensuite ceux appelés dans le script. Par exemple, j'utiliserai la variable geomorpho pour travailler sur le vecteur de géomorphologie.
Vous pouvez également ajouter des indications sur l'outil en général en rajoutant une miniature et un résumé.
Accéder aux propriétés des données
Utilisez les fonctions "List" pour lister le contenu de la géodatabase (features, tables et rasters).
Utilisez la fonction "Describe" pour lister le contenu de la géodatabase (features, tables et rasters) :
- Feature Class : Nom, Type de fichier, Géométrie, Système de coordonnées
- Raster : Nom, Type de fichier
- Table : Nom, Type de fichier
Utilisez la fonction "GetRasterProperties_management" pour lister le contenu de la géodatabase (features, tables et rasters) :
- Feature Class : Nom, Type de fichier, Géométrie, Système de coordonnées
- Raster : Nom, Type de fichier, Système de coordonnées, Taille de cellule XY, Type de pixel, Nombre de canaux
- Table : Nom, Type de fichier
Pour les feature classes uniquement, listez :
- Nom, Type de fichier, Géométrie, Système de coordonnées, Nombre de champs
- Nom, Type de champ, longueur (champ txt uniquement)
Accéder à la géométrie et aux valeurs des tables attributaires
Listez tout le contenu du champ VESSELNAME de la table disponible
Listez tout les valeurs uniques contenu du champ VESSELNAME de la table disponible
Mettez à jour le champ "Remark" :
- Remplacez le contenu du champ par "Main Vessel" si le VESSELNAME est "Fugro Commander";
- Remplacez le contenu du champ par "Second Main Vessel" si le VESSELNAME est "Wave Walker"
- Listez les coordonnées XYZ des tours de guet à l'aide de la fonction Search Cursor;
- Listez les coordonnées XYZ des sommets des lignes de visée à 15km
A partir de la gdb feu de forêt, vous allez créer un fichier .txt pour chacun des fichiers vecteurs à l'exception de "PNR".
Pour chacun de ces fichiers, vous allez lister :
- Le Nom/Numéro identifiant l'entité de manière unique
- Les coordonnées XYZ
Créer de nouvelles données SIG
Dans la table attributaire, ajoutez 5 nouveaux enregistrements à l'aide d'une boucle : remplissez le champ "VESSELNAME" par "New Vessel" et le champ "Remark" par "Ceci est un nouveau bateau"
Créez une nouvelle classe d'entités de type point en WGS84 correspondant à la localisation des deux villes suivantes :
- Brest, France (4,4878 W 48,3863 N)
- St John's, Canada (52,7126 W 47,5583N)
Fiche récapitulative des fonctions utilisées