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()
sumber
Minimum Bounding Geometry
pada kelas fitur target Anda menggunakan Opsi GrupALL
dan tipe geometriENVELOPE
. Lakukan penghapusan pada kelas fitur amplop yang dihasilkan menggunakan garis pantai Anda yang sangat besar. Gunakan output dari penghapusan itu untuk melakukanClip
pada kelas fitur target asli Anda. Ini menyederhanakan langkah kompleks, menghapus, dan menggantinya dengan Klip yang lebih murah terhadap fitur yang lebih kecil.