系列文章目录
文章目录
相信大圣,这个方法贼tm好用
前言
写个了解译的代码,因为要解译很多张,就想搞个多进程的东西,在此只记录一种成功且简单的方式。
一、没啥要交代的
二、使用步骤
1.上最后的代码
反正是一堆废代码,关键就三点:
#1前面几行都是路径
#2反正你们自己看吧,都注释了
if __name__ == '__main__':
# 全是路径
Landsat_path_folder = "H:\\LJL_data\\remote sensing interpretation\\a2008\\image\\"
Raster_lable_folder = "H:\\LJL_data\\remote sensing interpretation\\a2008\\raster_lable\\"
txt_Folder = "H:\\LJL_data\\remote sensing interpretation\\a2008\\txt_lable\\"
save_path_folder = "H:\\LJL_data\\remote sensing interpretation\\a2008\\rom_modle\\"
SavePath_final_folder = "H:\\LJL_data\\remote sensing interpretation\\a2008\\result\\"
# 将路径变成列表,因为我要解译十二张,也就是说我的Raster_lable_list 有12个元素,为了后面变成元组的时候长短一致,就*12.
# 这一步是可以做自动化的,人懒。
Landsat_path_folder_list = [Landsat_path_folder] * 12
print(Landsat_path_folder_list)
Raster_lable_folder_list = [Raster_lable_folder] * 12
txt_Folder_list = [txt_Folder] * 12
save_path_folder_list = [save_path_folder] * 12
SavePath_final_folder_list = [SavePath_final_folder] * 12
# 将要解译的文件都放到一个列表里
Raster_lable_list = []
for Raster_lable in os.listdir(Raster_lable_folder):
if Raster_lable[-3:] == "tif":
Raster_lable_list.append(Raster_lable)
# 将所有的多进程要用到的参数都变成元组。
zip_args = list(zip(Landsat_path_folder_list, Raster_lable_list, Raster_lable_folder_list, \
txt_Folder_list, save_path_folder_list, SavePath_final_folder_list))
print(zip_args)
# 用40个进程,可以啥都不写
pool = Pool(40)
# interpret是我的def, zip_args就是刚才组合成的元组
pool.starmap(interpret, zip_args)
# 下面两个代码是干啥的我也不知道,抄过来了
pool.close()
pool.join()
有时候你可能会遇到说有个变量没定义什么的
UnboundLocalError: local variable 'readTif' referenced before assignment
那你就定义下全局变量就行了看下面的2
2.乱了,这才是第一步,定义个def
总结
顺道说一句,我有找淘宝的代写,人家开口就100,我怂了!被逼上梁上!
|