ich muss mit ArcGIS viele Schritte der Geoverarbeitung erledigen und nutze dazu Python 2.4 (durch ArcGIS vorgegeben).
Da ich zu Beginn immer die gleichen Schritte machen muss wie:
Code: Alles auswählen
import arcgisscripting
# Erstellen des Geoprocessor-Objektes
gp = arcgisscripting.create()
# Produkt setzen
gp.SetProduct("ArcView")
# Setzen des Workspace
gp.Workspace = self.workSpaceName
# Vorhandene Daten ueberschreiben
gp.overwriteoutput = 1
# Benoetigte Toolboxen fuer Test mit dem Editor laden
gp.AddToolbox("C:/Programme/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")
gp.AddToolbox("C:/Programme/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
u.s.w
Dazu habe ich folgende Klasse erstellt (GeoProzessor.py):
Code: Alles auswählen
# Importieren des Systemmodules
import arcgisscripting
class GeoProzessorObjekt(object):
def __init__(self, workSpaceName, fcName):
self.workSpaceName = workSpaceName
self.fcName = fcName
# Erstellen des Geoprocessor-Objektes
gp = arcgisscripting.create()
# Produkt setzen
gp.SetProduct("ArcView")
# Setzen des Workspace
gp.Workspace = self.workSpaceName
# Vorhandene Daten ueberschreiben
gp.overwriteoutput = 1
# Benoetigte Toolboxen fuer Test mit dem Editor laden
gp.AddToolbox("C:/Programme/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")
gp.AddToolbox("C:/Programme/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
Beispiel:
Code: Alles auswählen
# Importieren des Systemmodules
import arcgisscripting
from GeoProzessor import GeoProzessorObjekt
class ReihenfolgeBerechnen(GeoProzessorObjekt):
def __init__(self, workSpaceName, fcName, sortFeld):
GeoProzessorObjekt.__init__(self, workSpaceName, fcName)
self.sortFeld = sortFeld
self.getGeoBerechnung()
def getGeoBerechnung(self):
# SearchCursor definieren
rows = gp.SearchCursor(self.fcName, "","","",self.sortFeld)
Code: Alles auswählen
print self.workSpaceName
Aber offensichtlich ist kein Zugriff auf Geoprozessorobjekt gp möglich, da die letzte Zeile den Fehler
hervorruft. Kann mir jemand auf die Sprünge helfen und mir einen Tipp geben, wie ich aus der abgeleiteten Klasse an das gp-Objekt komme.NameError: global name 'gp' is not defined
Klaus