Estoy haciendo un bucle a través de una cantidad de matrices de puntos, creando datos sobre la marcha.
Los rasgos/arreglos, son en gran medida similares en tamaño. Una cosa que he notado, es que cuando inicio el proceso, el tiempo que tarda en realizarse, aumenta de unos 8 segundos, a alrededor de 1 minuto. No puedo ver por qué está sucediendo esto, pero se puede ver los tiempos aumentan lentamente si se pone un temporizador alrededor del bucle.
¿Hay alguna manera de aumentar este rendimiento? ¿Existe un método de descarga? Creo que estoy manejando correctamente mis objetos y borrándolos después de su uso, pero no puedo por la vida de mí ver por qué está sucediendo?
¿Alguna idea?
El código está refactorizado, por lo que puede haber algunos errores tipográficos, etc.
def createGeom(geom,header,band,scratchDB,buffer, dist):
filetime = (str(time.time())).split(".")
outfile = "fc" + filetime[0]+filetime[1]
outpath = scratchDB + "tmp.gdb/Polygon/"
print outpath
sCon = ["1", "16", "2.0"]
ts = header.split(" ")
ti = ts[6]
Current = ts[9]
LL = ts[2][2:5]
LU = ts[2][8:11]
outFeatureAggClass = outpath+outfile+"_agg"
outFeatureClass = outpath+outfile
arcpy.AggregatePoints_cartography(geom, outFeatureAggClass, dist)
arcpy.Buffer_analysis(outFeatureAggClass, outFeatureClass, buffer)
arcpy.AddField_management(outFeatureClass, "Name", "Text")
arcpy.AddField_management(outFeatureClass, "ID", "SHORT")
arcpy.AddField_management(outFeatureClass, "LL", "SHORT")
arcpy.AddField_management(outFeatureClass, "LU", "SHORT")
arcpy.AddField_management(outFeatureClass, "Tim", "SHORT")
arcpy.AddField_management(outFeatureClass, "Band", "SHORT")
arcpy.AddField_management(outFeatureClass, "Lvl", "TEXT")
arcpy.AddField_management(outFeatureClass, "Cur", "SHORT")
rows = arcpy.UpdateCursor(outFeatureClass)
for row in rows:
row.name = outfile
row.ID = 1000
row.LL = int(LL)
row.LU = int(LU)
row.Tim = int(ti)
row.Band = int(band)
row.Lvl = sCon[int(band)]
row.Cur = Current
rows.updateRow(row)
del row
del rows
ACTUALIZACIÓN
Ahora estoy ejecutando esto en ArcMap, y está tomando significativamente menos tiempo, a un factor o alrededor de 3 o 4; lo que tomó 30 minutos, ahora toma 7.
¿De qué se trata?
EDITAR
El ESRI ha accedido a estudiar la cuestión. Aparcaré esto por ahora, dispuesto a actualizarlo con cualquier progreso.