Esta es una pregunta bastante general. Me pregunto qué consejos y trucos han utilizado los programadores de GIS para acelerar los scripts de arcpy que se importan a la caja de herramientas y se ejecutan.
Trabajo casi todos los días escribiendo pequeños scripts para ayudar a los usuarios no SIG de mi oficina a procesar datos SIG. He descubierto que el procesamiento de ArcGIS 10.0 en general es más lento que el de 9.3.1 y a veces se vuelve aún más lento cuando se ejecuta un script de python.
Voy a enumerar un ejemplo particular de un script que tarda más de 24 horas en ejecutarse. Es un bucle que tabula el área de un raster en un buffer para cada forma en el buffer. El buffer tiene alrededor de 7000 formas. No creo que deba ejecutarse tanto tiempo. A
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
Antes de que alguien lo diga, he ejecutado el área de tabulación en todo el buffer, pero produce errores si se ejecuta en más de 1 registro. Es una herramienta defectuosa, pero tengo que usarla.
De todos modos, si alguien tiene alguna idea sobre cómo optimizar, o acelerar este script, sería muy apreciado. De lo contrario, ¿tienes algún truco de aceleración para python, cuando se utiliza en ArcGIS?