【发布时间】:2015-11-11 02:45:11
【问题描述】:
我正在处理一个多处理示例 (An introduction to parallel programming)。我修改了 Pool Class 示例以满足我的特定需求 - 以平行的研究区域多边形裁剪一堆栅格。从好的方面来说,脚本完成并打印“处理完成”。不利的一面是,没有产生输出。我怀疑我在“pool.apply_async”函数中有一些程序错误。为什么这个脚本没有结果?
import arcpy, os
import multiprocessing as mp
arcpy.env.workspace = r'F:\temp\inws'
outws_utm11 = r'F:\temp\outws'
clipper_utm11 = r'F:\temp\some_polygon.shp'
rasters = arcpy.ListRasters()
pool = mp.Pool(processes=4)
def clip_raster(clipper, outws, raster):
arcpy.Clip_management(raster, "#", os.path.join(outws, raster), clipper, nodata_value = 0, clipping_geometry = "ClippingGeometry")
[pool.apply_async(clip_raster, args=(clipper_utm11,outws_utm11, ras)) for ras in rasters]
print "Processing complete."
【问题讨论】:
标签: python multiprocessing raster pool arcpy