我期待分割10个图像为2个部分每个(20个结果图像)。图像是4波段(R,G,B,nIR)NAIP图像,可从this website获得。我使用ArcGIS的arcpy
包一次拆分一个图像:
import arcpy, os
inws = r'D:\temp\temp_NAIP' #Contains ~10 .tif images
outws = r'D:\temp\temp_NAIP_tiles'
arcpy.env.workspace = inws
rasters = arcpy.ListRasters()
for ras in rasters:
arcpy.SplitRaster_management(
ras, outws,
os.path.basename(ras).split('.')[0],
split_method='NUMBER_OF_TILES',
format='TIFF',
num_rasters='1 2',
overlap=50, units='PIXELS)
如何将multiprocessing
模块集成到上面的脚本中,以便一次处理4个图像?在
顺便说一句,我知道一个blog post组合了multiprocessing
和{
除非有任何资源共享问题,用
multiprocessing.Pool
将简单的for循环转换为多处理很容易。试试这样的方法:只要
rasters
是iterable,它就应该可以映射到进程池。请记住,每个进程将“继承”父进程的堆栈,这样每个进程将使用它自己的arcpy.env.workspace
副本。在相关问题 更多 >
编程相关推荐