2

我对GDAL/有这个错误问题

INPUT_raster = "E:\myraster.asc"
ds = gdal.Open(INPUT_raster, gdal.GA_ReadOnly)
band = ds.GetRasterBand(1)
data = band.ReadAsArray(9658, 11599, 1, 1)
ERROR 5: E:\myraster.asc, band 1: Access window out of range in RasterIO().  Requested
(9658,11599) of size 1x1 on raster of 9658x16934.

是否可以使用 try: 和 expect: 来避免这个错误?

我将不胜感激您的意见/建议。

问候,詹尼

4

1 回答 1

2

尝试/期望不要避免错误,他们会处理它们。

您正在尝试从栅格中不存在的位置读取数据。x 维度是 9658 个元素,如果你想要最外面的元素,你应该使用 9657,因为索引从零开始。

所以使用:

data = band.ReadAsArray(9657, 11599, 1, 1)

或最后一个 x 位置:

data = band.ReadAsArray(ds.RasterXSize-1, 11599, 1, 1)
于 2013-07-19T15:22:23.550 回答