使用arcpy实现首先将目录下的tif使用同名称的shp裁剪然后将该tif投影到参考tif相同的坐标系并使其空间范围与参考栅格相同重采样到参考tif的分辨率使之格网一一对应
下面是使用arcpy实现上述功能的示例代码:
import arcpy
from arcpy.sa import *
# 设置工作环境
arcpy.env.workspace = "C:/data"
arcpy.env.overwriteOutput = True
# 获取目录下的所有tif文件
tif_list = arcpy.ListRasters("*", "TIF")
# 指定参考tif路径
reference_tif = "C:/data/reference.tif"
# 裁剪tif
for tif_file in tif_list:
# 构建输出shp文件路径
shp_file = arcpy.Describe(tif_file).basename.replace(".tif", ".shp")
# 执行裁剪操作
arcpy.Clip_management(tif_file, "#", shp_file, "#", "#", "ClippingGeometry", "NO_MAINTAIN_EXTENT")
# 获取参考tif的坐标系和空间范围
reference_sr = arcpy.Describe(reference_tif).spatialReference
reference_extent = arcpy.Describe(reference_tif).extent
# 投影tif到参考坐标系
projected_tif = tif_file.replace(".tif", "_projected.tif")
arcpy.ProjectRaster_management(tif_file, projected_tif, reference_sr)
# 调整投影后的tif空间范围和分辨率
resampled_tif = tif_file.replace(".tif", "_resampled.tif")
arcpy.Resample_management(projected_tif, resampled_tif, reference_extent, "BILINEAR")
# 删除中间结果
arcpy.Delete_management(projected_tif)
print(f"处理完成:{resampled_tif}")
使用这段代码,你只需要将目录路径和参考tif路径修改为实际的路径,然后运行代码即可实现裁剪、投影和重采样的功能。
原文地址: https://www.cveoy.top/t/topic/i9jx 著作权归作者所有。请勿转载和采集!