ArcGIS pro Python脚本实现批量栅格裁剪,将栅格根据若干个矢量面裁剪

# -*- coding: utf-8 -*-
import arcpy
import os
from arcpy.sa import ExtractByMask
from arcpy import env

# 环境设置
arcpy.CheckOutExtension("Spatial")  # 启用空间分析扩展 
env.overwriteOutput = True          # 允许覆盖输出

# 参数设置
input_raster = r"C:\Data\原始影像.tif"       # 输入栅格路径
vector_folder = r"C:\Data\矢量面数据"        # 矢量面数据文件夹
output_folder = r"C:\Data\裁剪结果"          # 输出文件夹

# 创建输出目录
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 获取所有矢量面要素
env.workspace = vector_folder
feature_classes = arcpy.ListFeatureClasses("*.shp")  # 列出所有SHP文件 

# 进度计数器
total = len(feature_classes)
count = 0

# 主处理循环
for fc in feature_classes:
    count += 1
    try:
        # 构建完整路径
        mask_layer = os.path.join(vector_folder, fc)
        
        # 生成输出文件名
        output_name = "裁剪_" + os.path.splitext(fc)[0] + ".tif"
        output_path = os.path.join(output_folder, output_name)
        
        # 执行掩膜提取 
        out_raster = ExtractByMask(input_raster, mask_layer)
        
        # 保存结果 
        out_raster.save(output_path)
        
        # 打印进度
        arcpy.AddMessage(f"进度:{count}/{total} | 完成:{output_name}")
        
    except Exception as e:
        arcpy.AddError(f"处理 {fc} 失败: {str(e)}")

# 清理环境
arcpy.CheckInExtension("Spatial")
print("批量裁剪处理已完成!")



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值