我正在尝试使用GDAL从单频段TIF图像创建一个数组: 例子
array= band4.ReadAsArray(0,0,xsize,ysize)
但它只是零?
array
[[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]]
有没有办法围绕这种或其他方式创建阵列?图像是无符号16位...
答案 0 :(得分:0)
正如@the_cheff在评论中所述,在调用band.ReadAsArray()
时没有必要传递任何参数。只调用该函数将返回整个乐队的numpy数组。
功能结构如下:
band.ReadAsArray([xoff], [yoff], [win_xsize], [win_ysize], [buf_xsize], [buf_ysize], [buf_obj])
其中,
xoff
是开始阅读的专栏。默认值为0(第一列)。yoff
是要开始阅读的行。默认值为0(第一行)。win_xsize
是要读取的列数。默认是全部阅读。win_ysize
是要读取的行数。默认是全部阅读。buf_xsize
是输出数组中的列数。默认是使用win_xsize
值。如果此值不同于win_xsize
,则会重新采样数据。buf_ysize
是输出数组中的行数。默认是使用win_ysize
值。如果此值不同于win_ysize
,则会重新采样数据。buf_obj
是一个NumPy数组,用于放入数据而不是创建新数组。如果需要,将重新采样数据以适合此数组。值也将转换为此数组的数据类型。我会确认乐队确实有不同于0的值,并且它是您尝试阅读的乐队。在某些情况下,#4频段用作alpha通道,其值范围为0到1.