visualize python_GitHub - laishenggx/PUP-visualize: Python3可视化雷达PUP数据产品(CINRAD-PUP)...
PUP-visualize
Python3可视化雷达PUP数据产品(CINRAD-PUP)
Coder: Lai Sheng @ College of Atmospheric Science, Chengdu University of Information Technology.
参考metpy.io.Level3File雷达PUP数据接口的官方样例,编写了这个脚本。
PyCINRAD中的cinrad.io.PUP坐标映射的BUG已经修复。
雷达数据存储方式
请看PUP雷达文件格式说明。
坐标变换
Metpy的官方样例中,将PUP产品文件雷达体扫的方位角az和极径rng读出后,把极坐标投影到了平面直角X-Y坐标系中:
# Convert az,range to x,y
xlocs = rng * np.sin(np.deg2rad(az[:, np.newaxis]))
ylocs = rng * np.cos(np.deg2rad(az[:, np.newaxis]))
xlocs和ylocs是某点到雷达的经向和纬向距离
这样根据雷达经纬度信息,还有经向和纬向距离,很容易就可以算图上每一点的距离经纬度:
sta_lon=f.lon #站点经纬度
sta_lat=f.lat
a=6.371e3
dy=2*a*np.pi/360.0
lon=np.zeros(xlocs.shape)
lat=np.zeros(xlocs.shape)
for i in range(xlocs.shape[0]):
for j in range(xlocs.shape[1]): #先算纬度,然后再确定经度
lat[i,j]=sta_lat+ylocs[i][j]/dy
dx=np.cos(np.deg2rad(lat[i][j]))*dy
lon[i,j]=sta_lon+xlocs[i][j]/dx
绘图
绘图使用的是basemap(1.2.0)和matplotlib(3.0.3),也可以改用cartopy
等距离圈
画等距离圈是直接根据雷达文件读取出的极径rng确定的
做法大致是用np.where确定相应等距离圈的下标位置,然后把rng==距离的所有点的坐标切片出来
最后用plot将点连成线形成等距离圈
for cir in [50,100,150,200,230]:#画等距离圈
cir_lon=lon[:,np.where(rng==cir)].flatten()
cir_lat = lat[:, np.where(rng == cir)].flatten()
cir_lon,cir_lat=m(cir_lon,cir_lat)
m.plot(cir_lon,cir_lat,'w',linewidth=0.8)
方位角线
画方位角线也是类似等距离圈的做法,但是画线只用了两个点
一个是雷达站点的经纬度(可以从文件中读取),另一个是径向上最远的一个点
for az_line in np.arange(30,360+30,30):
az_lon=[sta_lon,lon[np.where(np.ceil(az)==az_line),-1]]
az_lat=[sta_lat,lat[np.where(np.ceil(az)==az_line),-1]]
az_lon,az_lat=m(az_lon,az_lat)
m.plot(az_lon, az_lat, 'w', linewidth=0.8)
投影
投影选择等距方位投影(Azimuthal Equidistant Projection)
此时1个纬距和1个经距是相等的,否则等距离圈不是正圆形
(下图是等经度投影cyl,原因自己体会思考吧,发现蛮多人都没发现到这个问题,直接等经纬度投影上边画圆)
地图shp文件请移步气象家园搜索下载
日后更新计划
我个人不做中尺度方向(被老板狠心抛弃QAQ),这个程序是写给泽儿(我GF可爱多)的。
目前仅做了基本反射率,基本速度还有就是将数据输出成网格的,她有需要的时候我再弄吧~
visualize python_GitHub - laishenggx/PUP-visualize: Python3可视化雷达PUP数据产品(CINRAD-PUP)...相关推荐
- python使用matplotlib可视化雷达图(polar函数可视化雷达图、极坐标图、通过径向方向来显示数据之间的关系)
python使用matplotlib可视化雷达图(polar函数可视化雷达图.极坐标图.通过径向方向来显示数据之间的关系) 目录
- R语言使用fmsb包、gradar包可视化雷达图(radar chart、蜘蛛图spider plot)、ggpubr包可视化点图、GGally包可视化多变量的平行坐标轴图
R语言使用fmsb包.gradar包可视化雷达图(radar chart.蜘蛛图spider plot).ggpubr包可视化点图.GGally包可视化多变量的平行坐标轴图 目录
- R可视化雷达图(Radar Charts)
R可视化雷达图(Radar Charts) 目录 R可视化雷达图(Radar Charts) R中的基本雷达图 R自定义雷达图
- echart雷达图数据图形的填充颜色_数据可视化,职场数据分析都需要哪些常用的图表?...
数据可视化是为了使得数据更高效的反应数据情况,便于让读者更高效阅读,而不单是自己使用,通过数据可视化突出数据背后的规律,以此突出数据中的重要因素,并且,数据可视化可以将数据变得更加直观. 使用图表数据 ...
- python3可视化窗口操作_Python3.x+PyQtChart实现数据可视化界面(PyQtChart绘图;还有保存图片)和业务逻辑分离案例01_自己写的,有UI界面源代码...
[实例简介] Python3.x+PyQtChart实现数据可视化界面(PyQtChart绘图:还有保存图片)和业务逻辑分离案例01_自己写的,有UI界面源代码. [实例截图] [核心代码] wang ...
- 智能数据可视化-雷达图的使用方法
在进行数据报表综合评价分析时,往往涉及很多指标,需要将指标与参照值一一比较,往往会顾此失彼,难以得出一个综合的分析评价.这时便借助数据可视化图-雷达图. 雷达图是专门用来进行多指标体系比较分析的专业图 ...
- python3可视化-pyecharts图形库,大饼图Pie的创建和使用
在pyecharts中,使用Pie这个类来创建饼图.饼图也是我们经常用到的可视化图形. 我们常说,老板给员工画了大大的饼图,比如,当年的马云就给阿里巴巴的18罗汉画了个大饼,重要的是,这个大饼最终大家 ...
- 8 基于matplotlib的python数据可视化——导入Excel数据制作雷达图
雷达图可以同时比较和分析多个指标. 雷达图数据下载:https://download.csdn.net/download/weixin_44940488/19231413 代码实例展示 # 导入库 i ...
- matplotlib多个参数指标可视化----雷达图/蜘蛛网图
Python matplotlib绘制雷达图 本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指 ...
最新文章
- 0709 C语言常见误区----------函数指针问题
- Python通过一个网页地址获得网页标题Title
- vs中imshow函数报错_opencv编程:8 imshow不显示图像和waitkey函数
- 给你多少钱,你才会愿意为国家生孩子?
- 闻泰通讯手机软件测试笔试内容,中科方德软件测试面试笔试经验
- 桌面时间的最佳管理者-软媒时间
- 【算法竞赛学习笔记】弦图和区间图
- vue、四级联动(省市区街道)
- 王小川告别搜狗那一天
- 网上书城图书模块及首页分页
- 辅导班师资力量介绍!
- 计算机睡眠和休眠哪个更好,windows7睡眠与休眠的区别_win7电脑休眠和睡眠哪个好...
- PTX-PEG-TCO 紫杉醇-聚乙二醇-反式环辛烯
- 运算符与基本数据类型int和string的方法汇总(二)
- 日本电视台选择 Infortrend存储管理核心播放业务
- 游戏编程之常用设计模式
- 基于QT的串口调试助手
- 拦截图片代码 精易web浏览器_[原创]用Com HOOK实现拦截WebBrowser的alert函数调用
- 基于词向量与CNN-BIGRU的情感分析研究
- Hadoop数据库性能调优指南
热门文章
- mobaXterm连接虚拟机后不能拖拽上传文件
- 远程桌面是服务器 但是不能把文件复制到服务器中
- OneNote的安装教程 如何解决Win10登录微软账号报错问题
- Rust社区运营3周年总结
- pxe clonezilla
- 2019-2020春江云暖你先知,CAE/EDA/高校等CloudHPC领域年均复合增长率超21%
- 狠起来连自己都打,Adobe公司开发反PS软件,识别率达99%
- 通过CMD命令查询端口占用追查追踪EXE/进程/反电脑木马病毒的方法
- 新书推荐 |《HTML 5与CSS 3权威指南(第4版•上下册)》
- MounRiver Studio 快捷键