PyQt中的国际化问题
最近自己搞的海雾识别可视化界面已经基本完善可用了,唯一的不足就是没有弄国际化。因为网上有关 PyQt 国际化的示例实在是太不全了,方法五花八门,甚至连 Stack Overflow 上都没有很好的解决方法。经过自己的不断搜索,以及阅读 PyQt 上的手册,终于搞明白了 PyQt5 和 PyQt6 两个版本 PyQt 国际化的方法。

欲望大过了能力,由此产生了焦虑
最近自己搞的海雾识别可视化界面已经基本完善可用了,唯一的不足就是没有弄国际化。因为网上有关 PyQt 国际化的示例实在是太不全了,方法五花八门,甚至连 Stack Overflow 上都没有很好的解决方法。经过自己的不断搜索,以及阅读 PyQt 上的手册,终于搞明白了 PyQt5 和 PyQt6 两个版本 PyQt 国际化的方法。
女朋友说想画一个非对称的Colormap的图出来(也即0还是对应于白色,但是两侧的数值范围是不一样的),于是就研究了一下,最后的效果如下
翻译自斯坦福大学网站上的一篇文章,A detailed example of how to use data generators with Keras。主要介绍了在面对大量数据时,如何通过编写数据生成器(DataGenerator)来实现动态加载数据的功能。
最近在研究如何从卫星数据中获取雾区数据的问题,有一个大难点就是双通道法反演时如何设置阈值的问题。最直接的方法就是先画一张不设置阈值的图,然后根据坐标打印一下数值,再设置一下阈值。但是这样来来回回要重复跑很多遍代码,为了简化工作量,便研究了一下如何通过鼠标点击图片即可打印出对应点的值。
今天下了ERA5的再分析数据准备做REOF,结果却发现报错说我的数据有缺测值。搜索了一番发现原来是ERA5的scale
和offset
导致的。
水博客+1
我画大饼说这个周末就要改完本科论文的,结果 pyart
的线性规划部分的函数越看越迷惑,写一篇帮自己梳理一下。
昨天开始改本科论文,发现了一个问题:如何给自己绘制的雷达 PPI 图添加上地图底图。
画地图底图的话肯定是用 Cartopy
或者是 cnmaps
来画,但是问题是雷达数据存放的形式是极坐标形式,而 Cartopy
或者 cnmaps
绘制地图使用的是经纬度坐标。将雷达数据由极坐标系转换为经纬度坐标系有一个小问题,就是数据量大。haversine
虽然可以根据两个地理位置的距离和角度计算经纬度,但是好像只能计算两个点之间的,一个一个点算的话太慢了。
后来我想到的解决办法是绘制两个图层,然后分别叠加到一起。matplotlib
的 Axes
类有一个 set_alpha
函数可以设置背景透明度,只需要让覆盖在上面的图层背景透明,显示出下面的图,就可以达到图层叠加的目的了。
昨天本来打算用 matplotlib
和 Cartopy
画几张海温图的,结果意外发现我的 Arch Linux
更新软件包以后,估计是 libc
版本太新导致 matplotlib
break 了,只要一调用 plt.show
或者是 plt.savefig
必崩,给我人整傻了,又是更换内核又是搞虚拟机,今天下午临时装了一个 Ubuntu 22.04
用着,白白折腾了一天的时间 🤡。
更新:我发现不是 matplotlib
break 了,是 Cartopy
和新版的 Shapely
不兼容导致的。执行以下命令从源码重新安装 Shapely
即可恢复正常。
1 | pip install "shapely<2" --no-binary shapely --force-reinstall |
我之前就用过 Cartopy
,但是并不是特别熟。今天画海温图的时候顺便探索了一下,发现了几件有趣的事情,所以分享一下。
最近做课程论文需要读取气象数据 (nc
格式),之前处理雷达数据时一直都是用 netCDF4
直接梭哈,但是处理全球大尺度的数据时,经常搞日平均月平均,单独取某些月做操作,这个时候 netCDF
就不够看了。正好学一学 xarray
,水几篇博客。
这是本系列第三篇文章,主要涉及如何将 matplotlib
与 PyQt
结合,PyQt
的信号以及 PyQt
中多线程、多进程的使用
上节中我演示了如何创建一个主界面和两个子界面并通过按钮和槽函数将三者联系到一起,以及如何为软件绑定快捷键,监听关闭事件 (closeEvent
)。现在我们想让用户打开子界面时主界面会隐藏起来,在关闭子界面后主界面再次弹出,防止多余的窗口造成不必要的麻烦。