Saya sedang memproses 18.000 kelas fitur (disimpan dalam file GDB), masing-masing dengan ~ 500 catatan (fitur poligon) di wilayah lautan, dan saya menjalankan skrip untuk menghapus area yang tumpang tindih dengan pantai, menggunakan fungsi Erase. Script berjalan dengan sukses, tetapi secara harfiah membutuhkan waktu berhari-hari untuk diselesaikan. Beberapa file membutuhkan waktu beberapa detik untuk diproses (saya berasumsi ini karena fakta, yang telah saya verifikasi, bahwa mereka tidak tumpang tindih dengan garis pantai) sementara beberapa kelas fitur membutuhkan waktu lebih dari satu jam untuk diproses.
Saya bekerja secara lokal pada mesin saya, menjalankan skrip di IDLE, dengan ArcGIS 10.1 (semua lisensi) pada Windows 7 32-bit, Intel DuoCore 3.33GHz, komputer RAM 4GB.
Saya sedang belajar tali dengan Python dan akan sangat menghargai tips tentang skrip saya jika ada langkah yang dapat saya ambil untuk mempercepat waktu pemrosesan. Terima kasih!
# 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()