landsat计算地表温度LST
时间: 2025-06-25 14:07:56 浏览: 19
### 使用Landsat数据计算地表温度(LST)
#### 方法概述
地表温度(LST, Land Surface Temperature)可以通过热红外波段的遥感影像来估算。通常,Landsat卫星提供了多个光谱波段,其中短波和长波辐射信息可用于推导LST。具体来说,Landsat 8上的TIRS传感器提供了两个热红外波段(Band 10 和 Band 11),而之前的Landsat版本则仅有一个热红外波段(如Landsat 5/7 的 Band 6)。以下是基于Landsat数据计算LST的主要步骤[^3]。
#### 数据预处理
在计算LST之前,需要对原始Landsat数据进行一系列预处理操作:
1. **大气校正**:通过去除大气效应获取表面反射率。
2. **辐射定标**:将DN值转换为辐亮度(Radiance)。
3. **亮温计算**:从辐亮度进一步转化为亮温(Brightness Temperature)。
4. **发射率修正**:考虑地表发射率的影响调整最终的地表温度。
#### 辐射定标的公式
假设 $ L_{\lambda} $ 表示波段的辐亮度,则其可通过以下线性方程得到:
$$
L_{\lambda} = M_L \cdot Qcal + A_L
$$
其中,
- $ M_L $ 是量化增益;
- $ A_L $ 是量化偏移量;
- $ Qcal $ 是数字化数量 (Digital Number)。
这些参数可以从对应场景的元数据文件中提取出来[^3]。
#### 计算亮温
一旦获得了辐亮度 $ L_{\lambda} $ ,就可以利用普朗克定律反演亮温 $ T_b $ 。对于 Landsat 卫星而言,该过程简化如下:
$$
T_b = K_2 / (\ln(K_1/\lambda + 1))
$$
这里 $ K_1 $ 和 $ K_2 $ 均由官方文档给出的具体常数值决定[^3]。
#### 地表温度估计
为了获得真实的地表温度而非仅仅是从单一通道得出的亮温,还需要引入地表发射率这一重要因素。一种常见做法是借助 NDVI 来近似估算发射率分布情况。例如当植被覆盖率较高时,默认认为其具有接近于1的理想黑体特性;反之裸土区域可能表现出较低水平的发射效率[^4]。
下面展示一段简单的 Python 实现代码片段用于演示上述流程的一部分:
```python
import rasterio
from rasterio.plot import show
import numpy as np
def calculate_lst(band_file_path, k1_constant=774.89, k2_constant=1321.08):
with rasterio.open(band_file_path) as src:
band_data = src.read(1).astype('float')
# Convert Digital Numbers to Radiance
radiance = (band_data * src.tags()['RADIANCE_MULT_BAND'] +
float(src.tags()['RADIANCE_ADD_BAND']))
# Calculate Brightness Temperature from Radiance using Planck's Law approximation
brightness_temp = k2_constant / np.log((k1_constant/radiance)+1)
return brightness_temp
lst_result = calculate_lst("path_to_your_landsat_band.tif")
show(lst_result, cmap='hot', title="Land Surface Temperature Map")
```
此脚本读取指定路径下的单个波段图像并执行基本变换以生成初步的结果图层。注意实际应用过程中还需综合更多辅助因子完成精确建模工作。
---
阅读全文
相关推荐


















