看了一些讲解回答,找不到这个文件
USGS的注册一直收不到邮件(谷歌邮箱)
这个文件是温度文件吗
引自免费微信小程序:皆我百晓生
要计算Landsat 8 的地表温度(LST),你需要Landsat 8 的辐射校正产品,通常是Level-2 Surface Temperature Bands。根据你的描述,你似乎已经访问了USGS EROS (Earth Resources Observation and Science Center) 网站,并找到了一些L1TP产品,这些是Level-1 Top of Atmosphere (TOA) 数据,它们尚未进行辐射校正和大气校正。
为了得到LST,你需要下载的是经过辐射校正和大气校正的Level-2产品。在USGS EarthExplorer网站上,你应该选择Landsat Collection 2 Level-2 Thermal Infrared产品。如果你还没有收到确认邮件,可以尝试以下步骤:
一旦你能成功登录并下载了Level-2 Thermal Infrared产品,你将获得包含LST信息的 bands。对于Landsat 8,热红外波段通常为B10(10.6 µm)和B11(11.2 µm)。要计算LST,你需要使用像ENVI、QGIS、R或Python这样的地理空间软件,配合相应的库,例如rasterio、GDAL、xarray、numpy等。
这里是一个简单的Python示例,使用rasterio和xarray来读取和处理Landsat 8的热红外数据,并计算LST。请注意,这只是一个基础示例,实际计算可能需要更复杂的算法和更多的输入参数(比如发射率和大气透过率等),但这里仅展示如何从数据集中提取数据。
首先确保安装了所需的库:
pip install rasterio xarray numpy
然后使用以下代码加载数据并计算LST:
import rasterio
import xarray as xr
import numpy as np
# 读取B10和B11波段数据
with rasterio.open("path_to_your/LC08_L1TP_124047_20211203_20211209_02_T1_B10.TIF") as b10_file:
b10_data = b10_file.read()
with rasterio.open("path_to_your/LC08_L1TP_124047_20211203_20211209_02_T1_B11.TIF") as b11_file:
b11_data = b11_file.read()
# 创建一个xarray Dataset
ds = xr.Dataset(
{
"band10": (("y", "x"), b10_data),
"band11": (("y", "x"), b11_data),
},
coords={
"x": b10_file.transform[0] * b10_file.width * np.arange(b10_file.width) + b10_file.transform[2],
"y": b10_file.transform[4] * b10_file.height * np.arange(b10_file.height) + b10_file.transform[5],
},
)
# 定义常数
lambda_b10 = 10.6e-6 # 波长 B10 (微米)
lambda_b11 = 11.2e-6 # 波长 B11 (微米)
c = 299792458 # 光速 (m/s)
k = 1.380649e-23 # 布朗运动常数 (J/K)
sigma = 5.670373e-8 # 斯特藩-玻尔兹曼常数 (W/m^2 K^4)
# 计算LST
lst = ((np.log((c**2 / (lambda_b10**5 * sigma)) / (ds.band10.values / ds.band11.values - 1))) * 1000) / k
# 输出LST数组
print(lst)
这段代码仅用于演示如何读取和处理数据,实际的LST计算可能需要更精确的辐射传输模型和额外的参数。在执行此操作之前,请确保你已经获得了正确的Level-2 Thermal Infrared数据,并且熟悉所使用的算法。如果你对代码或算法有任何疑问,欢迎随时提问。