ArcPy lernen?

37

Wo kann ich anfangen, ArcPy zu lernen?

PolyGeo
quelle

Antworten:

71

Diese Frage wurde in Community-Wiki konvertiert und durch Wiki gesperrt, da es sich um ein Beispiel für eine Frage handelt, die nach einer Liste von Antworten sucht und so beliebt zu sein scheint, dass sie vor dem Schließen geschützt ist. Dies sollte als Sonderfall behandelt werden und nicht als die Art von Frage angesehen werden, die auf dieser oder einer anderen Stack Exchange-Site empfohlen wird. Wenn Sie jedoch mehr Inhalt dazu beitragen möchten, können Sie dies tun, indem Sie diese Antwort bearbeiten .


Schauen Sie sich Beiträge hier und auf anderen Websites an, die Python-Skripte verwenden, und versuchen Sie, diese zu dekonstruieren und festzustellen, mit welchen Techniken die Autoren ihre Aufgabe erfüllen. Zu diesem Zweck lohnt es sich, unsere selbst zusammenstellenden FAQ zu ArcPy zu lesen .

Sie werden es lehrreich finden, die Probleme anderer Menschen zu lösen. Wir haben eine Liste mit unbeantworteten Fragen in ArcPy zusammengestellt , damit Sie sie leichter finden können.

ArcGIS-Dokumentation:

Lesen Sie die Hilfedateien! 90% von ArcPy sind mit der Verwendung der GUI-Tools identisch, nur dass Sie sie mit Python starten. Die Hilfedateien haben alle unten Beispiel-Python-Code.

Online-Bücher:

Online Kurse:

Tutorials:

Python-Dokumentation:

Präsentationen:

Papierbücher:

Benutzergemeinschaften:

Blogs:

Beispielcode:

Tools / Integrated Development Environments (IDEs) - Nichtkommerziell:

Module / Frameworks:

Lesen Sie auch diese allgemeinen Tipps für neue Python-Programmierer in dieser Antwort auf " Exportieren von MXDS in PDFs mit ArcPy?". .

blah238
quelle
1
Alte Frage, aber ich bin neu in ArcPy und dachte, ich würde hinzufügen, was mir in letzter Zeit geholfen hat. Diese YouTube-Serie war für mich persönlich super hilfreich. Die Videos sind kurz und ich habe sie alle an einem Abend in 2-facher Geschwindigkeit angesehen, um einen Eindruck von der Funktionsweise von ArcPy zu bekommen (habe keine Übungen gemacht, sondern nur die Videos angesehen). [ youtube.com/playlist?list=PLO6KswO64zVu7S4bqQoHWR5516aCUEnda ]
AlexS1
Ich habe auch dieses Buch bekommen. Es ist ein anständiges bis gutes Intro und hat mir sicherlich geholfen, aber es fehlt definitiv an Tiefe und fortgeschrittenen Themen. Trotzdem dachte ich persönlich, es lohnt sich für ~ 25 US-Dollar (würde nicht mehr als ~ 35 US-Dollar dafür bezahlen, aber das ist meine Meinung). [ amazon.com/ArcPy-ArcGIS-Second-Silas-Toms/dp/1787282511/… ]
AlexS1
14

Ich empfehle dringend, das Programmieren von ArcGIS 10.1 mit Python Cookbook zu lesen .

Bildbeschreibung hier eingeben

