Automatisation des tâches avec Python

Il y a 2 options relativement faciles pour automatiser des tâches avec les logiciels Esri. La première est d’utiliser l’outil « Model Builder » inclus dans ArcGIS et ArcGIS Pro. Il offre une interface intuitive qui permet l’automatisation des tâches via une « programmation »  par diagramme. Il suffit de mettre les outils les uns après les autres pour créer un nouvel outil.

Les conditions

C’est pratique et facile, mais ce type d’automatisation des tâches comporte certaines limitations. L’une des limites qui causent le plus de problèmes, selon moi, est la difficulté d’y inclure des conditions. Bien que les modèles peuvent exécuter des boucles (for, while, … ), ces derniers ne peuvent pas exécuter de condition (if, else, …). Autrement dit, si vous voulez que le modèle exécute une partie plutôt qu’une autre selon une condition, cela devient un peu compliqué. Par exemple, si un usager entre une classe d’entités de type point ou ligne comme intrant «forme de découpe » dans l’outil de découpage, on a un problème. Il serait bien d’y mettre une condition pour éviter que le script plante.

Source : esri

Il est possible d’inclure une condition dans un modèle, mais il faut utiliser un module écrit en Python et inclure ce module qui traite la condition dans le modèle. Si vous avez besoin de ce petit bout de code pour y inclure une ou des conditions dans votre modèle, voici comment faire ici.

Planificateur des tâches

L’autre élément qui limite l’utilisation de « Model Builder » comparativement au script Python est l’absence l’automatisation des tâches sur une base régulière. Autrement dit, j’ai un script que je veux exécuter tous les lundis par exemple. Avec l’outil « Model Builder », ce n’est pas possible, il faut qu’un usager exécute le modèle. Avec les scripts Python, c’est possible. Il suffit d’inclure le fichier de script, soit le fichier .py, dans le planificateur de tâche de Windows (voir ici pour savoir comment y accéder). Pour y inclure le script dans le planificateur de tâche, il suffit de créer une nouvelle tâche de base (un tutoriel se trouve ici).

Si vous avez un géotraitement qui a été fait avec « Model Builder », sachez qu’il est possible de l’inclure dans une tâche automatisée. Vous devrez le convertir en script Python. Pour ce faire, suivre les étapes suivantes :

  1. Dans le menu de ModelBuilder, cliquez sur Modèle > Exporter > Vers un script Python.
  2. Accédez à l’emplacement où vous voulez enregistrer le script.
  3. Tapez un nom de fichier pour le script.
  4. Cliquez sur Enregistrer.

*Plus d’information sur l’export d’un modèle en script Python ici.

Par la suite il suffit de mettre ce script dans le planificateur des tâches. Voilà!

Martin

Plus d’infos ici : https://blogs.esri.com/esri/arcgis/2013/07/30/scheduling-a-scrip/

Étiqueté , , , , ,