从gdal ReadAsArray返回的numpy数组中值的范围是多少?

时间:2019-06-21 17:23:42

标签: python numpy gdal

我下载了BigEarthNet数据集,并用gdal读取了python中的TIFF图像。下面的代码。结果数组的值远高于我期望的0-255范围,那么值的范围是多少?

band1 = imagePath + "/" + img + "/" + img + "_B02.tif"
band_ds = gdal.Open(band1,  gdal.GA_ReadOnly)
raster_band = band_ds.GetRasterBand(1)
blue = raster_band.ReadAsArray()
print(blue)

这是输出

[[284 388 554 ... 325 318 325]

 [211 213 297 ... 319 300 318]

 [227 206 245 ... 305 318 332]

 ...

 [309 612 920 ... 710 643 554]

 [259 626 862 ... 654 646 536]

 [260 608 730 ... 501 629 526]]

3 个答案:

答案 0 :(得分:0)

如果它确实是一个Numpy数组,则可以使用以下命令获得最大值/最小值:

numpy.amax(raster_band)
numpy.amin(raster_band)

答案 1 :(得分:0)

看起来您已经在外观上安装了gdal,

gdalinfo <filename>

将为您提供文件上的统计信息,其中包括存储值的最大值和最小值。 tif中的数据可以表示很多东西,例如DEM存储表示光栅带中高度的值。

值的实际可能范围取决于用于对其进行编码的数据类型。例如,uint16的范围是0-65535,我想我以前以BIL格式使用过。

答案 2 :(得分:0)

From the sentinel-2 user guide

  

放射线分辨率通常表示为位数,   通常在8到16位范围内。的辐射分辨率   MSI仪器为12位,因此可以通过   范围为0至4095的潜在光强度值。