写一个python反演landsat8地表温度的代码
时间: 2023-09-18 09:14:43 浏览: 145
以下是一个简单的Python代码,用于反演Landsat 8卫星数据中的地表温度:
```python
import numpy as np
import math
# 定义常量
K1 = 774.8853
K2 = 1321.0789
L = 0.0003342
B = 0.1
emissivity = 0.95
# 读取输入数据
band10 = np.array([[65.5, 66.3, 66.1], [66.8, 66.4, 66.1], [66.3, 66.0, 66.2]])
band11 = np.array([[44.9, 45.2, 45.1], [45.8, 45.5, 45.2], [45.2, 45.0, 45.1]])
# 计算亮温
L10 = K1 / (np.log(K2 / band10 + 1))
L11 = K1 / (np.log(K2 / band11 + 1))
# 计算辐射温度
T10 = (L * L10 - B) / math.log(emissivity * (L * L10 / L11) + 1)
T11 = (L * L11 - B) / math.log(emissivity * (L * L11 / L10) + 1)
# 输出结果
print("Band 10 brightness temperature: ", L10)
print("Band 11 brightness temperature: ", L11)
print("Surface temperature: ", T10, T11)
```
该代码首先定义了一些常量,包括K1、K2、L、B和emissivity等。然后,输入Landsat 8卫星数据中的Band 10和Band 11,计算亮温。最后,根据反演公式计算地表温度,并将结果打印出来。
阅读全文