爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 69168|回复: 35

[源代码] 基于PyQt5、metpy和matplotlib的探空资料可视化界面

[复制链接]

新浪微博达人勋

发表于 2021-3-2 12:28:43 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 jl2587t 于 2021-3-2 12:31 编辑

基于PyQt5、metpy和matplotlib的探空资料可视化界面
一、概述
作者这次做的是一个界面,把探空资料可视化呈现给大家,先上一张图给各位看官过目一下
1.png
界面看着稍稍有点挤,那是因为作者的电脑实在是有点菜,大家到时候只需要把窗口尺寸改大一点就好了
几点说明:
1.因为作者手边刚好有一款探空雷达,所以数据更加丰富一点,大家手边可能只有MICAPS的探空数据,可能有些数据不能呈现,比如气球升速什么的,但咱们主要的目的是学习和改进,作者给了源代码,大家可以修改。
2.作者也就是个学雷达,外加会写几行代码的菜鸟,所以里面很多热力学的东西不懂,难免会有错误的计算,希望广大网友们及时告诉我,大家相互提高改进。
3.希望作者可以抛砖引玉,大家看完以后有什么更好的可视化呈现方式可以与作者沟通,或者哪些物理量需要呈现,比较作者懂得少。
4.整个界面有一些小BUG,作者第一版只是比较随意,感觉不影响使用,就没有做修改,望大家不要介意。
5.由于稍稍有一些代码量,而且不是一个py文件,这里主要以图的方式呈现。

二、库的准备
要跑起代码需要以下这几个库,大家需要提前装以下:PyQt5、metpy、matplotlib、numpy
如果还有因为其他库没跑起来的,就根据报错自行安装吧。
有报错的地方可以和作者沟通,警告提示就别了吧,嘿嘿


三、界面介绍
(一)埃玛图部分
3.png
这里就是传统埃玛图,不过就是加了一小部分信息,比如0度层的高度,也加了一些鼠标交互信息,当在绘图区按住鼠标右键时,会提示温度等基本信息,按住移动,会有跟随效果。

(二)风速层结和温度层结部分
5.png
这里是各高度层风速的显示,右侧是各高度层温度的递减情况,即上一层减去下一层的温度差,用来判断温度是递减的还是逆温。
绿色的湿区。

(三)气球轨迹部分
4.png
这部分没啥可说的,顾名思义,感觉有些问题,可能有不对的地方,但是作者想不出来,希望大佬提点


(四)假相当位温曲线和气球升速部分
6.png
也是顾名思义,加入了一些交互,鼠标移动会有跟随信息

(五)物理量参数部分
7.png
这里放了很多计算量,个人也是在这里耗费了很长的时间,感觉有的算的不对,有的没用,有用的又没放上来,希望大家提宝贵意见。参数超阈值的高亮还没做,后面再说,毕竟是小东西。
(六)各层24小时变温部分
8.png
这里显示每一层24小时的变温情况,用来显示冷暖平流,当鼠标左键点击时,出现提示信息。
四、代码介绍
代码分成两部分,一部分是界面部分,一部分是各类画图计算类
9.png
sounding_pane为界面,另一个是类
(一)sounding_pane.py
这个是界面,其实结构很简单,看下图
10.png
导入库,导入我自己写的类,然后一个主窗口类(包括构造函数和控件生成函数),然后就是主函数
构造函数里面有一个窗口尺寸的修改,这个大家可以改大一点,界面会好看很多,作者的电脑实在太烂了。
13.png
在控件生成函数里面有数据部分,是我自己直接填进去的,就是写死了,没有做文件读取之类的东西,因为这个是第一版,大家可以自己做修改
11.png
12.png
剩下的就是许多控件的布局什么的,是PYQT5的知识。

(二)My_Class.py
第一部分就是导入一堆库
第二部分就是各种类,作者做了简单的注释,说明了每一个类是干嘛的
14.png
内部注释没有怎么写,感觉好像会的人不写也能看懂,因为太简单了,相关知识不会的人,写了反而更混淆。所以,如果大家有看不懂的地方可以直接留言给我或者邮件给我,我一一解答。






五、小结
说实话,这个界面是山寨的国外的一个,因为我看不懂人家的,一气之下干脆自己写算了。因为是个野生的菜鸡,还懒,很多重复代码没做精简,给大家阅读造成了难度,请见谅。
最后,真心的希望大家在留言区踊跃的提出修改意见,比如更好的呈现方式,更有用的物理量,这也是我直接给出源代码的初衷,大家一起学习提高改进。



























sounding.rar

8.4 KB, 下载次数: 151, 下载积分: 金钱 -5

评分

参与人数 3金钱 +30 贡献 +3 收起 理由
木木羊 + 10
wet510 + 10 + 1 赞一个!
mofangbao + 10 + 2

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-3-2 13:40:49 | 显示全部楼层
不错  不错
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-2 12:32:57 | 显示全部楼层
终于有了一个初步的样子,不知道好看不
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-2 12:35:54 | 显示全部楼层
回应一下为啥没有按之前的风格给出代码解释,因为量有点大,三两句话说不清楚。这个主要涉及了几个知识点:PYQT5,matplotlib的使用和与界面的结合,metpy的使用,三块,每一块知识点东西都很多,但是作者认为,这些代码吃透了估计这三个也会皮毛了,本来写的也没特别高深
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-2 13:43:57 | 显示全部楼层
亲测出图,楼主V5!要是楼主把数据读取那块写的更通用些就更加完美了!
顺便问下运行时报了一个Cannot import USCOUNTIES and USSTATES without Cartopy installed.错误,但是代码找了下没有发现import Cartopy呀?这是楼主说的小BUG吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-2 14:20:56 | 显示全部楼层
楼主真厉害,先收藏了,以后有空学习
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-2 14:54:40 来自手机 | 显示全部楼层
oydl1985 发表于 2021-03-02 13:43
亲测出图,楼主V5!要是楼主把数据读取那块写的更通用些就更加完美了!
顺便问下运行时报了一个Cannot import USCOUNTIES and USSTATES without Cartopy installed.错误,但是代码找了下没有发现import Cartopy呀?这是楼主说的小BUG吗?

我也遇到过,我觉得应该是metpy库需要cartopy,但是并不是完全需要,只是画探空好像不需要,所以它弹出了一个警告
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-2 14:56:58 来自手机 | 显示全部楼层
oydl1985 发表于 2021-03-02 13:43
亲测出图,楼主V5!要是楼主把数据读取那块写的更通用些就更加完美了!
顺便问下运行时报了一个Cannot import USCOUNTIES and USSTATES without Cartopy installed.错误,但是代码找了下没有发现import Cartopy呀?这是楼主说的小BUG吗?

数据读取一开始写的时候是图方便,后来是想去适配自己手边的雷达资料,不方便公开,后来一想,干脆就让大家去改成自己想读的样子就好了。大神肯定该起来很简单,小白刚好用来练手。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-2 14:58:35 | 显示全部楼层
楼主是我们的榜样
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-2 23:10:28 | 显示全部楼层
hunter2019 发表于 2021-3-2 14:58
楼主是我们的榜样

一起学习一起进步
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表