首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PyCWR与PyCINRAD计算HCL产品的差异

PyCWR与PyCINRAD计算HCL产品的差异

作者头像
气象学家
发布2026-03-25 17:28:43
发布2026-03-25 17:28:43
790
举报
文章被收录于专栏:气象学家气象学家

水凝物粒子分类产品HCL产品的计算是雷达定量估测降水中一个重要的步骤。 在计算HCL产品时,PyCWR和PyCINRAD所采用的方法有所不同。 PyCWR进行水凝物分类时,依据的是双偏振雷达基数据和温度廓线,PyCINRAD只依据了双偏振雷达基数据。 以下是基于同样的双偏振雷达基数据文件应用两个工具库计算水凝物分类产品的效果对比。

1.PyCWR计算HCL产品

(1)导入所需的库和模块。

代码语言:javascript
复制
from pycwr.io import read_auto
from pycwr.retrieve.HID import fhc_HCL
import matplotlib.pyplot as plt
import numpy as np
from pycwr.draw.RadarPlot import plot_xy, add_rings
import pandas as pd

# 设置全局字体为SimHei,支持图像中使用中文标签
import matplotlib as mpl
mpl.rcParams['font.family'] = 'SimHei'
# 解决负号显示问题
mpl.rcParams['axes.unicode_minus'] = False

(2)设置所需的双偏振雷达基数据和温度廓线文件路径,并分别进行读取。

这里雷达基数据文件用的是PYCWR官方手册上给出的示例文件。

代码语言:javascript
复制
file = r"D/NUIST.20150627.002438.AR2.bz2" # 基数据
file_t = r"D:/20150627.csv" # 温度廓线
# 分别读取雷达基数据和温度廓线文件
NRadar = read_auto(file)
temp = pd.read_csv(file_t, index_col=0, header=None, names=['temp'])

(3)指定提取双偏振雷达基数据文件第3层(2.4°仰角)数据。在该层CC大于0.9的格点,提取对应的R、ZDR、KDP和CC的值。

代码语言:javascript
复制
num = 2
R = np.where(NRadar.fields[num].CC>0.9, NRadar.fields[num].dBZ, 
    np.nan)
KDP = np.where(NRadar.fields[num].CC>0.9, NRadar.fields[num].KDP,
    np.nan)
ZDR = np.where(NRadar.fields[num].CC>0.9, NRadar.fields[num].ZDR,
    np.nan)
CC = np.where(NRadar.fields[num].CC>0.9, NRadar.fields[num].CC, 
    np.nan)

(4)利用温度廓线数据,对第3层雷达仰角所在高度进行温度插值,得到该层各格点温度。

代码语言:javascript
复制
temp_2d = np.interp(NRadar.fields[num].z.values/1000., temp.index,
    temp['temp']) # 温度插值
R[:,0] = np.nan 

(5)利用相关基本数据产品和温度计算水凝物分类结果。

代码语言:javascript
复制
hcl = fhc_HCL(dBZ=R, KDP=KDP, ZDR=ZDR, CC = CC, T=temp_2d)

(6)设定表达水凝物分类结果的色标刻度和色标刻度标签,并对分类结果进行图像绘制。

代码语言:javascript
复制
ticks = np.arange(1, 11, 1)
ticklabels = ['Drizzle', 'Rain', 'Ice Crystals', 'Dry Snow', 
   'Wet Snow', 'Vertical Ice',  'LD Graupel', 'HD Graupel', 'Hail', 
   'Big Drops']
fig, ax = plt.subplots()
plot_xy(ax, NRadar.fields[num].x, NRadar.fields[num].y, hcl,
    cmap="CN_hcl", bounds=np.arange(0.5,10.6,1),
    cbar_ticks=ticks, cbar_ticklabels=ticklabels)
