私は18,000のフィーチャクラス(ファイルGDBに保存)を処理しており、それぞれ海域で約500レコード(ポリゴンフィーチャ)を持っています。また、Erase関数を使用して、海岸と重なるエリアを削除するスクリプトを実行しています。スクリプトは正常に実行されていますが、文字どおり完了するまでに数日かかります。一部のファイルの処理には数秒かかります(これは、海岸線と重複していないことが確認されているためです)、一部のフィーチャクラスの処理には1時間以上かかります。
私は自分のコンピューターでローカルで作業し、32ビットWindows 7、3.33 GHz Intel DuoCore、4 GB RAMコンピューター上のArcGIS 10.1(すべてのライセンス)を使用してIDLEでスクリプトを実行しています。
私はPythonでロープを学んでいます。処理時間を短縮するために実行できる手順がある場合は、スクリプトのヒントを本当に感謝しています。ありがとうございました!
# 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()