基于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的探空资料可视化界面相关推荐

  1. 记录一次基于PyQt5的标准铂电阻温度计分度表制作界面设计

    记录一次基于PyQt5的标准铂电阻温度计分度表制作界面设计 - 一些想说的话 这是我的第一篇CSDN文章,之前都是在这上面参考别人的东西,感觉这里有点鱼龙混杂的意思...反正估计我写的东西也没人看,所 ...

  2. 基于pyqt5 构建弹窗进度条,在大型计算中实时显示进度

    在大型计算时(例如神经网络训练),经常会遇到计算时间过长,无法知道当前的计算进度,无法判断程序是否进入死循环等问题.采用进度条可以在一定程度上了解当前进度,判断后续所需的计算时间,缓解等待过程中的焦虑 ...

  3. 基于pyQt5的pdf阅读器

    主要基于import fitz模块 一定是操作pip install PyMuPDF不是安装fitz 主要代码: def generatePDFView(self):self.doc = fitz.o ...

  4. 《OpenCv视觉之眼》Python图像处理二十三:OpenCV图像处理最终章之基于PyQt5的图像处理界面设计及功能实现

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  5. 基于PyQt5的快速开发框架QFramer

    2019独角兽企业重金招聘Python工程师标准>>> QFramer 是基于PyQt5的一款快速开发框架 ####1. 基于Qt/ PyQt /PySide开发GUI常用的开发方式 ...

  6. android中私有方法 继承,Android项目实战系列—基于博学谷(五)个人资料

    由于这个模块内容较多,篇幅较长,请耐心阅读. 个人资料模块分为两个部分 [x] [个人资料]() [x] [资料修改]() 一.个人资料 1.个人资料界面 (1).创建个人资料界面 在com.buxu ...

  7. 【软件开发】基于PyQt5开发的标注软件

    这里是基于PyQt5写的面向目标检测的各类标注PC端软件系统.目前现有的labelme软件和labelImg开源软件无法满足特殊数据集的标注要求,而且没有标注顺序的报错提示.当然我设计的软件就会不具有 ...

  8. 基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1)

    基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1) 这个是登录界面: 部分代码如下: // An highlighted block from 文件1 import * from PyQt ...

  9. 基于pyqt5的翻译软件源代码,支持图片、截屏翻译,支持音标发音,翻译结果播报

    基于pyqt5的翻译软件源代码,支持图片.截屏翻译,支持音标发音,翻译结果播报,支持百度.有道翻译,已实现划词翻译,一键复制翻译结果.先安装程序依赖requirements.txt,然后运行main. ...

最新文章

  1. python for net_转:.NET 4.0 下使用 Python for .NET
  2. 通过init-connect + binlog 实现MySQL审计功能
  3. Mr.J--谈谈CSS和Html(font)
  4. {转}Java 字符串分割三种方法
  5. docker-compose部署Minio
  6. Asp.Net Ajax 之 取消异步PostBack( 一 )
  7. 《数据结构与算法 C语言版》—— 2.2线性表的顺序表示与实现
  8. 《Java就业培训教程》_张孝祥_书内源码_08
  9. VBA代码行号显示 VBA代码助手独家功能
  10. 机械键盘cherry常见轴科普 --By Cheng
  11. 服务器支持win10,服务器版Windows 10太强大了:容器最亮
  12. Android如何做出带有复杂水印的图片
  13. Hystrix之四种触发fallback情况的验证
  14. 1.2、通过WiFi模块连接手机控制小灯的亮灭(AT指令)
  15. ibatis源码学习(一)整体设计和核心流程
  16. access转换MySQL教程_如何把access转换到mysql
  17. sqlserver查询锁住sql以及解锁
  18. Window如何开启telnet服务?
  19. LARAVEL 消息模板推送
  20. 彗星分类(轨道、来源)

热门文章

  1. 我的一年AI算法工程师成长记
  2. a href链接弹出新窗口的方法
  3. Minecraft神奇玩家不用键盘,行走全部靠骑猪最后通关MC
  4. ROCm平台简介及使用汇总
  5. 个性化学习推荐系统的设计与实现
  6. linux多网卡配置ip地址(linux一个网卡配置多个ip)
  7. sas 读取mysql数据类型_SAS | 格式规范数据读取
  8. 已达到计算机的连接数最大值,无法再同次计算机连接
  9. MATLAB中的常用命令
  10. java版我的世界MITE怎么下_我的世界mite作弊图文教程