Suite

Comment exécuter un outil de Whitebox GAT dans ArcGIS ?

Comment exécuter un outil de Whitebox GAT dans ArcGIS ?


J'ai une série d'outils que j'ai besoin d'exécuter dans ArcGIS pour conditionner hydrologiquement mon DEM, mais la première étape de ce processus consiste à exécuter l'outil Breach Depressions de Whitebox GAT (j'ai trouvé que cet outil fonctionne très bien pour percer les ruisseaux à travers les ponts et barrages).

Est-il possible de travailler entièrement dans ArcMap et d'appeler l'outil de dépression des brèches à partir de la whitebox ? J'ai essayé d'exécuter le code python dans ArcGIS mais cela ne semble pas fonctionner. Voici ce que j'ai essayé :

wd = "D:LIDAR2060006_Patuxent1_HeadwatersPatuxent104_HUC12" pluginHost.setWorkingDirectory(wd) inputFile = wd + "DEM_clip.dep" outputFile = wd + "DEMBreach.dep" maxBreachLength = "50" outputPointer [inputFile, outputFile] pluginHost.runPlugin("BreachDepressions", args, False)

Je suis assez nouveau sur python et le codage en général, donc la réponse peut être plus évidente que je ne le pense. Je devrais ajouter qu'en ce moment, j'exécute mes outils dans un modèle de géotraitement, donc idéalement, j'aimerais ajouter en quelque sorte l'outil de dépressions de brèche de boîte blanche dans mon modèle de géotraitement, mais je serais prêt à l'essayer dans un script python.


Je crains que lorsque j'ai écrit Whitebox GAT, je n'ai jamais vraiment prévu qu'il y aurait une demande pour pouvoir exécuter les outils de plugin Whitebox depuis l'extérieur de l'interface utilisateur. Je savais qu'il y aurait un besoin d'automatiser les workflows et c'est pourquoi j'y ai écrit les capacités de script, de sorte que chaque outil puisse être appelé en interne à partir d'un script Python, Javascript ou Groovy. Mais je n'ai tout simplement jamais pensé aux personnes souhaitant exécuter un outil Whitebox à partir d'ArcGIS. Étant donné que Whitebox fonctionne sur la machine virtuelle Java et à cause de la façon dont j'ai structuré le programme, je ne pense malheureusement pas qu'il soit actuellement possible de le faire. Les outils de plug-in Whitebox GAT doivent pouvoir communiquer avec l'interface utilisateur Whitebox.

J'ai eu beaucoup d'intérêt à pouvoir le faire au fil des ans et j'ai donc commencé à développer une petite bibliothèque expérimentale d'analyse géospatiale open source, appelée GoSpatial, avec cet objectif précis à l'esprit. Il n'y a pas beaucoup d'outils dans GoSpatial encore, mais il existe un outil de brèche (ViolationDépressions) basé sur l'outil de Whitebox GAT auquel vous faites référence. J'ai récemment écrit un article qui décrit en détail le fonctionnement de cet outil,

Lindsay JB. Dans la presse. Méthodes hybrides efficaces d'élimination des puits de remplissage des brèches pour l'application du chemin d'écoulement dans les modèles d'élévation numériques. Processus hydrologiques. DOI : 10.1002/hyp.10648

que vous pouvez télécharger sur ce site :

http://www.uoguelph.ca/~hydrogeo/publications.html

Je pense que vous constaterez que cet outil de violation répond à votre besoin d'une méthode améliorée pour la suppression des puits et l'application des flux. L'outil prend un certain nombre de formats raster DEM en entrée, y compris le raster binaire ArcGIS (fichiers .flt et .hdr) et les fichiers GeoTIFF, et écrira également le DEM modifié dans ces mêmes formats. Il y a aussi une brève description de la façon dont vous pouvez appeler GoSpatial outils à partir d'un script Python dans le référentiel GitHub de la bibliothèque. L'exemple montre comment appeler le RemplirDépressions outil, mais l'idée est la même pour le ViolationDépressions outil, il utilise simplement des paramètres différents. Si vous lisez l'article, vous constaterez que je décourage fortement les gens de combler leur dépression lorsque la violation (et les méthodes hybrides de violation d'abord) offrent une bien meilleure solution pour l'application des flux dans la plupart des conditions. Donc, vous pourriez voir l'ironie dans le fait que j'ai utilisé le RemplirDépressions dans l'exemple de script Python sur le site. Quoi qu'il en soit, si vous avez besoin d'aide ou si vous rencontrez des problèmes avec la bibliothèque, faites-le moi savoir.

METTRE À JOUR

Des progrès importants ont été réalisés récemment, ce qui a entraîné la nécessité de mettre à jour la réponse originale. Il est désormais possible d'utiliser Python pour appeler de nombreux outils de géotraitement dans Whitebox GAT à l'aide de la nouvelle bibliothèque WhiteboxTools. Bien que WhiteboxTools ne permet actuellement pas aux utilisateurs d'accéder à plus de 400 outils Whitebox GAT, environ 300 des outils d'origine ont été transférés vers cette nouvelle bibliothèque de géotraitement autonome. Voici un exemple d'utilisation de Python pour appeler un outil :

# importer la classe WhiteboxTools depuis le script whitebox_tools.py depuis whitebox_tools importer WhiteboxTools wbt = WhiteboxTools() # définir le répertoire de travail wbt.work_dir = "/chemin/vers/données/" # exécuter un filtre moyen 9 x 9 wbt.mean_filter("input_file .tif", "fichier_sortie.tif", 9, 9)

Des exemples plus détaillés d'utilisation de scripts Python pour interagir avec WhiteboxTools peuvent être trouvés dans le manuel de l'utilisateur.


Voir la vidéo: How to create a surface profile in ArcGIS Pro