Yo soy de procesamiento de 18.000 clases de entidad (que se guarda en un archivo GDB), cada una con ~500 registros (polígono características) en áreas del océano, y estoy ejecutando una secuencia de comandos para quitar el área de superposición con la costa, utilizando la función de Borrado. La secuencia de comandos se ejecuta con éxito, pero, literalmente, tomar días para completar. Algunos archivos de tomar segundos para procesar (estoy suponiendo que esto es debido al hecho de, que he comprobado, que no se superponen con los de la costa), mientras que algunas cuentan con clases de tomar más de una hora para el proceso.
Estoy trabajando localmente en mi máquina, se ejecuta la secuencia de comandos en modo INACTIVO, con ArcGIS 10.1 (todas las licencias) en una de 32 bits de Windows 7, 3.33 GHz Intel DuoCore, 4GB de RAM de la computadora.
Estoy aprendiendo las cuerdas con Python y realmente apreciaría consejos sobre mi script si hay pasos que puede tomar 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()