Existe-t-il une différence de performances entre l'exécution d'un script Python dans la fenêtre Python et son exécution en tant qu'outil de script Python à partir de la boîte à outils d'ArcGIS Desktop 10.0?
Parfois, je dois utiliser ArcPy et faire fonctionner ArcGIS. Dans ma récente expérience, je peux exécuter le même script via la boîte à outils et dans la fenêtre python et la boîte à outils semble être un peu plus rapide.
CURRENT
mot - clé pour accéder au document ArcMap actuel dans un outil de script, tant qu'il est en cours d'exécution.import arcpy
prendra beaucoup de temps en tant que script autonome (ou partie d'une boîte à outils), alors que dans ArcMap, il fait déjà partie de l'espace de noms de la fenêtre python.Réponses:
Michael Markieta et gm70560 sont corrects. Si vous exécutez de grandes tâches de géotraitement, je le ferais certainement via un script python autonome, de préférence lancé depuis la ligne de commande et non un IDE. Pour ce type de tâche, la surcharge de l'importation d'ArcPy en vaut la peine.
Cependant, une petite tâche, en particulier une qui nécessite une intervention de l'utilisateur, est généralement plus rapide et plus pratique dans ArcMap - à moins que vous ne deviez ouvrir ArcMap spécifiquement dans ce cas, dans ce cas, vous avez la charge de démarrer ArcMap lui-même plus un certain temps d'arrêt pour vous connecter à toutes vos bases de données référencées dans le MXD (qui, si elles sont sur une connexion réseau lente, peuvent être fastidieuses).
De même, le traitement par lots, même de petites tâches, est, à mon avis, mieux fait dans un script Python autonome que via une boîte à outils dans ArcMap car vous ne prenez cette importation qu'une seule fois et n'avez pas la surcharge ArcMap.
Ayant fait beaucoup de géotraitement automatisé via des scripts Python, je serais par défaut à les exécuter en tant que processus autonomes parce que j'aime la vitesse et la flexibilité supplémentaires. La plupart des tâches qui s'exécutent plus rapidement dans la boîte à outils sont généralement suffisamment petites pour que je les ai exécutées dans ModelBuilder sans prendre la peine d'écrire du code.
la source