目录
前言
这是一篇关于使用 Python 库 Py-ART 读取雷达数据文件、绘制雷达图并进行反射率修正的教程。
这篇文章是我在2020年8月做大创项目的时候写的,由于中间修改过代码,并不确定代码 100% 正确。
原地址:Py-ART 简易中文教程 随着gitee关闭了pages的功能,现在已经无法访问了。
反射率衰减修正
下面是从nc文件中读取数据,计算修正反射率衰减,绘制出图像的例子。
#!/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()
运行程序获得下图
标签:150,pyart,field,修正,反射率,radar,绘制,display From: https://blog.csdn.net/Syize/article/details/139898426本文章首发于 Syizeのblog。