从TIF创建数组

2024-06-17 09:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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位。。。你知道吗


Tags: 方法图像示例波段符号数组arraygdal
1条回答
网友
1楼 · 发布于 2024-06-17 09:23:36

正如注释中所述,调用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。你知道吗

相关问题 更多 >