Apprendre ArcPy?

37

Où puis-je commencer à apprendre ArcPy?

PolyGeo
la source

Réponses:

71

Cette question a été convertie en wiki de communauté et en wiki bloqué car il s'agit d'un exemple de question qui cherche une liste de réponses et semble être assez populaire pour le protéger de la fermeture. Elle devrait être traitée comme un cas particulier et ne devrait pas être considérée comme le type de question qui est encouragée sur ce site ou sur tout autre site Stack Exchange, mais si vous souhaitez apporter plus de contenu, n'hésitez pas à le faire en modifiant cette réponse. .


Examinez les publications ici et d'autres sites Web utilisant des scripts Python, essayez de les déconstruire et voyez quelles techniques les auteurs utilisent pour accomplir leur tâche. Notre FAQ auto-assemblage sur ArcPy mérite d’être revue à cette fin.

Vous trouverez instructif d'essayer de résoudre les problèmes des autres. Nous avons une liste auto-assemblée de questions sans réponse sur ArcPy pour vous aider à les trouver.

Documentation ArcGIS:

Lisez les fichiers d'aide !! À 90%, ArcPy est identique à l’utilisation des outils de l’interface graphique, mais vous les démarrez uniquement à l’aide de Python. Les fichiers d’aide ont tous un exemple de code Python en bas.

Livres en ligne:

Cours en ligne:

Tutoriels:

Documentation Python:

Présentations:

Livres papier:

Communautés d'utilisateurs:

Blogs:

Exemple de code:

Outils / Environnements de développement intégré (IDE) - Non commercial:

Modules / Cadres:

Consultez également ces conseils généraux pour les nouveaux programmeurs Python dans cette réponse à la section Exportation de mxds dans des fichiers PDF à l’aide d’ArcPy? .

blah238
la source
1
Ancienne question, mais je ne connais pas encore ArcPy et j'ai pensé ajouter ce qui m'a aidé récemment. Cette série sur YouTube a été extrêmement utile pour moi personnellement. Les vidéos sont courtes et je les ai toutes vues un soir à la vitesse 2x pour avoir une idée du fonctionnement d’ArpPy (je ne me suis pas soucié de faire des exercices, je n’ai regardé que les vidéos). [ youtube.com/playlist?list=PLO6KswO64zVu7S4bqQoHWR5516aCUEnda ]
AlexS1
J'ai aussi eu ce livre. C’est une bonne introduction, et c’est certainement utile pour moi, mais il manque vraiment de profondeur et de sujets avancés. Malgré tout, j’ai personnellement pensé que cela en valait la peine pour environ 25 $ d’utilisation (je ne paierais pas plus de 35 $ pour cela, mais c’est mon opinion). [ amazon.com/ArcPy-ArcGIS-Second-Silas-Toms/dp/1787282511/… ]
AlexS1
14

Je recommande fortement de lire la section Programmation ArcGIS 10.1 avec Python Cookbook .

entrez la description de l'image ici

De ma propre expérience, vous ne pouvez pas apprendre strictement le paquet du site arcpy sans faire intervenir des concepts plus larges du langage de programmation Python. En fait, j'ai d'abord essayé d'adopter l'approche à laquelle vous éludiez, lorsque j'ai commencé à utiliser le package de site arcpy pour automatiser les processus dans ArcGIS. Cependant, je me suis rapidement retrouvé à parcourir la documentation Python à la recherche de meilleures approches pour, par exemple, manipuler des chemins tels que with os.path.join(). J'ai également constaté que j'avais évité les bibliothèques Python incroyablement puissantes telles que NumPy et SciPy en acceptant les alternatives ESRI. En résumé, je recommanderais les étapes suivantes pour apprendre les principes fondamentaux de Python, complétés par le paquet du site arcpy:

  1. Premièrement: utilisez un IDE tel que PythonWin ou PyScripter pour effectuer tous vos scripts! Il faut trop de temps à de nombreuses personnes pour se rendre compte qu'elles peuvent implémenter et déboguer des scripts en dehors de la fenêtre python d'ArcGIS.
  2. Effectuez même les tâches les plus simples en utilisant Python. Par exemple, définissez un espace de travail et créez une géodatabase par programme. Ne commencez pas à créer des scripts compliqués.
  3. Au début, vous pouvez utiliser l'intégralité de vos scripts avec arcpy. N'oubliez pas qu'il existe des méthodes plus efficaces et plus efficaces pour de nombreuses tâches. Recherchez toujours une meilleure alternative avec du Python pur, si nécessaire.
  4. Trouvez des solutions programmatiques aux demandes sur ce site. Cela vous aidera certainement à compléter vos compétences, car cela vous exposerait à des problèmes extérieurs à votre zone de confort.
  5. Enfin, une fois que vous pensez maîtriser Python, suivez un cours dispensé par un instructeur d'ESRI, tel que Introduction à la géotraitement de scripts à l'aide de Python . Oui, ces cours sont coûteux, mais ils sont précieux et renforceront vraiment ce que vous avez déjà appris. Il suffit de ne pas entrer dans l'un de ces cours sans une bonne compréhension des concepts majeurs.
