基于PyQt5、metpy和matplotlib的探空资料可视化界面
基于PyQt5、metpy和matplotlib的探空资料可视化界面
一、概述
作者这次做的是一个界面,把探空资料可视化呈现给大家,先上一张图给各位看官过目一下
界面看着稍稍有点挤,那是因为作者的电脑实在是有点菜,大家到时候只需要把窗口尺寸改大一点就好了
几点说明:
1.因为作者手边刚好有一款探空雷达,所以数据更加丰富一点,大家手边可能只有MICAPS的探空数据,可能有些数据不能呈现,比如气球升速什么的,但咱们主要的目的是学习和改进,作者给了源代码,大家可以修改。
2.作者也就是个学雷达,外加会写几行代码的菜鸟,所以里面很多热力学的东西不懂,难免会有错误的计算,希望广大网友们及时告诉我,大家相互提高改进。
3.希望作者可以抛砖引玉,大家看完以后有什么更好的可视化呈现方式可以与作者沟通,或者哪些物理量需要呈现,比较作者懂得少。
4.整个界面有一些小BUG,作者第一版只是比较随意,感觉不影响使用,就没有做修改,望大家不要介意。
5.由于稍稍有一些代码量,而且不是一个py文件,这里主要以图的方式呈现。
二、库的准备
要跑起代码需要以下这几个库,大家需要提前装以下:PyQt5、metpy、matplotlib、numpy
如果还有因为其他库没跑起来的,就根据报错自行安装吧。
有报错的地方可以和作者沟通,警告提示就别了吧,嘿嘿
三、界面介绍
(一)埃玛图部分
这里就是传统埃玛图,不过就是加了一小部分信息,比如0度层的高度,也加了一些鼠标交互信息,当在绘图区按住鼠标右键时,会提示温度等基本信息,按住移动,会有跟随效果。
(二)风速层结和温度层结部分
这里是各高度层风速的显示,右侧是各高度层温度的递减情况,即上一层减去下一层的温度差,用来判断温度是递减的还是逆温。
绿色的湿区
(三)气球轨迹部分
这部分没啥可说的,顾名思义,感觉有些问题,可能有不对的地方,但是作者想不出来,希望大佬提点
(四)假相当位温曲线和气球升速部分
也是顾名思义,加入了一些交互,鼠标移动会有跟随信息
(五)物理量参数部分
这里放了很多计算量,个人也是在这里耗费了很长的时间,感觉有的算的不对,有的没用,有用的又没放上来,希望大家提宝贵意见。参数超阈值的高亮还没做,后面再说,毕竟是小东西
(六)各层24小时变温部分
这里显示每一层24小时的变温情况,用来显示冷暖平流,当鼠标左键点击时,出现提示信息。
四、代码介绍
代码分成两部分,一部分是界面部分,一部分是各类画图计算类
sounding_pane为界面,另一个是类
(一)sounding_pane.py
这个是界面,其实结构很简单,看下图
导入库,导入我自己写的类,然后一个主窗口类(包括构造函数和控件生成函数),然后就是主函数
构造函数里面有一个窗口尺寸的修改,这个大家可以改大一点,界面会好看很多,作者的电脑实在太烂了
在控件生成函数里面有数据部分,是我自己直接填进去的,就是写死了,没有做文件读取之类的东西,因为这个是第一版,大家可以自己做修改
剩下的就是许多控件的布局什么的,是PYQT5的知识
(二)My_Class.py
第一部分就是导入一堆库
第二部分就是各种类,作者做了简单的注释,说明了每一个类是干嘛的
内部注释没有怎么写,感觉好像会的人不写也能看懂,因为太简单了,相关知识不会的人,写了反而更混淆。所以,如果大家有看不懂的地方可以直接留言给我或者邮件给我,我一一解答。
小结
说实话,这个界面是山寨的国外的一个,因为我看不懂人家的,一气之下干脆自己写算了。因为是个野生的菜鸡,还懒,很多重复代码没做精简,给大家阅读造成了难度,请见谅。
最后,真心的希望大家在留言区踊跃的提出修改意见,比如更好的呈现方式,更有用的物理量,这也是我直接给出源代码的初衷,大家一起学习提高改进。
需要代码的可以留下邮箱,作者发给你
基于PyQt5、metpy和matplotlib的探空资料可视化界面相关推荐
- 记录一次基于PyQt5的标准铂电阻温度计分度表制作界面设计
记录一次基于PyQt5的标准铂电阻温度计分度表制作界面设计 - 一些想说的话 这是我的第一篇CSDN文章,之前都是在这上面参考别人的东西,感觉这里有点鱼龙混杂的意思...反正估计我写的东西也没人看,所 ...
- 基于pyqt5 构建弹窗进度条,在大型计算中实时显示进度
在大型计算时(例如神经网络训练),经常会遇到计算时间过长,无法知道当前的计算进度,无法判断程序是否进入死循环等问题.采用进度条可以在一定程度上了解当前进度,判断后续所需的计算时间,缓解等待过程中的焦虑 ...
- 基于pyQt5的pdf阅读器
主要基于import fitz模块 一定是操作pip install PyMuPDF不是安装fitz 主要代码: def generatePDFView(self):self.doc = fitz.o ...
- 《OpenCv视觉之眼》Python图像处理二十三:OpenCV图像处理最终章之基于PyQt5的图像处理界面设计及功能实现
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- 基于PyQt5的快速开发框架QFramer
2019独角兽企业重金招聘Python工程师标准>>> QFramer 是基于PyQt5的一款快速开发框架 ####1. 基于Qt/ PyQt /PySide开发GUI常用的开发方式 ...
- android中私有方法 继承,Android项目实战系列—基于博学谷(五)个人资料
由于这个模块内容较多,篇幅较长,请耐心阅读. 个人资料模块分为两个部分 [x] [个人资料]() [x] [资料修改]() 一.个人资料 1.个人资料界面 (1).创建个人资料界面 在com.buxu ...
- 【软件开发】基于PyQt5开发的标注软件
这里是基于PyQt5写的面向目标检测的各类标注PC端软件系统.目前现有的labelme软件和labelImg开源软件无法满足特殊数据集的标注要求,而且没有标注顺序的报错提示.当然我设计的软件就会不具有 ...
- 基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1)
基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1) 这个是登录界面: 部分代码如下: // An highlighted block from 文件1 import * from PyQt ...
- 基于pyqt5的翻译软件源代码,支持图片、截屏翻译,支持音标发音,翻译结果播报
基于pyqt5的翻译软件源代码,支持图片.截屏翻译,支持音标发音,翻译结果播报,支持百度.有道翻译,已实现划词翻译,一键复制翻译结果.先安装程序依赖requirements.txt,然后运行main. ...
最新文章
- python for net_转:.NET 4.0 下使用 Python for .NET
- 通过init-connect + binlog 实现MySQL审计功能
- Mr.J--谈谈CSS和Html(font)
- {转}Java 字符串分割三种方法
- docker-compose部署Minio
- Asp.Net Ajax 之 取消异步PostBack( 一 )
- 《数据结构与算法 C语言版》—— 2.2线性表的顺序表示与实现
- 《Java就业培训教程》_张孝祥_书内源码_08
- VBA代码行号显示 VBA代码助手独家功能
- 机械键盘cherry常见轴科普 --By Cheng
- 服务器支持win10,服务器版Windows 10太强大了:容器最亮
- Android如何做出带有复杂水印的图片
- Hystrix之四种触发fallback情况的验证
- 1.2、通过WiFi模块连接手机控制小灯的亮灭(AT指令)
- ibatis源码学习(一)整体设计和核心流程
- access转换MySQL教程_如何把access转换到mysql
- sqlserver查询锁住sql以及解锁
- Window如何开启telnet服务?
- LARAVEL 消息模板推送
- 彗星分类(轨道、来源)