我试图用GDAL操作网格(ASCII网格)中的栅格值.但在继续执行此操作之前,我无法将新值写入文件.调用slopeband.WriteArray时,我收到这些错误消息.
错误6:此数据集不支持slope.asc,band 1:WriteBlock().
错误1:slope.asc,band 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 …Run Code Online (Sandbox Code Playgroud)