如何使用GDAL更改光栅的分辨率?
我想找到一个最好的方法来改变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。