雷达数据处理和风场反演
强对流活动通常会伴随降水、降雹和龙卷风等现象,气象雷达则用于探测上述天气现象,并可以根据雷达观测数据采用外推等方法进行短临预报。对于科学研究和天气预报来说非常重要。
气象雷达观测所产生的数据通常是二进制格式,需要根据对应的数据说明文档进行解码,然后生成雷达产品。
雷达数据处理
目前我国已经布设了较为密集的气象雷达观测网,针对不同的地区特点选择了不同波段雷达。用于处理雷达数据的Python库相对较多,比如PyART、wradlib、PyCINRAD等。
PyART和wradlib可以处理多种格式的雷达数据,但主要格式均为美国天气雷达数据格式。这两个库均提供了雷达数据的校正功能,此外wradlib还可以根据雷达回波进行粒子识别和分类,还可以进行降雨估计及结果调整。
PyCINRAD为国内开发者利用Python开发的用于处理国内常见气象雷达格式的开源库,目前实现了数据处理和可视化功能。
PyART和wradlib的用户较多,而且不少额外的雷达产品库(比如雷达风场反演、湍流的检测评估等)都提供了相应的接口直接处理PyART的输出对象。
为了更好的利用Python的气象雷达生态库,添加了国内常见的雷达数据格式处理接口到PyART中。目前已经实现了SA波段多普勒雷达和C波段双偏振多普勒雷达数据的处理接口。
双偏振雷达和普通多普勒雷达的区别在于:双偏振雷达可以在水平和垂直方向上发送和接收脉冲信号,而普通多普勒雷达仅能在水平方向上发送和接收脉冲信号。
SA波段雷达数据处理
SA雷达基数据存储结构较为简单,只需要根据格式说明文档进行顺序解码即可,具体的解码细节参考:pyart.io.sband_radar
。
以下为使用PyART处理SA雷达数据的示例:
import matplotlib.pyplot as plt import pyart from pyart.io.sband_archive import read_sband_archive filename = 'Z_RADR_I_Z9250_20190408232400_O_DOR_SA_CAP.bin' radar = read_sband_archive(filename, station=(33.431, 120.201, 80)) fig, ax = plt.subplots(figsize=(12, 9)) display = pyart.graph.radardisplay.RadarDisplay(radar) display.plot_ppi("reflectivity", 0, vmin=0, vmax=70) plt.show()
C波段双偏振雷达数据处理
相比于S波段雷达而言,C波段双偏振多普勒雷达具有不少优点,比如:
在识别目标物的大小、形状和种类时具有更好的表现;
在降水估测方面具有更高的准确率;
能够区分强降雨、冰雹、雪和雨夹雪
改进了非气象回波的探测,比如地物阻挡、鸟群、龙卷带到空中的物体等;
飞机结冰条件的探测;
融化层的识别等
由于双偏振雷达的观测量增多,其数据存储结构相对SA雷达而言也较为复杂,因此在处理起来相对SA雷达麻烦一些。关于C波段双偏振雷达的数据的具体解码细节可查看pyart.io.C98DRadFile
。
以下为使用PyART处理C波段双偏振雷达示例:
from pyart.io.c98d_archive import c98dfile_archive cradar = c98dfile_archive('NUIST.20140928.070704.AR2') cdisplay = pyart.graph.RadarDisplay(cradar) fig = plt.figure(figsize=(12, 9)) # plot super resolution reflectivity ax = fig.add_subplot(111) cdisplay.plot('dBZ', 0, title='C-band WSR-98D Radar Reflectivity', vmin=0, vmax=70, colorbar_label='reflectivity factor(dBZ)', ax=ax) fig.savefig('dual_pol.png', dpi=300, bbox_inches='tight')
风场反演
Pyhton库中提供了多个基于气象雷达径向风的风场反演开源库,比如SingleDop、MultiDop、PyDDA等。SingleDop主要是针对单多普勒雷达的风场反演,MultiDop和PyDDA是基于多个多普勒雷达的风场反演工具。
上述三个库均可以和PyART无缝衔接,无需再进行过多的处理。以下以SingleDop反演SA雷达风场为例:
import singledop wind = singledop.SingleDoppler2D(radar=sradar, grid_spacing=0.25, L=1, sweep_number=1, name_vr='velocity', thin_factor=[4, 4], grid_edge=120, sigma=1) swdisplay = singledop.AnalysisDisplay(wind) fig, ax = plt.subplots(figsize=(9, 9)) swdisplay.plot_velocity_vectors(ax=ax, legend=10) ax.set_xlim([-100, 100]) ax.set_ylim([-100, 100]) fig.savefig('sa_wind.png', dpi=300, bbox_inches='tight')
由于没有其他格式雷达数据的测试数据和说明文档,因此,目前仅支持SA和WSR-98D雷达数据的解码。
与PyDDA和PyTDA库的兼容还需要进行一些调整和测试。
关于SA波段和上述C波段WSR-98D雷达数据的说明文档可直接下载查看。
- 点赞
- 收藏
- 关注作者
评论(0)