基于 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

代码说明:

  1. 使用 gdal.Open() 函数打开输入栅格文件。
  2. 使用 dataset.GetProjection()dataset.GetGeoTransform() 获取栅格的投影信息和地理变换参数。
  3. 使用 gdal.GetDriverByName('GTiff').Create() 创建输出栅格文件,并设置其大小、数据类型、地理变换参数和投影信息。
  4. 使用 gdal.ReprojectImage() 函数进行重采样,可以选择不同的重采样算法。
  5. 使用 dataset = Noneoutput_dataset = None 关闭文件,释放内存。

用户需要根据实际情况修改代码中的路径和参数。

py 文件大小:807B