运用python进行批量裁剪

# -*- coding: utf-8 -*-
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "J:\\python_test\\tif"#tif格式数据储存的路径
outputpath = "J:\\python_test\\out"#裁剪数据输出路径
rasters = arcpy.ListRasters("*.tif")#遍历tif文件
inMaskData = "J:\\python_test\\clip_shp\\mask.shp"#掩膜
for raster in rasters:
    file_name = raster
    clip_tif=ExtractByMask(raster,inMaskData)
    clip_tif.save(outputpath+'\\'+file_name)#保存裁剪数据
    print(file_name+" finished")
裁剪栅格是指根据指定的范围或边界,将栅格数据集中的数据裁剪为指定区域的子集。在Python中,可以使用GDAL库来进行栅格数据的裁剪操作。下面是一个示例代码,演示了如何使用Python批量裁剪栅格数据: ```python import os from osgeo import gdal def batch_clip_raster(input_folder, output_folder, clip_extent): # 获取输入文件夹中的所有栅格文件 raster_files = \[f for f in os.listdir(input_folder) if f.endswith('.tif')\] # 遍历每个栅格文件 for raster_file in raster_files: # 构建输入和输出文件路径 input_path = os.path.join(input_folder, raster_file) output_path = os.path.join(output_folder, raster_file) # 打开栅格文件 dataset = gdal.Open(input_path) # 获取栅格文件的投影和地理转换信息 projection = dataset.GetProjection() geotransform = dataset.GetGeoTransform() # 获取栅格文件的行列数 rows = dataset.RasterYSize cols = dataset.RasterXSize # 创建输出栅格文件 driver = gdal.GetDriverByName('GTiff') output_dataset = driver.Create(output_path, cols, rows, 1, gdal.GDT_Float32) # 设置输出栅格文件的投影和地理转换信息 output_dataset.SetProjection(projection) output_dataset.SetGeoTransform(geotransform) # 进行裁剪操作 gdal.Warp(output_dataset, dataset, cutlineDSName=clip_extent, cropToCutline=True) # 关闭数据集 dataset = None output_dataset = None print("批量裁剪栅格完成!") # 设置输入文件夹路径 input_folder = 'path/to/input/folder' # 设置输出文件夹路径 output_folder = 'path/to/output/folder' # 设置裁剪范围的矢量文件路径 clip_extent = 'path/to/clip/extent.shp' # 调用批量裁剪函数 batch_clip_raster(input_folder, output_folder, clip_extent) ``` 在上述代码中,需要设置输入文件夹路径(包含待裁剪的栅格数据)、输出文件夹路径(保存裁剪后的栅格数据)和裁剪范围的矢量文件路径。代码会遍历输入文件夹中的所有栅格文件,并将其裁剪为指定范围的子集,然后保存到输出文件夹中。请确保已经安装了GDAL库,并将路径替换为实际的文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值