Suite

Suivre la progression de l'exécution des outils de géotraitement dans ArcPy ?

Suivre la progression de l'exécution des outils de géotraitement dans ArcPy ?


Je cherche un moyen d'accéder à un outil GP exécuté dans un script Python pour pouvoir voir quelle partie du travail a déjà été effectuée.

J'ai trouvé la fonction SetProgressor, mais celle-ci n'est disponible que lors de l'exécution d'outils de script via l'interface graphique d'ArcGIS Desktop. Je suis au contraire intéressé à obtenir les informations sur l'avancement via le code. Cela permet de suivre l'exécution de l'outil (cela sera signalé à un utilisateur qui a déclenché l'exécution du code). Je n'exécute pas le code dans la session d'application ArcGIS Desktop.

Ainsi, par exemple, lors de l'appel de l'outil Buffer GP sur une classe d'entités surfaciques (viaarcpy.analysis.Buffer), je veux obtenir une estimation de l'outil après quelques secondes combien (en %) de travail a déjà été fait et cette information devrait être accessible via le code.


Vous ne pouvez pas obtenir ces informations car le script Python se bloquera jusqu'à la fin de l'exécution de l'outil.


Vous ne pouvez pas obtenir l'état actuel de l'exécution de l'outil lorsqu'il a été exécuté en Python (arcpy). L'outil devrait s'exécuter de manière asynchrone, sans bloquer votre application pour prendre en charge cela. Si c'était Async, vous affecteriez l'appel d'exécution à une variable et vérifieriez l'état de la variable. C'est exactement comment fonctionne un service GP. Mais votre scénario appelle un outil dans Desktop, et ce mode d'exécution est essentiellement synchrone : vous exécutez l'outil et votre script "se fige" jusqu'à ce qu'il soit terminé.

Examiner le multitraitement ou des techniques similaires n'aidera pas. Le thread ou la tâche que vous lancez ne renvoie rien tant que l'outil n'est pas terminé.

En bref, le pourcentage d'achèvement est une capacité de l'interface utilisateur.


Votre métier de SIG vous donne-t-il une agence créative ? Le mien ne le fait pas, et je veux vraiment en trouver un qui le fasse

J'ai commencé ma carrière de SIG depuis 2 ans et je crains d'avoir mal choisi.

Je me suis spécialisé en génie de l'environnement à l'école. J'ai adoré l'élément de résolution de problèmes, où je pouvais utiliser mes compétences techniques pour trouver des solutions innovantes à des problèmes difficiles. Dans le monde réel, j'ai rapidement découvert que tout le monde ne fait que des choses à l'emporte-pièce - cela ne vaut jamais le risque d'essayer quelque chose de nouveau.

Après cela, j'ai fait un certificat SIG. J'ai aimé mon cours de SIG à l'université et j'ai pensé qu'en me spécialisant dans quelque chose d'informatique, je pourrais me lancer dans plus de tâches de modélisation. Si vous ne faites qu'exécuter des choses sur un ordinateur, vous pouvez essayer de nouvelles choses et vous tromper, puis réessayer, n'est-ce pas ? Pas tellement - "arrêtez de perdre du temps !!". Je suis analyste SIG dans une société d'ingénierie et je n'ai aucune autonomie sur ce sur quoi je veux travailler, quand, où, comment l'aborder, parfois même sur quelles couleurs faire ma symbologie.

Je veux un travail créatif. Ce que cela signifie pour moi, c'est que je peux avoir une idée et qu'il y a de la place pour l'essayer et voir ce qui se passe. Je suis une personne à l'esprit technique qui aime les formules et les feuilles de calcul, mais je ne pense vraiment pas que cela soit en conflit avec mon désir d'avoir une agence de création.

Quelqu'un a-t-il un rôle SIG où vous pouvez être créatif ? Que faites-vous, comment en êtes-vous arrivé là ?


Voir la vidéo: Exemple dutilisation des outils de géotraitement ArcMap