反射率衰减修正

  下面是从nc文件中读取数据,计算修正反射率衰减,绘制出图像的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/python3

#引入所依赖的第三方库

import matplotlib.pyplot as plt
import pyart
from sys import exit

if __name__=='__main__':

#读取数据文件

radar=pyart.io.read_cfradial('CfRadial_1.nc')

#检查扫描方式

if radar.scan_type!='ppi':
exit('Error: 请使用扫描方式为PPI的数据文件')

#计算修正,返回计算出的衰减(spec_at)和修正后的反射率(cor_z)
#radar 是读取数据文件返回的对象,0 是水平反射率的偏移量
#refl_field 接收反射率的数据,ncp_field 接收信噪比
#rhv_field 接收相关系数,phidp_field 接收微分相

spec_at,cor_z=art.correct.calculate_attenuation(
radar,0,refl_field='reflectivity',
ncp_field='SNR',rhv_field='cross_correlation_ratio',
phidp_field='differential_phase')

#将计算出来的衰减和修正之后的反射率添加到radar.fields中,fields为一个字典对象

radar.add_field('specific_attenuation',spec_at)
radar.add_field('corrected_reflectivity_horizontal',cor_z)

#设置仰角层

lyrNo=0

fig=plt.figure(figsize=(15,5))
ax1=fig.add_subplot(121)
display=pyart.graph.RadarDisply(radar)

#绘制图像,vmin,vmax设置反射率的范围
#colorbar_label设置colorbar标题,cmap更改图像配色

display.plot('reflectivity',lyrNo,ax=ax1,vmin=-20,vmax=60.,
colorbar_label='',title='Raw Reflectivity',cmap='jet')

#设置横纵坐标轴的显示范围

display.set_limits((-150,150),(-150,150),ax=ax1)

ax2=fig.add_subplot(122)
display.plot('corrected_reflectivity_horizontal',lyrNo,
vmin=-20,vmax=60.,colorbar_label='',ax=ax2,
title='Corrected Reflectivity',cmap='jet')
display.set_limits((-150,150),(-150,150),ax=ax2)

plt.suptitle('Attenuation correction using Py-ART',fontsize=16)
plt.show()

  运行程序获得下图

反射率衰减修正对比图

本教程遵循GPL开源协议,转载请标明本博客地址:https://syize.gitee.io/