如何使用GDAL更改光栅的分辨率?

8 投票
2 回答
22287 浏览
提问于 2025-04-17 04:03

我想找到一个最好的方法来改变GDAL栅格数据集的分辨率。

举个例子,我有一个栅格图像,它的像素大小是(30, -30),我想把像素大小改成(5, -5),并且要把每个像素的值都插值到输出的栅格图像中。

也就是说,对于输入栅格图像的每个像素,我希望在输出栅格图像中有36个像素,它们的值都是一样的。

如果我运行 gdalwarp -tr 5 -5 inputRaster.tif outputRaster.tif,我就能得到我想要的结果,所以我认为我应该能用某个GDAL函数来实现这个功能。

如果可以的话,我希望避免使用python的Subprocess类。

2 个回答

6

使用 gdal.Warp 函数:

gdal.Warp('outputRaster.tif', 'inputRaster.tif', xRes=5, yRes=5)
6

你需要对栅格数据进行重投影。比如,可以在一个交互式的Python环境中这样做:

from osgeo import gdal
help(gdal.ReprojectImage)

在这里有一个Python的例子,可以在测试套件中找到。

关于C++函数的更详细文档,可以查看GDALReprojectImage

撰写回答