写一个python反演landsat9地表温度的代码
时间: 2023-09-18 20:14:38 浏览: 237
以下是一个反演Landsat 9地表温度的Python代码示例,使用Thermal Infrared Sensor (TIRS)数据和反演算法。注意,这个代码示例仅用于学习和演示目的,实际应用需要根据具体数据和情况进行修改和调整。
```python
import numpy as np
import gdal
def read_landsat_tirs(filename):
"""
读取Landsat 9 TIRS数据
"""
ds = gdal.Open(filename)
b10 = ds.GetRasterBand(10)
b11 = ds.GetRasterBand(11)
tirs_data = np.array([b10.ReadAsArray(), b11.ReadAsArray()])
return tirs_data
def calc_land_surface_temp(tirs_data, emissivity=0.95):
"""
计算地表温度
"""
k1 = 774.8853
k2 = 1321.0789
temp_data = k2 / np.log((k1 / tirs_data) + 1.0)
land_surface_temp = (temp_data - 273.15) / emissivity
return land_surface_temp
# 示例用法
tirs_data = read_landsat_tirs('Landsat9_TIRS.tif')
land_surface_temp = calc_land_surface_temp(tirs_data)
```
阅读全文