Esta es una pregunta bastante general. Me pregunto qué consejos y trucos han utilizado los programadores de SIG para acelerar los scripts arcpy que importas a la caja de herramientas y ejecutas.
Trabajo casi todos los días escribiendo pequeños scripts para ayudar a los usuarios que no son SIG en mi oficina a procesar datos SIG. He descubierto que el procesamiento de ArcGIS 10.0 en general es más lento que 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 ráster en un búfer para cada forma en el búfer. El búfer tiene aproximadamente 7000 formas. No creo que deba durar tanto. UNA
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, ejecuté el área de tabulación en todo el búfer, 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, ¿tiene algún truco para acelerar Python cuando se usa en ArcGIS?