【问题标题】:GDAL ReadAsArray Landsat-8 tens of thousands value on the pixel valueGDAL ReadAsArray Landsat-8 上万像素值
【发布时间】:2018-07-14 01:17:33
【问题描述】:

我是 Landsat-8 和 python 的新手。我打开了一个 Landsat-8 tiff 文件,想读取单个文件的信息(例如这里我使用 LC08_L1TP_172039_20150509_20170411_01_T1_B4.tif 文件),但是值变成了高达数万而不是它们应该是的波段范围(像这里一样,它们应该在 Landsat8DataUsersHandbook 中描述的 0.636 到 0.673 um 的范围内),我不知道为什么会发生这种情况,有没有办法将从 gdal 模块读取的值转换为实际值?

谢谢

import gdal

dataset = gdal.Open("C:\\Users\\Desktop\\LC08_L1TP_172039_20150509_20170411_01_T1.tar.gz\\LC08_L1TP_172039_20150509_20170411_01_T1_B4.tif")
dataset.RasterCount
band_4 = dataset.GetRasterBand(1)
band_44 = band_4.ReadAsArray()
band_44.max()
Out[95]: 35961

【问题讨论】:

    标签: python gdal geo landsat


    【解决方案1】:

    tif 中的值是 DN 值,需要进行缩放。查看手册第 5 节: https://landsat.usgs.gov/landsat-8-l8-data-users-handbook-section-5

    如果您想获得大气层顶反射率值,您应该查看 MTL 文本文件中的转换值。

    它们按乐队列出,例如:

    REFLECTANCE_MULT_BAND_1 = 2.0000E-05
    REFLECTANCE_ADD_BAND_1 = -0.100000
    etc.
    

    仔细阅读第 5.2 节,别忘了修正太阳角(如果你需要的话)。

    【讨论】:

      猜你喜欢
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多