从 TIF 创建数组
creating an array from a TIF
我正在尝试使用 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 位...
如评论中@the_cheff所述,调用band.ReadAsArray()
时无需传递任何参数。仅调用该函数将 return 整个波段的 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 数组,用于将数据放入而不是创建一个新数组。如果需要,数据将被重新采样以适应这个数组。值也将转换为此数组的数据类型。
我会确认 band 的值确实不同于 0,并且它就是您要读取的 band。在某些情况下,波段 #4 用作 alpha 通道,其值范围为 0 到 1。
我正在尝试使用 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 位...
如评论中@the_cheff所述,调用band.ReadAsArray()
时无需传递任何参数。仅调用该函数将 return 整个波段的 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 数组,用于将数据放入而不是创建一个新数组。如果需要,数据将被重新采样以适应这个数组。值也将转换为此数组的数据类型。
我会确认 band 的值确实不同于 0,并且它就是您要读取的 band。在某些情况下,波段 #4 用作 alpha 通道,其值范围为 0 到 1。