可以使用arcpy中的ExtractByMask函数来批量裁剪遥感影像数据。下面是一个代码,用于将一个目录(input_folder)内的所有遥感影像数据根据指定的掩码文件(mask_file)进行裁剪处理:
import arcpy, os
# 设置工作空间和输入数据路径
arcpy.env.workspace = r"C:\data\Imagery.gdb"
input_folder = r"C:\input"
mask_file = r"C:\data\Masks.gdb\LandCover"
# 循环遍历目录内所有影像,并且执行ExtractByMask操作
for file in os.listdir(input_folder):
if file.endswith(".img") or file.endswith(".tif"):
input_raster = os.path.join(input_folder, file)
output_raster = os.path.join(arcpy.env.workspace, "Clip_" + file)
arcpy.sa.ExtractByMask(input_raster, mask_file).save(output_raster)
代码中,首先设置工作空间和输入数据路径,然后循环遍历指定目录下的所有影像文件。如果该文件是以".img"或者".tif"结尾的遥感影像,则将其加载到ExtractByMask函数中,同时指定掩码文件。函数执行完成后,使用Save函数将结果保存到输出路径中。
需要注意的是,代码仅适用于掩码文件(mask_file)为单一目标范围的情况下。如果需要对多个目标范围进行裁剪操作,则需要修改代码,例如使用循环或者使用ExtractMultipleLayersByMask函数,来实现批量裁剪所有目标范围。