python批量裁剪栅格
时间: 2023-08-12 13:04:21 浏览: 203
裁剪栅格是指根据指定的范围或边界,将栅格数据集中的数据裁剪为指定区域的子集。在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库,并将路径替换为实际的文件路径。
阅读全文