Viac

Ladenie skriptov ArcGIS Python

Ladenie skriptov ArcGIS Python


Som v Pythone nový a programujem všeobecne a nemôžem prísť na to, ako nastaviť debugger, ktorý bude pracovať s Arcpy. Snažím sa používať PyCharm, ale vždy ma dobehne skutočnosť, že nemôže skutočne otvoriť ArcMap. Dáva mi túto chybu, keď bežím v IDE:

RuntimeError: Objekt: CreateObject nemôže otvoriť mapový dokument.

Spustím skripty z Panela s nástrojmi a nespúšťajú sa správne. Viem, ako to urobiť, je komentovať niektoré riadky a zúžiť problém opätovným spustením. Musí existovať lepšia cesta. Správny?


Ak vaše skripty zlyhávajú na riadkoch, kde používate balík arcpy, môžete použiť príkazy try & except. Do príkazu try by ste mali vložiť svoje metódy arcpy a okrem toho môžete zapísať arcpy.GetMessages () do súboru protokolu.

arcpy.getMessages () vypíše správy z posledného pokusu o geoprocesnú udalosť. Môže vám pomôcť zistiť, kde sa váš skript zhoršuje.


vložte svoj pythonovský skript do okna pythonu v arcmap a spustite ho odtiaľ. masáž chýb vám povie, na akom riadku sa chyba vyskytne.


Pre veľké skripty používam Eclipse. Eclipse je veľmi výkonné, rešpektované a bezplatné IDE, ktoré je možné použiť v mnohých jazykoch. Eclipse vie tiež pekne hrať s ovládaním zdrojov, ako je Subversion atď., Čo sa hodí pre väčšie projekty, kde spolupracuje niekoľko vývojárov. Pre vývoj v Pythone potrebujete plugin PyDev. Nastavenie Eclipse na vývoj pomocou ArcPy je celkom jednoduché. Existuje veľa návodov a rýchle vyhľadávanie prinesie tento.


Mám tendenciu dávať hlavné kúsky py do príkazov try. „AddMessage ()“ a „AddError ()“ a „okrem výnimky ako e:“ sú veľmi užitočné pri hlásení rôznych vecí.

desc = arcpy.Describe (raster) SR = desc.spatialReference try: arcpy.AddMessage ("- Počet pásiem:% d"% desc.bandCount) txtRasterFile.write (desc.bandCount + ",") okrem: arcpy.AddMessage (" - Nepodporuje pásma ") txtRasterFile.write (" Nepodporované ") try: arcpy.AddMessage (" - Typ kompresie:% s "% desc.compressionType) txtRasterFile.write (desc.compressionType +", ") okrem: arcpy. AddMessage ("- nepodporuje kompresiu") txtRasterFile.write ("nepodporované") try: arcpy.AddMessage ("- formát rastra:" + desc.format) txtRasterFile.write (desc.format + ",") okrem: arcpy .AddError ("- formát rastra: chyba") #Error správa txtRasterFile.write ("chyba"), skúste: arcpy.someprocess () okrem výnimky ako e: arcpy.AddError ("- spracováva chybu:" + e.message)

Pozri si video: GIS Python: Count shape files and Select by Location 2 Real world ArcPy examples