GDAL ReadAsArray Landsat8像素值上万

2024-06-07 09:56:30 发布

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

我是陆地卫星8号和Python的新初学者。我打开了一个Landsat-8 tiff文件,想读取单个文件的信息(例如,这里我使用LC08_L1TP_172039_20150509_20170411_01_T1_B4.tif文件),但是这些值变成了数万,而不是它们应该是的频带范围(就像这里,它们应该在0.636到0.673um的范围内,正如Landsat8DataUsersHandbook中所描述的),我不知道为什么会发生这种情况,有没有办法将从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

Tags: 文件信息banddatasetumlandsatt1b4
1条回答
网友
1楼 · 发布于 2024-06-07 09:56:30

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节,别忘了校正太阳角(如果你需要的话)。在

相关问题 更多 >

    热门问题