在Meson中使用f2py编译Python扩展
最近想把自己修改过的一些 Fortran 代码放进自己的工具包 syize 中。因为一直用的是 meson 来打包 Python 包,所以研究了一下如何利用 meson 配合 f2py 来将 Fortran 代码编译成 Python 扩展。
欲望大过了能力,由此产生了焦虑
最近想把自己修改过的一些 Fortran 代码放进自己的工具包 syize 中。因为一直用的是 meson 来打包 Python 包,所以研究了一下如何利用 meson 配合 f2py 来将 Fortran 代码编译成 Python 扩展。
Keras 中的TensorBoard回调可以方便的用来记录模型训练过程中的各种参数变化,以在训练后对模型进行分析。在 Keras 的官方示例中,展示了如何将TensorBoard回调用在自定义的 Keras 模型中。但是在实际使用中,如果你像我一样继承了写 PyTorch 的习惯,将整个 Keras 模型模块化成多个子模型的话,就会发现TensorBoard回调在这个时候失效了。这个时候就需要对TensorBoard回调的功能做增强,让它支持 Keras 模型中的子模型。
Zotero用来管理文献,以及向word中插入引用和参考文献表很好用,唯一美中不足的地方就是插入的引用点击以后不能跳转到相应的参考文献位置。Zotero的论坛上有很多相关的提问,并且有很多人给出了他们的VBA代码,用来完成相关的功能。但是我用下来发现在我的硕士论文中效果都很差,可能是用的引用格式不同的原因。gwyn-hopkins给出的代码相对简单易懂一些,于是我干脆对照着写出了一个Python版本的实现,通过pywin32操作word,完成相同的功能。经过对其功能不停的迭代更新,我将其整理成了 noterools 包。如果你感兴趣的话,可以去我的仓库看看。
在我为组里写的海雾反演工具包中,有一个葵花卫星数据下载的函数。因为葵花卫星数据是通过FTP方式下载的,而Python的requests库又不支持FTP协议,所以只好借助了pycurl来下载数据。
最近葵花数据的下载异常的慢,而pycurl似乎没有多线程下载的功能(我在撰写这篇发现pycurl中有一个CurlMulti对象,似乎可以通过该对象实现在一个Python进程中同时下载多个数据片段),pycurl对多线程的支持也不好,无奈只能自己想办法实现多进程下载的功能了。
最近在重构组里的代码上遇到一件稍微棘手的事情。导师的旧代码是使用Fortran编写的,其对一些Python无法方便读取的二进制数据做了非常精细的操作,导致将代码完全Python化的难度直线上升。折衷的方案是通过使用numpy.f2py工具,将Fortran代码转换成Python扩展,这样就引入了新的问题,如何将扩展的编译融合进Python包的打包和安装过程中。
meson构建系统是我在几个月前无意中了解到的新工具,其包含了能够帮助编译和打包的Python模块,并且现有的一些项目都已完全将meson作为后端,例如scipy,numpy。因此我决定将这作为一个练手的机会,使用meson来帮助构建这个Python包。
最近想要将导师的WRF工具包里的一些功能使用Python重写,因为想要使用优雅的方式实现,所以不可避免的涉及到了GRIB文件的读写。花了两天时间摸清楚了如何将数据写入GRIB文件,期间还遇到一些比较奇怪的问题。
最近自己搞的海雾识别可视化界面已经基本完善可用了,唯一的不足就是没有弄国际化。因为网上有关 PyQt 国际化的示例实在是太不全了,方法五花八门,甚至连 Stack Overflow 上都没有很好的解决方法。经过自己的不断搜索,以及阅读 PyQt 上的手册,终于搞明白了 PyQt5 和 PyQt6 两个版本 PyQt 国际化的方法。
女朋友说想画一个非对称的Colormap的图出来(也即0还是对应于白色,但是两侧的数值范围是不一样的),于是就研究了一下,最后的效果如下
翻译自斯坦福大学网站上的一篇文章,A detailed example of how to use data generators with Keras。主要介绍了在面对大量数据时,如何通过编写数据生成器(DataGenerator)来实现动态加载数据的功能。
最近在研究如何从卫星数据中获取雾区数据的问题,有一个大难点就是双通道法反演时如何设置阈值的问题。最直接的方法就是先画一张不设置阈值的图,然后根据坐标打印一下数值,再设置一下阈值。但是这样来来回回要重复跑很多遍代码,为了简化工作量,便研究了一下如何通过鼠标点击图片即可打印出对应点的值。