Py学习  »  Python

气象编程 | Python绘制雷达PPI和RHI

气象学家 • 9 月前 • 211 次点击  

  第一时间获取气象科研资讯

气象学家公众号交流群

加入

Python & Radar

雷达PPI

(1) code

#雷达图 2019090205-2019090210 点的雷达基本反射率 PPI
# %%
import cinrad
from cinrad.io import CinradReader, StandardData
from cinrad.io import PhasedArrayData
from cinrad.visualize import Section
import matplotlib.pyplot as plt
%matplotlib inline
from cinrad.visualize import PPI
import matplotlib.ticker as mticker
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import os
from cinrad.io import PUP
# %%
path="D:\\biancheng_data\\tian-Z9200-20190902\\Z9200.20190902.080000.AR2\\Z9200.20190902.080000.AR2"#新版本数据
f = StandardData(path)  #新版本标准数据
#path="F:\\radar\\Z_RADR_I_Z9552_20190605000500_O_DOR_SA_CAP.bin\\Z_RADR_I_Z9552_20190605000500_O_DOR_SA_CAP.bin"3旧版本数据
#f=cinrad.io.CinradReader(path)#旧版本数据

# %%
f.available_product(0)
# %%
tilt_number = 2
radius = 150
data_dtype = 'REF' 
r = f.get_data(tilt_number, radius, data_dtype) #获取反射率数据
print(r)
rl = list(f.iter_tilt(radius, 'REF'))
# %%
fig = cinrad.visualize.PPI(r, dpi=75,add_city_names=bool) 

fig.plot_range_rings(radius, color='pink', linewidth=1.0)# 在PPI图上绘制圆圈
for i in range(0,radius,50):
        fig.plot_range_rings(i, color='pink', linewidth=1.0) 

ax1 = fig.geoax.gridlines(draw_labels=True,linewidth=2, color='k', alpha=0.5, linestyle='--')
ax1.top_labels = False       
ax1.right_labels = False    
ax1.xformatter = LONGITUDE_FORMATTER
ax1.yformatter = LATITUDE_FORMATTER
ax1.xlabel_style = {'size': 18, 'color''white'}
ax1.ylabel_style = {'size': 18, 'color''white'}

(2)result

雷达RHI

(1)code

#雷达剖面图
import cinrad
from cinrad.io import CinradReader, StandardData
from cinrad.io import PhasedArrayData
from cinrad.visualize import Section
import matplotlib.pyplot as plt
%matplotlib inline
from cinrad.visualize import PPI
import matplotlib.ticker as mticker
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import os
from cinrad.io import PUP
# %%
path="D:\\biancheng_data\\tian-Z9200-20190902\\Z9200.20190902.090000.AR2\\Z9200.20190902.090000.AR2"
f = StandardData(path)  #新版本标准数据
# %%
f.available_product(0) #查看包含的产品类型
# %%
tilt_number = 2 #代表第3个仰角
radius = 150 #绘制图像的范围大小,150km
data_dtype = 'REF' 
print(r)
#rl = list(f.iter_tilt(radius, 'REF'))
rl = [f.get_data(i, 150, 'REF'for i in f.angleindex_r]
vcs = cinrad.calc.VCS(rl)
sec = vcs.get_section(start_cart=(112.5, 22.5), end_cart=(113.5, 23.5)) #传入经纬度坐标
fig=Section(sec)

(2)result







声明:欢迎转载、转发本号原创内容,可留言区留言或者后台联系小编(微信:gavin7675)进行授权。气象学家公众号转载信息旨在传播交流,其内容由作者负责,不代表本号观点。文中部分图片来源于网络,如涉及作品内容、版权和其他问题,请后台联系小编处理。


往期推荐

 获取ERA5-Land陆面高分辨率再分析数据(32TB)

  1942-2022年中国地面气象站观测数据免费分享

 获取全球GPM降水数据,半小时/逐日(4TB)

 获取1998-2019 TRMM 3B42逐日降水数据

★ 获取最新版本CMIP6降尺度数据集30TB

★ 获取ERA5常用变量再分析数据26TB

 EC数据商店推出Python在线处理工具箱

★ EC打造实用气象Python工具Metview

★ 机器学习简介及在短临天气预警中的应用

★ Nature-地球系统科学领域的深度学习及理解

★ 采用神经网络与深度学习来预报降水、温度

★  灵魂拷问:ChatGPT对气象人的饭碗是福是祸?

★ 气象局是做啥的?气象局的薪水多少?

★ 一位气象学家尝试ChatGPT复现Nature子刊的研究,他真的会面临失业吗?!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/159173
 
211 次点击