Questa è una domanda piuttosto generica. Mi chiedo solo quali suggerimenti e trucchi hanno usato i programmatori GIS per accelerare gli script arcpy che importi nella toolbox ed esegui.
Lavoro quasi tutti i giorni scrivendo piccoli script per aiutare gli utenti non GIS nel mio ufficio a elaborare i dati GIS. Ho scoperto che l'elaborazione ArcGIS 10.0 in generale è più lenta della 9.3.1 e talvolta diventa ancora più lenta quando si esegue uno script Python.
Elencherò un esempio particolare di uno script che impiega più di 24 ore per l'esecuzione. È un loop che tabula l'area di un raster in un buffer per ogni forma nel buffer. Il buffer ha circa 7000 forme. Non credo che dovrebbe durare così a lungo. UN
while x <= layerRecords:
arcpy.SetProgressorLabel("Tabulating Row: " + str(x) + " of " + str(ELClayerRecords))
arcpy.SelectLayerByAttribute_management(Buff,"NEW_SELECTION", "Recno = " + str(x)) # Selecting the record
TabulateArea(Buff, "Recno", MatGRID, "VALUE", ScratchWS + "/tab" + str(z) +".dbf", nMatGRIDc) # Tabulate the area of the single row
arcpy.AddMessage (" - Row: " + str(x) + " completed")
x = x + 1
z = z + 1
Prima che qualcuno lo dica, ho eseguito l'area tabulate sull'intero buffer, ma produce errori se eseguito su più di 1 record. È uno strumento imperfetto, ma devo usarlo.
Ad ogni modo, se qualcuno ha qualche idea su come ottimizzare o velocizzare questo script, sarebbe molto apprezzato. Altrimenti, hai qualche trucco per accelerare per Python, quando usato in ArcGIS?