Aus eigener Erfahrung können Sie das arcpy-Site-Paket nicht genau lernen, ohne irgendwann größere Konzepte aus der Programmiersprache Python einzubringen. Tatsächlich habe ich zuerst versucht, den Ansatz zu übernehmen, den Sie bisher nicht kennen. Dann habe ich begonnen, das arcpy-Site-Paket zum Automatisieren von Prozessen in ArcGIS zu verwenden. Ich suchte jedoch schnell in der Python-Dokumentation nach besseren Ansätzen, um beispielsweise Pfade wie mit zu manipulieren os.path.join(). Ich fand auch heraus, dass ich unglaublich leistungsfähige Python-Bibliotheken wie NumPy und SciPy vermieden hatte, indem ich die ESRI-Alternativen akzeptierte. Insgesamt würde ich die folgenden Schritte empfehlen, um Python-Grundlagen zu erlernen, die durch das arcpy-Site-Paket ergänzt werden:

  1. Erstens: Verwenden Sie eine IDE wie PythonWin oder PyScripter, um alle Ihre Skripte zu erstellen! Es dauert zu lange, bis zu viele Benutzer erkennen, dass sie Skripts außerhalb des ArcGIS-Python-Fensters implementieren und debuggen können .
  2. Führen Sie selbst die einfachsten Aufgaben mit Python aus. Definieren Sie beispielsweise einen Arbeitsbereich und erstellen Sie programmgesteuert eine Geodatabase. Beginnen Sie nicht damit, komplizierte Skripte zu erstellen.
  3. Es ist in Ordnung, alle Skripte zunächst mit arcpy zu erstellen. Beachten Sie jedoch, dass es für viele Aufgaben bessere und effizientere Methoden gibt. Suchen Sie bei Bedarf immer nach einer besseren Alternative mit reinem Python.
  4. Auf dieser Website finden Sie programmatische Lösungen für Anfragen. Dies wird definitiv dazu beitragen, Ihre Fähigkeiten abzurunden, da Sie Problemen außerhalb Ihrer Komfortzone ausgesetzt sind.
  5. Wenn Sie sich erst einmal mit Python vertraut gemacht haben, nehmen Sie an einem von einem Kursleiter durchgeführten Kurs von ESRI teil, z. B. Einführung in Geoverarbeitungsskripten mit Python . Ja, diese Kurse sind teuer, aber sie sind wertvoll und verstärken das, was Sie bereits gelernt haben. Nehmen Sie einfach nicht an einem dieser Kurse teil, ohne die wichtigsten Konzepte zu verstehen.
Aaron
quelle
6

Ich trainiere oft Menschen in der Verwendung von ArcMap, und unser Schulungskurs führt sie in Python und Arcpy ein. Ich versuche so sehr, die Leute dazu zu bringen, die Hilfedatei zu lesen! Was ist es, wenn Leute die Hilfedatei nicht lesen, das macht mich verrückt!

Wenn Sie die Hilfedatei eines Geoverarbeitungswerkzeugs öffnen, wird mit diesem Werkzeug immer ein Beispiel für Python-Code angezeigt. Auf diese Weise lernen Sie, wie Sie in einer Python-Umgebung mit dem arcpy-Modul interagieren.

Für Anfänger ist es kostenlos und direkt in die Hilfedatei der Anwendung integriert. Wenn Sie anspruchsvollere Dinge tun möchten, gehen Sie zu den Ressourcen, die in diesem Thread gesammelt wurden.

Hornbydd
quelle
3
Dies. Ja. In der ArcGIS-Welt gibt es viele Dokumentationen. Die Leute haben viel Zeit in das Schreiben dieser Dokumentation gesteckt. Es ist ein bisschen verwirrend für mich, wenn Leute sich die Mühe machen, eine lange Frage im Internet zu stellen, die eine Antwort erhält, die nur ein Link zur Dokumentation ist, wenn die Person eine Suchmaschine hätte verwenden können und eine bedeutend geringere Anzahl von Wörtern geschrieben hat. und bin auf dieselbe Hilfeseite gekommen.
Jason Scheirer
3

Das einzige, was ich hinzufügen möchte, ist, etwas in Model Builder zu erstellen und es in ein Python-Skript zu exportieren, um Ihnen eine Vorstellung davon zu geben, wie die verschiedenen Komponenten zusammenpassen.

om_henners
quelle
7
Ich würde davor warnen. Es gibt eine Menge Aufräumarbeiten, die Sie mit diesem Ansatz zu tun haben (der Exporteur fügt eine Menge Cruft, seltsame Variablennamen usw. ein, und einige Dinge funktionieren einfach nicht, wenn sie aus ModelBuilder exportiert werden) Das Eintippen von Anweisungen und Funktionen zwingt Sie dazu, effektiver zu lernen, als es ein Werkzeug für Sie tun zu lassen.
blah238
6
Eine Alternative besteht darin, mit der rechten Maustaste auf ein Geoverarbeitungsergebnis zu klicken und auf "Als Python-Snippet kopieren" zu klicken, wenn Sie nur die Syntax eines Funktionsaufrufs abrufen möchten (besonders nützlich für Dinge wie Feldzuordnungen).
blah238
Ja, fairerweise - es ist nicht schlecht, wenn Sie nur ein paar Operationen zusammenhalten (ein paar Puffer, gefolgt von einem Clip), aber wie Sie sagen, wird es für größere Modelle schnell hässlich. Mir gefällt die Idee, das GP-Skript auch als Snippet zu kopieren.
Om_henners
Hatte nicht daran gedacht, wenn es um Feldzuordnungen ging. Das muss ich ausprobieren.
Jay Guarneri
1
+1 Dies ist immer ein guter Trick, insbesondere wenn Sie beispielsweise lernen müssen, wie Sie die Syntax für die Neuklassifizierung in Ihr Skript integrieren.
Aaron