天气雷达PPI图绘制之python中cinrad库离线安装应用
前言
需要绘制PPI图来做分析,之前的绘图方式不再支持,故此篇文章记录应用python强大的cinrad第三方库绘制PPI图之cinrad的安装和简单应用,后续相关等学到新知识再更新。
一、cinrad库安装
cinrad库需要在python3.9及以上版本中,这里我直接安装对应版本的anaconda,在清华镜像库下载以下版本:
这里主要是参考这位博主的推荐。
下载安装完anaconda后,下面就是cinrad库的安装了,该库及其依赖库的安装都在官网搜索和下载。
1.1 cartopy安装
安装cartopy库需在官网依次下载安装以下库:
pillow-11.0.0-cp39-cp39-win_amd64.whl
pyproj-3.6.0-cp39-cp39-win_amd64.whl
pyshp-2.3.1-py2.py3-none-any.whl
shapely-2.0.6-cp39-cp39-win_amd64.whl
Cartopy-0.22.0-cp39-cp39-win_amd64.whl
在anaconda prompt中使用以下命令安装:
pip install xxxx.whl
1.2 cinrad安装
直接安装下载的以下cinrad库会出现一些没有依赖库的错误,
cinrad-1.9.1-cp39-cp39-win_amd64.whl
在安装过程中依次出现了以下未安装的依赖库:
- cinrad-data(该库为源码安装,即使用 python setup.py install 安装,安装完成后,需要将该文件夹下编译的cinrad-data和.egg-info文件夹复制到anaconda安装目录的lib目录下的site-packages下)
- vanadis-0.0.2-py3-none-any.whl
- MetPy-1.6.3-py3-none-any.whl
- xarray-2022.12.0-py3-none-any.whl
- pooch-1.7.0-py3-none-any.whl
- cinrad-1.9.1-cp39-cp39-win_amd64.whl
通过安装以上库,显示cinrad库已安装成功。
注意,在下载库文件的时候最好不要选择最新的,选择与anaconda版本大概一个时期的大概率不会出错,比如我在下载xarray时直接下载最新版本会提示我pandas及numpy都需要更新版本,我这里全是离线安装。
以上即为cinrad库的安装全过程。
二、cinrad的应用
使用以下代码可进行简单的数据读取和绘图,主要参考这篇和这篇
代码如下:
import warnings
import cinrad
import cartopy
from cinrad.visualize import PPI
import numpy as np
import matplotlib.pyplot as plt
import datetime
warnings.filterwarnings("ignore")
file_name="D:/data/cinrad/bz2/Z_RADR_I_Z9999_20230505041500_O_DOR_SAD_CAP_FMT.bin.bz2"
#f= cinrad.io.read_auto(nFiles) # 我这里使用read_auto没有点出get_data函数,因此改成标准读法了,具体需要看数据格式
f = cinrad.io.StandardData(file_name)
data = f.get_data(0,230,"REF") # 0表示第几个(层)数据,230是最大探测距离(km),‘REF’是读取的数据类型,这里是"REF"是表示反射率
f.available_product(0) #第0个仰角有哪些产品可以读取
# ['TREF', 'REF', 'SQI', 'ZDR', 'RHO', 'PHI', 'KDP', 'SNRH']
f.available_tilt('REF') #REF产品有哪些仰角可以读取
f.el # 雷达的仰角
f.scantime = f.scantime + datetime.timedelta(hours=8) # 修改为北京时间
# 绘制PPI图
fig = PPI(data, style='black', ass_city_names=True, dpi=300)
fig(r'D:/pic/ref.png') # 保存图像
除了以上简单的打印绘制数据外,该库还有一些二次产品的库的调用计算相应产品,比如水凝物相态识别产品。
ref = f.get_data(0, 230, "REF") # 这里全部使用的是第一个仰角的
zdr = f.get_data(0, 230, "ZDR")
rho = f.get_data(0, 230, "RHO")
kdp = f.get_data(0, 230, "KDP")
cHCL = cinrad.calc.hydro_class(ref, zdr, rho, kdp, band="S") # band手动输入S/C/X
cHCL
fig = cinrad.visualize.PPI(cHCL, add_city_names=True, dpi=300, style="black")
未完待续。。。
参考资料
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
- https://www.cnblogs.com/chentiao/p/17871387.html
- https://pypi.org/
- https://blog.csdn.net/withowl/article/details/138925132
- https://blog.csdn.net/m0_58477260/article/details/137539001
- https://www.cnblogs.com/shirleysu90/p/18358543
- https://www.heywhale.com/mw/project/664c42ab99facc4f887f0b7a
- https://github.com/CyanideCN/PyCINRAD.git
- https://gitcode.com/gh_mirrors/py/PyCINRAD/overview?utm_source=artical_gitcode&index=top&type=href&
原文地址:https://blog.csdn.net/weixin_40356612/article/details/143571055
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!