用 pyart 绘制雷达图像并进行反射率修正

Python

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

前言

这是一篇关于使用 Pthon 库 Py-ART 读取雷达数据文件、绘制雷达图并进行反射率修正的教程。

这篇文章是我在去年暑假–也就是 2020年8月–做大创项目的时候写的,想着既然要写自己的博客了那就一块搬过来吧,当然原博客的地址还是要加的

由于中间修改过代码,并不确定代码 100% 正确

原地址:Py-ART 简易中文教程

反射率衰减修正

下面是从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()

  运行程序获得下图

反射率衰减修正对比图

Author: Syize

Permalink: https://blog.syize.cn/2021/09/10/reflectivity-recorrection/

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Syizeのblog

Comments