add_rings(ax=ax, rings=[0, 50, 100, 150]) # 增加等径向距离圈
ax.set_xlim([-150, 150])
ax.set_ylim([-150, 150])
ax.set_xlabel("东西向雷达径向距离/km", fontsize=12)
ax.set_ylabel("南北向雷达径向距离/km", fontsize=12)
ax.set_title("2.4度仰角水凝物粒子分类", fontsize=14)
plt.show()

2.PyCINRAD计算HCL产品

(1)导入所需的库和模块。

代码语言:javascript
复制
import cinrad
from cinrad.visualize import PPI
import matplotlib.colors as colors

(2)读取双偏振雷达基数据文件,提取第3层(2.4°仰角)的基本数据产品计算水凝物分类结果

代码语言:javascript
复制
file = r"D:/NUIST.20150627.002438.AR2.bz2"
f = cinrad.io.read_auto(file)
# 使用第3个仰角的基本数据产品
ref = f.get_data(2, 150, "REF")  
zdr = f.get_data(2, 150, "ZDR")
rho = f.get_data(2, 150, "RHO")
kdp = f.get_data(2, 150, "KDP")
# 下方“band”参数需要根据雷达电磁波波段,手动输入S/C/X
HCL = cinrad.calc.hydro_class(ref, zdr, rho, kdp, band="S") 

(3)根据自定义色标进行HCL产品图像绘制。

代码语言:javascript
复制
hid_colors = ['LightBlue', 'MediumBlue', 'DarkOrange', 'LightPink',
   'Cyan', 'DarkGray', 'Lime', 'Yellow', 'Red', 'Fuchsia']
hcl_cmap = colors.ListedColormap(hid_colors)
fig = PPI(HCL, add_city_names=True, dpi=600, 
    style="white",cmap=hcl_cmap, nlabel=10)
# 绘制150 km处等径向距离圈
fig.plot_range_rings(150, color='black', linewidth=1.0) 
#每隔50 km绘制一个等径向距离圈,直到绘制到150 km处停止
for i in [50,100,150]:
     fig.plot_range_rings(i, color='black', linewidth=1.0)
plt.show()

PyCWR计算出的HCL产品图像:

PyCINRAD计算出的HCL产品图像:

两个库的HCL产品计算原理有所不同,中国气象局ROSE软件生成的HCL产品与PyCWR计算的产品更接近,ROSE软件并没有硬性要求输入温度廓线,但是预先设置了不同月份的0℃等温线高度,应该是内置了温度廓线模型,来计算HCL产品。(属个人猜测)

PyCWR计算HCL的产品算法参考了Py-ART,但在输入端更适用于中国雷达基数据格式。

END

声明:欢迎转载、转发。气象学家公众号转载信息旨在传播交流,其内容由作者负责,不代表本号观点。文中部分图片来源于网络,如涉及内容、版权和其他问题,请联系小编处理。

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

本文分享自 气象学家 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.PyCWR计算HCL产品
    • (1)导入所需的库和模块。
  • (2)设置所需的双偏振雷达基数据和温度廓线文件路径,并分别进行读取。
    • (3)指定提取双偏振雷达基数据文件第3层(2.4°仰角)数据。在该层CC大于0.9的格点,提取对应的R、ZDR、KDP和CC的值。
    • (4)利用温度廓线数据,对第3层雷达仰角所在高度进行温度插值,得到该层各格点温度。
    • (5)利用相关基本数据产品和温度计算水凝物分类结果。
    • (6)设定表达水凝物分类结果的色标刻度和色标刻度标签,并对分类结果进行图像绘制。
  • 2.PyCINRAD计算HCL产品
    • (1)导入所需的库和模块。
    • (2)读取双偏振雷达基数据文件,提取第3层(2.4°仰角)的基本数据产品计算水凝物分类结果
    • (3)根据自定义色标进行HCL产品图像绘制。
  • PyCWR计算出的HCL产品图像:
  • PyCINRAD计算出的HCL产品图像:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档