Skip to main content
 首页 » 编程设计

python之如何使用 GDAL 更改栅格的地理变换

2025年05月04日11zengkefu

我正在尝试使用 GDAL 设置我按照 GDAL API Tutorial 中概述的步骤创建的新栅格的地理变换.

# create the new dataset 
driver = gdal.GetDriverByName('GTiff') 
dataset = driver.Create('test_gt.tif', 60, 60, 1, gdal.GDT_Float32) 
 
# check the default geotransform 
print dataset.GetGeoTransform()  # prints (0, 1, 0, 0, 0, 1) 
 
# try to alter the geotransform and ensure that it has been set 
dataset.SetGeoTransform([0,1,0,0,0,-1]) 
print dataset.GetGeoTransform()  # prints (0, 1, 0, 0, 0, -1) 
 
dataset = None  # closes the dataset 
 
# Try reopening the dataset now and see if the geotransform has been set. 
ds = gdal.Open('test_gt.tif') 
print ds.GetGeoTransform()  #prints (0, 1, 0, 0, 0, 1) 

数据集.SetGeoTransform() documentation说这应该设置仿射变换系数(根据 dataset.GetGeoTransform() 文档设置为 [0, 1, 0, 0, 0, 1] 默认情况下),但是正如您从我上面的代码中看到的那样,当我尝试更改它们时,这些更改似乎并没有真正生效。

我什至尝试通过 dataset.FlushCache() 将新栅格的缓存刷新到磁盘,但这似乎也没有保存更改。

我怎样才能让 GDAL 将更改后的地理变换实际保存到磁盘?

我使用的是从 PyPI 安装的 GDAL 版本 1.6.3(通过命令行工具 pip)。

请您参考如下方法:

原来这个问题是版本相关的。我升级到 GDAL 版本 1.8.0,现在地理变换设置正确。