Les scripts Python dans ArcGIS sont nouveaux pour moi, mais pas pour ModelBuilder.
J'aimerais connaître les avantages de Python par rapport à ModelBuilder.
Quand devrions-nous écrire un script Python pour l'automatisation SIG plutôt que d'utiliser ModelBuilder?
Quelles sont les fonctionnalités d'automatisation de Python que nous ne pouvons pas trouver dans ModelBuilder?
la source
Si vous travaillez uniquement dans les limites d'ArcGIS, voici quelques considérations à prendre en compte lorsque vous tenterez de déterminer l'approche à adopter.
Compte tenu de ces considérations:
Il n’ya probablement pas de réponse à la question "qui est le meilleur" pour un usage personnel, mais si vous recherchez des possibilités d’emploi à long terme, en apprenant Python, vous vous démarquerez de ceux qui savent seulement utiliser les outils préprogrammés, ou Il suffit de savoir comment utiliser ModelBuilder. Vous vous donnez également la possibilité d'aller au-delà des limites de Python pour ArcGIS (ArcPy) et de commencer à automatiser beaucoup plus de tâches et de projets en utilisant d'autres bibliothèques SIG propriétaires et à code source ouvert, ainsi que de nombreuses bibliothèques non SIG (base de données). , manipulation d'images, statistiques, etc.).
la source
Model Builder est un langage de programmation visuel très facile à apprendre et une bonne entrée dans la programmation SIG en général. Mais dans certains cas, le python peut faire plus.
Un exemple est l'intégration de bibliothèques SIG non ESRI. Presque tous les SIG Open Source peuvent également être adressés via Python (par exemple, GRASS , Sextante , QGIS , SAGA ). Cela m'a beaucoup aidé, car je n'ai qu'une licence ArcView. Ainsi, chaque fois que je ne peux pas utiliser un certain outil de géotraitement dans ArcGIS, je regarde quelles autres options sont disponibles dans les SIG Open Source. Je prends ensuite ces outils OpenSource et les combine avec des outils ArcGIS dans un script python plus volumineux ou les intègre dans ModelBuilder via un script python plus petit.
Je suis sûr que les autres membres peuvent nommer plus d'avantages.
la source
Lorsque vous utilisez Python et ArcGIS, vous bénéficiez de toutes les fonctionnalités de Python, en plus de celles que vous possédiez déjà dans ArcGIS. Si vous avez besoin de ce type de puissance et de flexibilité, cela dépend de vos souhaits. En outre, il faut du temps pour connaître et utiliser réellement un langage de programmation tel que Python. Si cet investissement en vaut la peine, c'est à vous de décider. Cependant, pour le traitement de données sérieuses, un vrai langage de script est un très bon ajout à votre arsenal.
En dehors de toute fonctionnalité que ModelBuilder pourrait manquer, une discussion plus fondamentale est également en cours. En général, les scripts sont beaucoup plus appropriés pour créer des flux de travail complexes. Le code est traité de haut en bas et les tâches complexes peuvent être subdivisées en tâches plus petites en utilisant, par exemple, des fonctions. ou des objets. Un outil graphique tel que le constructeur du modèle a tendance à devenir un gros spaghetti.
la source
Je suis partisan de la création de scripts Python. C'est plus amusant d'écrire du code que de perdre son temps avec les lignes de connexion aux boîtes, etc., du moins pour moi.
Ce qui est vraiment génial avec les scripts Python, c'est que vous pouvez planifier l'exécution de vos scripts à une heure qui vous convient. Si vous avez un script qui prend un certain temps à compléter ou qui doit être exécuté en dehors des heures de bureau, cela est vraiment pratique. Vous pouvez voir un exemple de planification d'un script ici .
Et comme le mentionne @Aaron, vous pouvez facilement configurer une boucle dans un script Python.
Si vous commencez à utiliser des scripts Python, vous pouvez créer un modèle avec Model Builder et l'exporter en tant que script Python. Je le fais parfois si j'ai du mal à comprendre comment utiliser plusieurs outils dans un script. Cela pourrait vous aider à comprendre comment assembler des scripts.
la source
J'ai constaté qu'il me semblait que je ne trouvais plus de solution avec le constructeur de modèle qu'avec les scripts Python. La nature un peu "boîte noire" du constructeur de modèle rend pour moi plus difficile de localiser le problème.
J'ai également constaté que je pouvais trouver beaucoup plus d'aide sur python. J'ai tendance à trouver beaucoup de discussions et de sujets sans issue sur le constructeur de modèle. Il existe également moins d’exemples où, comme pour Python, vous pouvez probablement trouver de petits fragments de la plupart des scripts que vous écrivez.
la source