Aaron
la source
6

Je forme souvent des personnes à l’utilisation d’ArcMap et notre formation présente Python et Arcpy. J'essaie tellement de faire lire le fichier d'aide aux gens! Qu'en est-il des personnes qui ne lisent pas le fichier d'aide, cela me rend fou!

Si vous ouvrez le fichier d'aide d'un outil de traitement géographique, il fournit toujours un exemple de code python utilisant cet outil. C'est un excellent moyen d'apprendre à interagir avec le module arcpy dans un environnement Python.

Pour un débutant, il est gratuit et intégré au fichier d’aide de l’application. Comme vous voulez faire des choses plus sophistiquées, allez aux ressources qui ont été rassemblées sur ce fil.

Hornbydd
la source
3
Cette. Oui. Il y a beaucoup de documentation dans le monde ArcGIS. Les gens ont passé beaucoup de temps à la rédaction de cette documentation. C'est un peu déroutant pour moi que les gens aient la peine de poser une longue question sur Internet qui donne une réponse qui n'est qu'un lien vers la documentation, alors que la personne aurait pu utiliser un moteur de recherche, écrit un nombre de mots significativement plus réduit, et obtenu à cette même page d'aide.
Jason Scheirer
5

La page de ressources Python pour ArcGIS est probablement un bon début. Il existe également une variété de livres disponibles . Si vous n'avez aucune connaissance de python. Python.org serait également une bonne ressource.

Craig
la source
3

La seule chose que je voudrais ajouter est de créer quelque chose dans le constructeur de modèle et de l'exporter dans un script Python pour vous donner une idée de la manière dont les différents composants s'intègrent.

om_henners
la source
7
Je mettrais en garde contre cela. Vous devez effectuer beaucoup de nettoyage avec cette approche (l’exportateur insère beaucoup de noms crus, de variables étranges, etc., et certaines choses ne fonctionnent tout simplement pas lorsqu’elles sont exportées à partir de ModelBuilder), et je crois que le simple fait de taper des instructions et des fonctions vous oblige à apprendre plus efficacement que de laisser un outil le faire pour vous.
blah238
6
Une alternative consiste à cliquer avec le bouton droit sur un résultat de géotraitement, puis à cliquer sur "Copier sous forme d'extrait Python" si vous souhaitez obtenir la syntaxe d'un appel de fonction (particulièrement utile pour des opérations telles que les mappages de champs).
blah238
Oui, bon point - ce n'est pas grave si vous ne faites que quelques opérations ensemble (quelques tampons suivis d'un clip, peut-être), mais comme vous le dites, cela devient rapidement moche pour les gros modèles. J'aime bien l'idée de copier le script gp en tant qu'extrait.
om_henners
Je n'avais pas pensé à cela pour les cartographies de champs. Je vais devoir essayer ça.
Jay Guarneri
1
+1 c'est toujours un bon truc, surtout si vous devez par exemple apprendre à intégrer la syntaxe de reclassification dans votre script.
Aaron