如何用Python循环批量处理.tif文件实现大西洋居中转换
批量将太平洋居中的TIFF文件转换为大西洋居中
你可以通过glob模块批量获取目标TIFF文件,结合循环复用你已有的转换逻辑,实现批量处理。以下是完整的实现代码:
import rioxarray import glob import os # 配置路径:替换为你的实际文件夹路径 input_folder = "path/to/your/input_tifs" output_folder = "path/to/your/output_tifs" # 确保输出文件夹存在,不存在则自动创建 os.makedirs(output_folder, exist_ok=True) # 获取输入文件夹下所有.tif格式文件 all_tif_files = glob.glob(os.path.join(input_folder, "*.tif")) # 循环处理每个文件 for file_path in all_tif_files: # 提取文件名,保持输出文件名与输入一致 file_name = os.path.basename(file_path) save_path = os.path.join(output_folder, file_name) # 执行坐标转换与保存 raster_data = rioxarray.open_rasterio(file_path) raster_data = raster_data.assign_coords(x=(((raster_data.x + 180) % 360) - 180)).sortby('x') raster_data.rio.to_raster(save_path) # 可选:打印处理进度 print(f"完成处理:{save_path}")
额外说明
- 如果需要处理子文件夹中的TIFF文件,可将
glob.glob的参数改为:all_tif_files = glob.glob(os.path.join(input_folder, "**/*.tif"), recursive=True) - 针对超大TIFF文件,可在
open_rasterio中添加chunks参数实现分块读取,避免内存溢出:raster_data = rioxarray.open_rasterio(file_path, chunks={"x": 1000, "y": 1000})
内容的提问来源于stack exchange,提问作者Noname87
相关产品推荐
相关产品推荐

