2

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

# 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)

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

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

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

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

4

1 回答 1

1

事实证明,这个问题是特定于版本的。我升级到 GDAL 1.8.0 版,现在地理变换设置正确。

于 2012-03-21T22:14:15.987 回答