首页 > 其他分享 >用pyart绘制雷达图像并进行反射率修正

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

时间:2024-06-23 12:31:04浏览次数:21  
标签:150 pyart field 修正 反射率 radar 绘制 display

目录

前言

这是一篇关于使用 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() 

运行程序获得下图

在这里插入图片描述

本文章首发于 Syizeのblog

标签:150,pyart,field,修正,反射率,radar,绘制,display
From: https://blog.csdn.net/Syize/article/details/139898426

相关文章

  • 全网最好看的单细胞umap图绘制教程
    作者按大家或许都曾被Nature,Science上的单细胞umap图吸引过,不免心生崇拜。在这里,我们将介绍一种简单方便的顶刊级umap图可视化全文字数|预计阅读时间:2000|5min——Starlitnightly(星夜)环境加载我们先导入一些必须的依赖包importomicverseasovimportscanpyassci......
  • 布尔约束传播蕴含图绘制-2024-6-21
      1.gml格式蕴含图格式的获取(1)在主函数main的代码中增加设置外部输出文件通道——打开、结束前、关闭三个函数的调用。参考所涉及的代码:1parseOptions(argc,argv,true);23SimpSolverS;4doubleinitial_time......
  • 【python数据可视化】利用Python爬取天气数据并实现数据可视化,绘制天气轮播图
    用Python爬虫抓取全年天气数据并绘制天气轮播图一、运行结果:二、代码展示:由csv文件生成↓接下来是绘制天气轮播图运行结果:完整代码请看这里↓......
  • WPF绘制3D小demo
    试过了WPF原生3D和HelixToolkit.Wpf,感觉还是SharpDX的效果比较好,所以使用了HelixToolkit.Wpf.SharpDX初学,仅供参考,没搞懂怎么双面渲染,所以每个面用了2个三角形分别显示正面和反面 <Grid><hx:Viewport3DXEnableSwapChainRendering="True"FXAALevel="Low"Backg......
  • bresenham_3d绘制3维直线,可设置直线粗细
    1importmatplotlib.pyplotasplt2frommpl_toolkits.mplot3dimportAxes3D3importnumpyasnp4importnibabelasnib56defbresenham_3d(p0,p1,thickness):7'''8Bresenham'sLineAlgorithmin3Dwithad......
  • 文章MSM_metagenomics(六):复杂热图绘制
    欢迎大家关注全网生信学习者系列:WX公zhong号:生信学习者Xiaohong书:生信学习者知hu:生信学习者CDSN:生信学习者2介绍本教程将使用基于R的函数在复杂热图上绘制物种的丰度或流行度。数据大家通过以下链接下载数据:百度网盘链接:https://pan.baidu.com/s/1f1SyyvRfpNVO3sLYEb......
  • OpenCV中绘制多边形的函数:fillPoly与polylines
    一、函数接口介绍1.1fillPoly函数这是个重载函数,有2个实现,具体如下:1、重载1voidfillPoly(Mat&img,constPoint**pts,constint*npts,intncontours,constScalar&color,intlineType......
  • 绘制MySQL数据库的实体关系图(ERD)与逻辑模型图
    绘制MySQL的实体关系图(ERD,Entity-RelationshipDiagram)和数据库模型图对于理解和设计数据库结构非常重要。这些图表有助于可视化数据库中的表、列、关系以及约束。以下是一些步骤和工具,你可以使用它们来创建这些图表。步骤确定实体:首先,确定你的数据库中的实体(或称为表......
  • RIdeogram绘制基因组染色体标记图
    Y叔团队参与开发的一个R包RIdeogram,可用来绘制基因组染色体的可视化图形,如基因密度、分子标记等。直接上代码。#install.packages("RIdeogram")library(RIdeogram)data(human_karyotype,package="RIdeogram")data(gene_density,package="RIdeogram")data(Random_RNAs_500,......
  • 工具 | R包mapmixture绘制群体结构与地图分布
    mapmixture简介群体结构(admixture)绘图,R包pophelper是神器(https://github.com/royfrancis/pophelper),立个flag,下次投稿。今天给大家介绍的是另一个R包mapmixture,同样可绘制群体结构图,并与地图分布相结合。小小R包竟然能够发到MER,也是很神奇。想想几年前小野为了画个漂亮的地图,费了......