基于 GDAL 的栅格数据批量重采样方法
GDAL 栅格批量重采样
本方法利用 GDAL 库实现对栅格数据的批量重采样,用户可自定义输出栅格的长宽、数据路径以及 Proj.db 文件路径。
# 导入 GDAL 库
from osgeo import gdal
# 设置输入输出路径
input_folder = '/path/to/input/folder'
output_folder = '/path/to/output/folder'
# 设置重采样参数
new_width = 500
new_height = 500
# 设置 Proj.db 文件路径
gdal.SetConfigOption("PROJ_LIB", "/path/to/proj.db")
# 循环处理每个栅格文件
for filename in os.listdir(input_folder):
if filename.endswith(('.tif','.tiff')):
# 打开栅格文件
dataset = gdal.Open(os.path.join(input_folder, filename))
# 获取栅格信息
projection = dataset.GetProjection()
geotransform = dataset.GetGeoTransform()
# 创建输出栅格
driver = gdal.GetDriverByName('GTiff')
output_dataset = driver.Create(os.path.join(output_folder, filename), new_width, new_height, 1, gdal.GDT_Float32)
output_dataset.SetGeoTransform(geotransform)
output_dataset.SetProjection(projection)
# 重采样
gdal.ReprojectImage(dataset, output_dataset, projection, projection, gdal.GRA_Bilinear)
# 关闭文件
dataset = None
output_dataset = None
代码说明:
- 使用
gdal.Open()
函数打开输入栅格文件。 - 使用
dataset.GetProjection()
和dataset.GetGeoTransform()
获取栅格的投影信息和地理变换参数。 - 使用
gdal.GetDriverByName('GTiff').Create()
创建输出栅格文件,并设置其大小、数据类型、地理变换参数和投影信息。 - 使用
gdal.ReprojectImage()
函数进行重采样,可以选择不同的重采样算法。 - 使用
dataset = None
和output_dataset = None
关闭文件,释放内存。
用户需要根据实际情况修改代码中的路径和参数。
807B
文件大小:
评论区