landsat地表温度运量
时间: 2025-07-21 09:33:55 浏览: 2
### 如何使用Landsat卫星数据计算地表温度
#### 数据准备与预处理
为了从Landsat卫星数据中提取地表温度(LST),首先需要获取并预处理原始影像。通常使用的Landsat系列包括Landsat 7 ETM+ 和 Landsat 8 OLI/TIRS,其中后者具有专门设计用于测量地球表面辐射特性的热红外传感器(TIRS)[^1]。
对于Landsat 8而言,在Google Earth Engine (GEE)平台上的操作可以极大简化工作流程。通过调用特定函数来加载C02级别的校正产品,并设置感兴趣区域(ROI)以限定分析范围[^2]。
#### 辐射亮度转换
一旦选择了合适的场景,下一步就是将DN值(Digital Number, 数字编号)转化为物理量级—即辐射亮度(Radiance)。此过程涉及应用由美国地质调查局提供的增益和偏移系数:
\[ Lλ=ML*Qcal+bL \]
这里\( ML \)(Multiplicative Rescaling Factor)代表乘法重定比例因子;而 \( bL \)(Additive Rescaling Factor)则是加法调整常数,两者均可以从元数据文件获得[^4]。
#### 表观反射率计算
除了热红外通道外,还需要考虑可见光近红外波段的信息,比如用来构建NDVI指数辅助去除大气影响等因素的影响。具体来说,Band 4(红光)和 Band 5 (近红外)被广泛应用于植被覆盖度评估之中:
\[ NDVI=\frac{(NIR−Red)}{(NIR+Red)}\]
这种做法有助于提高最终结果准确性,尤其是在存在大量绿色植物的情况下。
#### 温度反演模型
最后一步是从亮温到实际地面温度的转变。一种常用方法是单窗算法(Single Channel Algorithm), 它依赖于已知的大气透过率τ、发射率ε以及其他环境条件下的经验关系式完成这一映射变换。这些参数可通过查阅文献资料或借助在线工具如ATCOR服务自动获取[^5]。
```python
import ee
ee.Initialize()
def calculate_lst(image):
# 获取热红外波段
thermal_band = image.select('B10')
# 应用K1/K2系数进行亮温计算
k1 = ee.Number(image.get('RADIANCE_ADD_BAND_10'))
k2 = ee.Number(image.get('RADIANCE_MULT_BAND_10'))
brightness_temp = thermal_band.expression(
'(k2 / log(k1 / B10 + 1))', {
'B10':thermal_band,
'k1':k1,
'k2':k2
})
return brightness_temp.rename(['lst'])
# 加载Landsat 8 影像集合
dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
// 进一步处理...
```
阅读全文
相关推荐

















