#    for i in range(len(inlist)):
 #        try:
 #            print "load %s begin" %inlist[i]
 #            sys.stdout.flush()
 #            imIn=tsc.loadImages(inlist[i], inputFormat='tif-stack')
 #            print "load end"
 #            sys.stdout.flush()
 #            t_start=time.time()
 #            result=reg.run(imIn)
 #            result.exportAsTiffs(outlist[i], overwrite=True)
 #            t_end=time.time()
 #            print 'spark cluster image: ', inlist[i][len(input):], 'iter: ', iter, ' time: ', (t_end-t_start)
 #        except:
 #            print 'error ', inlist[i]
 for iter in iters:
     reg.prepare("/home/wb/hdfs_2d/PSF_2d.tif", iter)
     for i in range(len(inlist)):
         
         print "load %s begin" %inlist[i]
         sys.stdout.flush()
         imIn=tsc.loadImages(inlist[i], inputFormat='tif-stack')
         print imIn.collect()
         print "load end"
         sys.stdout.flush()
         
         t_start=time.time()
         result=reg.run(imIn)
         
         print "save %s end" %outlist[i]
         sys.stdout.flush()
         result.exportAsTiffs(outlist[i], overwrite=True)
            os.makedirs(denoise)

    return (in_list, out_list)

if __name__=='__main__':
    inlist, outlist=fs_in_out(input, output) 

    conf = SparkConf().setAppName('test')
    tsc=lambdaimageContext.start(conf=conf)

    reg=Deconvolution('rl')
    #iters=[100, 150, 200, 250]
    iters=[5]
    for iter in iters:
        #reg.prepare("/home/jph/test/PSF_2d.tif", iter)
        #reg.prepare("/home/jph/graduate_test/Version/Spark/fs_2d/PSF_50.tif", iter)
        reg.prepare("/home/wb/data/deconv/PSF.tif", iter)
        #reg.prepare("/home/wb/data/fs_3d/PSF_3d.tif", iter)
        
        for i in range(len(inlist)):
            try:
                imIn=tsc.loadImages(inlist[i], inputFormat='tif-stack')
                t_start=time.time()
                result=reg.run(imIn)
                result.exportAsTiffs(outlist[i], overwrite=True)
                #imIn.exportAsTiffs(outlist[i], overwrite=True)
                t_end=time.time()
                print 'spark local image: ', inlist[i][len(input):], 'iter: ', iter, ' time: ', (t_end-t_start)
            except BaseException, e:
                print 'error ', inlist[i]