Tôi đang xử lý 18.000 lớp đối tượng (được lưu trong tệp GDB), mỗi lớp có ~ 500 bản ghi (tính năng đa giác) trong khu vực đại dương và tôi đang chạy một tập lệnh để loại bỏ vùng chồng lấp với bờ biển, sử dụng chức năng Xóa. Kịch bản đang chạy thành công, nhưng thực sự phải mất nhiều ngày để hoàn thành. Một số tệp mất vài giây để xử lý (Tôi cho rằng điều này là do thực tế, mà tôi đã xác minh, rằng chúng không trùng với đường bờ biển) trong khi một số lớp tính năng mất hơn một giờ để xử lý.
Tôi đang làm việc cục bộ trên máy của mình, chạy tập lệnh trong IDLE, với ArcGIS 10.1 (tất cả các giấy phép) trên Windows 7 32 bit, Intel DuoCore 3,33GHz, máy tính RAM 4GB.
Tôi đang học các sợi dây với Python và thực sự sẽ đánh giá cao các mẹo về kịch bản của tôi nếu có các bước tôi có thể thực hiện để tăng tốc thời gian xử lý. Cảm ơn bạn!
# 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()