Estoy procesando 18,000 clases de entidad (guardadas en un archivo GDB), cada una con ~ 500 registros (entidades de polígono) en áreas oceánicas, y estoy ejecutando un script para eliminar el área que se superpone con la costa, usando la función Borrar. El script se ejecuta con éxito, pero literalmente tarda días en completarse. Algunos archivos tardan segundos en procesarse (supongo que esto se debe al hecho, que he verificado, de que no se superponen con la costa), mientras que algunas clases de entidad tardan más de una hora en procesarse.
Estoy trabajando localmente en mi máquina, ejecutando el script en IDLE, con ArcGIS 10.1 (todas las licencias) en una computadora con Windows 7 de 32 bits, Intel DuoCore de 3.33 GHz, 4 GB de RAM.
Estoy aprendiendo las cuerdas con Python y realmente agradecería consejos sobre mi script si hay pasos que puedo seguir para acelerar el tiempo de procesamiento. ¡Gracias!
# Import modules
import arcpy
import sys
import os
from arcpy import env
arcpy.env.overwriteOutput = True
print arcpy.env.overwriteOutput
#Erase coastline from selected buffers.
workspace = "C:\\DIR\\points_buff\\"
arcpy.env.workspace = workspace
erase_output = workspace+"erased.gdb\\"
erasedirectorypath = "C:\\DIR\\points_buff\\selectedbuff.gdb"
fileList = []
for dirpath, dirnames, erases in arcpy.da.Walk(erasedirectorypath,
datatype="FeatureClass",
type="Polygon"):
for erase in erases:
fileList.append(os.path.join(dirpath, erase))
filenameparts = erase.split('_')
if int(filenameparts[1]) > int(1967):
try:
#Set variables for Erase tool
in_features = erasedirectorypath+"\\"+erase
coastline_feat = "C:\\DIR\\Basic_NE.gdb\\Coastline_Eastern_US"
out_erase_feat = erase_output+erase[:-4]+"_er"
arcpy.Erase_analysis(in_features, coastline_feat, out_erase_feat, '')
print arcpy.GetMessages()
print "Coastline has been erased from " + erase + " and saved to " + erase_output
except:
print arcpy.GetMessages()