当前位置: 首页 > news >正文

Arcpy 多线程批量重采样脚本

Arcpy 多线程批量重采样脚本

import arcpy
import os
import multiprocessingdef resample_tifs(input_folder, output_folder, cell_size=0.05, resampling_type="BILINEAR"):"""将指定文件夹下的所有 TIFF 文件重采样到指定分辨率,并输出到新文件夹中。参数:input_folder (str): 输入 TIFF 文件所在的文件夹路径。output_folder (str): 重采样后的 TIFF 文件输出到的文件夹路径。cell_size (float): 重采样后的分辨率大小。默认为 symbol。resampling_type (str): 重采样方法。可选值包括 "NEAREST_NEIGHBOR", "BILINEAR", "CUBIC", "MAJORITY"。默认为 "BILINEAR"。"""# 检查输入文件夹是否存在if not os.path.exists(input_folder):raise FileNotFoundError(f"输入文件夹不存在: {input_folder}")# 如果输出文件夹不存在,则创建if not os.path.exists(output_folder):os.makedirs(output_folder)print(f"已创建输出文件夹: {output_folder}")# 设置环境工作空间arcpy.env.workspace = input_folder# 获取所有 TIFF 文件tif_list = arcpy.ListRasters("*", "TIF")if not tif_list:print("没有找到 TIFF 文件。")returnprint(f"找到 {len(tif_list)} 个 TIFF 文件。开始重采样...")# 遍历每个 TIFF 文件并进行重采样for tif in tif_list:input_path = os.path.join(input_folder, tif)output_path = os.path.join(output_folder, tif)try:print(f"正在处理: {tif}")# 使用 Resample_management 工具进行重采样arcpy.management.Resample(in_raster=input_path,out_raster=output_path,cell_size=cell_size,resampling_type=resampling_type)print(f"成功重采样并保存到: {output_path}")except arcpy.ExecuteError:print(f"ArcPy 错误处理文件 {tif}: {arcpy.GetMessages(2)}")except Exception as e:print(f"错误处理文件 {tif}: {e}")print("所有文件重采样完成。")def main():output_dir2 = r"./010_世界人口数据 _0.1/"    #保存new重采样文件symbol = 0.25 # 重采样大小tasks = [# # ("./01_land_cover", "./China_01_landcover"),# ("./Global_tif_0.1_LC", output_dir2, symbol, "MAJORITY"),("010_世界人口数据", output_dir2, symbol, "NEAREST"),] # 创建进程池,进程数设为CPU核心数pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())# 准备并行执行的任务results = []print(tasks)for input_dir11, output_dir22,cell_size ,resampling_type in tasks:result = pool.apply_async(resample_tifs, args=(input_dir11, output_dir22,cell_size ,resampling_type))results.append(result)# 关闭进程池,等待所有任务完成pool.close()pool.join()print("所有任务已完成。")# 示例用法
if __name__ == "__main__":main()
http://www.lryc.cn/news/490228.html

相关文章:

  • python 画图例子
  • Win11 22H2/23H2系统11月可选更新KB5046732发布!
  • 【STM32】MPU6050初始化常用寄存器说明及示例代码
  • 深度学习中的mAP
  • Redis设计与实现 学习笔记 第二十章 Lua脚本
  • 大模型(LLMs)推理篇
  • Leetcode 412. Fizz Buzz
  • 双因子认证:统一运维平台安全管理策略
  • CMake笔记:install(TARGETS target,...)无法安装的Debug/lib下
  • 使用ENSP实现NAT
  • 漫步北京小程序构建智慧出行,打造旅游新业态模式
  • 对齐输出
  • Wekan看板安装部署与使用介绍
  • VisionPro 机器视觉案例 之 黑色齿轮
  • 学习python的第十三天之数据类型——函数传参中的传值和传址问题
  • Windows11深度学习环境配置
  • 电销老是被标记,该如何解决!!!
  • MyBatis入门——基本的增删改查
  • 学习Gentoo系统中二进制软件包和源代码包的概念
  • 麦肯锡报告 | 未来的经济引擎:解读下一代竞争领域
  • 连接mysql并读取指定表单数据到DataFrame
  • 从入门到精通数据结构----四大排序(上)
  • 【bug】使用transformers训练二分类任务时,训练损失异常大
  • 文献阅读与笔记整理技巧
  • Python Flask中集成SQLAlchemy和Flask-Login
  • esp32 JTAG 串口 bootload升级
  • 【linux】(17)压缩和解压
  • 摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
  • springboot购物推荐网站的设计与实现(代码+数据库+LW)
  • 【Unity3D插件】Unity3D HDRP Outline高亮发光轮廓描边插件教程