有没有人研究过在ArcToolbox中运行Python脚本与作为独立脚本运行时的区别?我必须编写一个快捷脚本,通过提取波段1将一组RGB图像转换为单个波段。作为一个独立的脚本读写PC,它可以在约350秒内处理1000张相同大小的图像。从ArcToolbox运行相同的脚本大约需要1250秒。
import arcpy
import csv
from os import path
arcpy.env.workspace = in_folder
image_list = arcpy.ListRasters()
#Create a CSV file for timing output
with open(outfile, 'wb') as c:
cw = csv.writer(c)
cw.writerow(['tile_name', 'finish_time'])
#Start the timer at 0
start_time = time.clock()
for image in image_list:
#Extract band 1 to create a new single-band raster
arcpy.CopyRaster_management(path.join(image, 'Band_1'), path.join(out_folder, image))
cw.writerow([image, time.clock()])
我添加了一些代码来跟踪每个图块何时完成处理,并将结果导出为CSV。在Excel中将完成时间转换为处理时间。用图表显示结果,每个图块的处理时间与脚本大致相同,但是当作为ArcGIS Tool运行时,处理时间呈线性增加。
如果数据读取和写入到网络设备,则增加似乎是指数级的。
我不是在寻找完成此特定任务的替代方法。我想了解一下,当作为ArcGIS工具而不是独立脚本运行时,为什么此脚本的性能会随时间降低。我也注意到其他脚本的这种行为。