前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >看好了,雷达产品廓线可以这样画

看好了,雷达产品廓线可以这样画

作者头像
用户11172986
发布2024-06-20 19:14:53
750
发布2024-06-20 19:14:53
举报
文章被收录于专栏:气python风雨气python风雨

前言

雷达在气象探测的重要地位不必多言。

昨天有朋友留言问雷达产品的廓线怎么绘制,我碰巧知道一种方法。

本项目旨在探索基于pyart库用于绘制雷达反射率廓线。

我们将介绍实现雷达产品廓线步骤和代码示例

点击以下链接可在线运行Fork查看完整程序 🔜🔜若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可

基于pyart的雷达产品廓线的绘制方法

导入库与转格式

In [1]:

代码语言:javascript
复制
代码语言:javascript
复制
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from pycwr.io import read_auto
import pyart
import cmaps
import logging
logging.getLogger('matplotlib.font_manager').setLevel(level=logging.CRITICAL)
PRD = read_auto('/home/mw/input/pycwr5461/Z_RADR_I_Z9898_20190828181529_O_DOR_SAD_CAP_FMT (1).bin.bz2')
radar = PRD.ToPyartRadar()
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
## You are using the Python ARM Radar Toolkit (Py-ART), an open source
## library for working with weather radar data. Py-ART is partly
## supported by the U.S. Department of Energy as part of the Atmospheric
## Radiation Measurement (ARM) Climate Research Facility, an Office of
## Science user facility.
##
## If you use this software to prepare a publication, please cite:
##
##     JJ Helmus and SM Collis, JORS 2016, doi: 10.5334/jors.119

In [2]:

代码语言:javascript
复制
代码语言:javascript
复制
grid = pyart.map.grid_from_radars(
    (radar,),
   grid_shape=(20, 200, 200),   # 想计算速度快点可以减少格点数
    grid_limits=( (  0.0,  20000,),(-330000.0, 330000.0),(-330000, 330000.0)), #设置了网格的范围
    fields=["reflectivity"],    # 变量)
代码语言:javascript
复制

In [3]:

代码语言:javascript
复制
代码语言:javascript
复制
cmap1=cmaps.radarfig = plt.figure(figsize=(18, 6))ax1 = plt.subplot(111, projection=ccrs.PlateCarree())display = pyart.graph.GridMapDisplay(grid)display.plot_grid(
    "reflectivity",
    ax=ax1,
    cmap=cmap1,
    vmin=0,
    vmax=70,)
代码语言:javascript
复制

有了经纬度就可以取点

根据经纬度取廓线

函数一:pyart.util.columnsect.get_field_location

In [4]:

代码语言:javascript
复制
代码语言:javascript
复制
ds = pyart.util.columnsect.get_field_location(radar, 17.8,110.4)
ds
代码语言:javascript
复制

In [5]:

代码语言:javascript
复制
代码语言:javascript
复制
ds.reflectivity.plot(y="height")
代码语言:javascript
复制
代码语言:javascript
复制
[<matplotlib.lines.Line2D at 0x7f4cd73e96a0>]

In [6]:

代码语言:javascript
复制
代码语言:javascript
复制
ds.differential_reflectivity.plot(y="height")
代码语言:javascript
复制
代码语言:javascript
复制
[<matplotlib.lines.Line2D at 0x7f4cd731e760>]
函数二:pyart.util.column_vertical_profile

In [7]:

代码语言:javascript
复制
代码语言:javascript
复制
prof=pyart.util.column_vertical_profile(radar, 17.8,110.4)
prof
代码语言:javascript
复制

反射率廓线

In [8]:

代码语言:javascript
复制
代码语言:javascript
复制
prof.reflectivity.plot(y="height")
代码语言:javascript
复制
代码语言:javascript
复制
[<matplotlib.lines.Line2D at 0x7f4cd72e7a30>]

差分反射率廓线

In [9]:

代码语言:javascript
复制
代码语言:javascript
复制
prof.differential_reflectivity.plot(y="height")
代码语言:javascript
复制
代码语言:javascript
复制
[<matplotlib.lines.Line2D at 0x7f4cb1649670>]

反射率剖面

小结

虽然理论上用pycinrad或者pycwr读取然后进行插值应该也做得到类似的效果,毕竟读取出来的数据是xarray, 人家pyart有直接的函数就直接用吧,不必绕远路了 两个函数的准确率上,我是偏向后者的,因为官网上的user guide保留了后者的函数说明 专业的博主要勇于下判断 当然实际效果如何还需各位自己检验

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气python风雨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数一:pyart.util.columnsect.get_field_location
  • 函数二:pyart.util.column_vertical_profile
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档