2

GDAL API チュートリアルで概説されている手順に従って、作成した新しいラスターの地理変換を設定するために GDAL を使用しようとしています。

# 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 から (コマンドライン ツール経由でpip) インストールされた GDAL バージョン 1.6.3 を使用しています。

4

1 に答える 1

1

この問題はバージョン固有であることが判明しました。GDALバージョン1.8.0にアップグレードしましたが、geotransformが正しく設定されました。

于 2012-03-21T22:14:15.987 に答える