4. 伪VIS云图渲染
《伪VIS算法原理与教程》理论篇(
https://www.tyboard.net/forum.php?mod=viewthread&tid=374)对伪VIS算法从原理和公式出发进行了较为详细的讲解,但代码层面没有过多的展开,对于部分读者来说自己复现的难度较大。这里我们会提供更详细的指引和代码示例,对代码背后的原理感兴趣的读者们也可以再回去看看理论篇。
a. 伪VIS基础算法实现
先前写的理论篇第三章分为7个小节,所谓“基础算法”指的是其中除了高云修正和海温反演修正以外的其他5项,其特点是比较通用,能应用于每个有合适波段与分辨率的卫星仪器。
(伪VIS教程目录截图)
首先把伪VIS需要的Band20,Band32亮温读取出来:
radiance = (Emissive[0] - radiance_offsets[0]) * radiance_scales[0]
bt20 = C1/3.750 / (np.log(1 + C2/3.750**5/radiance)) - 273.15
radiance = (Emissive[11] - radiance_offsets[11]) * radiance_scales[11]
bt32 = C1/12.020 / (np.log(1 + C2/12.020**5/radiance)) - 273.15
合成高温区模拟反射率:
ref_warm = (bt20[:, 1:]-26)/(bt31[:, 1:]-29)
这里已经可以尝试用pcolormesh画出来了,注意渲染范围要改成0~1,cmap可以改成matplotlib内置的'gray'色阶。
plt.pcolormesh(newlon, newlat, ref_warm, vmin=0, vmax=1, cmap='gray', transform=ccrs.PlateCarree())
结果如下,其实已经和可见光云图有几分相像了