Kategorien

ArcGIS-Scripting mit Python: Teil 5

In dem vom Model Builder exportierten Python-Script taucht die folgende Anweisung auf:

gp.SetProduct("ArcInfo")

Auf den ersten Blick scheint diese Anweisung klar zu sein. Da im Script das Tool zum Importieren von Interchange-Files gebraucht wird (Import from Interchange File) und dieses nur mit einer ArcInfo-Lizenz benutzt werden kann, ging ich davon aus, dass die SetProduct-Anweisung eine solche ArcInfo-Lizenz — sofern verfügbar — anfordert. Der entsprechende Eintrag in der ArcGIS Desktop-Hilfe bestätigte diese Ansicht. Als ich aber das Script unter ArcView laufen liess, stürzte es trotzdem wegen der fehlenden ArcInfo-Lizenz ab. Eine ausführliche Suche in den ESRI-Foren ergab dann, dass in Tat und Wahrheit diese Funktion die Lizenzart nicht verändert. Sie teilt dem Python-Script einzig und allein mit, welche Lizenz gerade verwendet wird. Im Prinzip ist diese Funktion also nutzlos. ESRI empfiehlt aber, das benötigte Lizenz-Level doch mittels SetProduct dem Script mitzuteilen. Folgende Threads in den ESRI-Foren befassen sich auch mit diesem Thema:
Failure of SetProduct to get elevated permissions
Debugging Python scripts
Eine Möglichkeit, dieses Problem zu umgehen, wäre eventuell Folgendes: In der ArcToolbox werden diejenigen Scripts, die beim jeweils eingestellten Lizenz-Level nicht zur Verfügung stehen, entweder gar nicht oder dann besonders gekennzeichnet dargestellt. Ideal wäre es nun, wenn man dies auch für eigene Scripts implementieren könnte. Dann käme auch niemand auf die Idee, das Script mit der falschen Lizenz auszuführen. Bis jetzt habe ich aber noch nicht rausgefunden, ob und wie das machbar ist.

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>