fy3mersi地表温度反演和专题制图的matlab 实现
时间: 2023-11-17 14:03:11 浏览: 186
FY-3卫星是中国自主研发的气象卫星,具备地表温度探测能力。地表温度反演是利用FY-3卫星搭载的探测仪器获取遥感数据,并通过算法进行处理,得到地表温度的过程。MATLAB是一种功能强大的科学计算软件,可以用于处理和分析遥感数据,实现地表温度反演和制图。
首先,我们需要获取FY-3卫星遥感数据,这些数据包括卫星观测到的辐射亮度温度。然后,通过对卫星仪器的辐射定标和辐射传输模型的建立,利用MATLAB编程来对原始遥感数据进行预处理,包括大气校正、辐射校正等步骤。
接下来,根据不同的反演算法,可以使用MATLAB中的数学运算函数来对预处理后的数据进行处理。常用的地表温度反演算法包括基于辐射平衡的热带算法、统计学方法等。在MATLAB中,我们可以利用矩阵运算、插值、拟合等函数来实现这些算法,并得到地表温度估计值。
最后,通过利用MATLAB中的绘图函数,如contourf、imagesc等,可以将反演得到的地表温度数据进行可视化制图。我们可以设置不同的颜色映射和轮廓线等参数,以便更清晰地展示地表温度的空间分布情况。
综上所述,利用MATLAB可以实现FY-3卫星地表温度反演和专题图的制作。通过对遥感数据的预处理、反演算法的实现以及制图过程的可视化,我们可以获得高质量的地表温度反演结果,并能够方便地展示和分析地表温度的空间分布特征。
相关问题
请用python编写处理FY3D-MERSI的大气校正代码
大气校正是遥感图像处理中比较复杂的一个环节,需要进行气溶胶光学厚度、水汽含量等多个参数的反演。下面是一个简单的FY3D-MERSI的大气校正代码示例:
```python
import numpy as np
import scipy.io as sio
# 读取FY3D-MERSI数据
data = sio.loadmat('FY3D-MERSI.mat')
radiance = data['radiance']
latitude = data['latitude']
longitude = data['longitude']
# 定义大气校正系数
angstrom = 1.2
water_vapor = 1.2
# 计算大气校正系数
a = np.exp(-angstrom * np.log(470) + np.log(550))
b = np.exp(-angstrom * np.log(550) + np.log(550))
c = np.exp(-angstrom * np.log(660) + np.log(550))
water_vapor = np.exp(-0.0098 * water_vapor + 0.05)
# 进行大气校正
reflectance = np.zeros_like(radiance)
for i in range(radiance.shape[0]):
for j in range(radiance.shape[1]):
reflectance[i, j] = (radiance[i, j] - b) / (a - c * water_vapor)
# 保存大气校正后的数据
sio.savemat('FY3D-MERSI-reflectance.mat', {'reflectance': reflectance})
```
需要注意的是,这个代码示例只是一个简单的演示,实际的大气校正过程要比这个复杂得多。
python 读取FY3D
以下是使用PyTables库读取FY3D数据的Python代码示例:
```python
import matplotlib.pyplot as plt
from tables import *
# 打开HDF5文件
f = "D:\Download\D202107180081468319/FY3C_MERSI_GBAL_L1_20150529_0210_0250M_MS.HDF"
h5file = open_file(f, 'r')
# 遍历文件中的所有组
for group in h5file.walk_groups():
print(group)
# 遍历文件中的所有节点
for node in h5file:
print(node)
# 获取指定数据集
dt = h5file.root.Data.EV_250_RefSB_b3 # (CArray(8000, 8192), zlib(5))
# 绘制等高线图
plt.contour(dt)
plt.show()
```
上述代码中,我们首先导入了`matplotlib.pyplot`和`tables`库。然后,我们使用`open_file()`函数打开了FY3D数据文件,并遍历了文件中的所有组和节点。接着,我们使用`h5file.root.Data.EV_250_RefSB_b3`获取了指定的数据集,并使用`plt.contour()`函数绘制了等高线图。最后,我们使用`plt.show()`函数显示了绘制的图形。
阅读全文