GDAL を使用してグリッド (ASCII グリッド) でラスター値を操作しようとしています。しかし、これに進む前に、新しい値をファイルに書き込むのに問題があります。これらのエラー メッセージは、slopeband.WriteArray(s) が呼び出されたときに表示されます。
エラー 6: 勾配.asc、バンド 1: このデータセットでは WriteBlock() はサポートされていません。
エラー 1: スロープ.asc、バンド 1: ダーティ ブロックの書き込み中にエラーが発生しました
これが非常に基本的なものである場合は申し訳ありませんが、特に python と GDAL にはまだ慣れていません。Mac OS X 10.6.8 および Python 2.7 で GDAL 1.9.0 を使用しています。ありがとうございました!
import numpy
import gdal
import gdalconst
dgm = gdal.Open("DGM_10_MR.asc", gdalconst.GA_ReadOnly)
driver = dgm.GetDriver()
geotransform = dgm.GetGeoTransform()
band = dgm.GetRasterBand(1)
data = band.ReadAsArray()
cols = dgm.RasterXSize
rows = dgm.RasterYSize
slope = driver.CreateCopy("slope.asc", dgm)
slope = None
dgm = None
slope = gdal.Open("slope.asc", gdalconst.GA_Update)
slope.SetGeoTransform(geotransform)
slopeband = slope.GetRasterBand(1)
s = slopeband.ReadAsArray()
for y in range(rows):
for x in range(cols):
s[y, x] = 0.0
slopeband.WriteArray(s)
slopeband.FlushCache()
del s
dgm = None
slope = None
print "done"