标签归档:Python

平面数据点提取脚本

在工作中有时会遇到一些需要从图像中提取数据点的情况。例如文献中展示了图像,却没有给出相应的数据。如果只是定性的比较,不一定需要联系作者索要数据。可以简单地通过一些软件来得到近似的数据。比如老牌的Origin,轻量级的 GetData Graph Digitizer,或者免费的 Graphixy 不过这三个都是Windows下的软件,在Linux/UNIX 和 Mac 下,可以考虑 WebPlotDigitizer ,或者直接使用它的在线版

我是觉得这个功能不难,就用Python 写了一个脚本,使用pynput模块获取鼠标的屏幕位置,总共也就50行左右的代码。原理是用鼠标的屏幕坐标进行归算,所以图片越大,屏幕分辨率越高,获得的数据精度就会越好。做粗略的比较展示足够了,但要发表还是应该老老实实找原作者请求数据。

继续阅读

Linux下的索尼DPT-RP1电纸书管理

作为一个重度电子阅读者,索尼2017年推出的DPT-RP1是我最喜欢的一款电纸书产品。 它13.3寸的屏幕可以直接阅读A4幅面的论文,手写笔配合原生系统可以方便的进行PDF批注,作笔记和修改文章都很方便。最重要的一点是它加上笔只有360克, 相当于约80张A4打印纸的重量。加上背部收边设计,单手持握毫无困难,手感相当出色。

相比之下,13.3寸的文石Boox Max Lumi 2有570克,10.3寸的科大讯飞 X2 是380克,10.3寸的remarkable RM2 有403克,而10.9寸的ipad air 5则是462克。在实际使用时,设备重量直接决定持握时间。可以说,在大屏阅读这个需求点上,RP1仍是目前技术的天花板。

RP1 的缺点也有不少:如分辨率不高(200dpi),内存偏小(16G,其中11G可用),不支持TF卡,只支持PDF文件显示,没有背光等等。不过其中最影响我使用体验的是它封闭的原生系统。文件导入导出都需要借助官方软件 Digital paper 。而且官方只提供这个软件的Windows和Mac版本,不支持Linux。虽然可以借助dpt-tools 破解原装系统(中文指南),安装安卓软件,但是那些为触屏设计的软件并不支持手写笔操作。一个用电子纸作为显示屏的安卓平板并不好用。我本来想在电子纸上安装坚果云等云盘工具,将要阅读的文献和书籍自动同步,实现电子纸和工作电脑的文章批注共享。然而,破解系统下无法用索尼自带的PDF浏览器打开坚果云目录下的PDF文件,也就不支持触控笔操作,所以还是要想其他的办法。
继续阅读

自动化机器翻译小试

今年过年的时候,网站服务器意外升级了。新版的PHP不再支持我过时(4.x)的WordPress(WP)系统。以前部署的html服务也大多无法使用。只好借此机会对网站做全面升级。WP系统更新相对容易。不过以前的主题和插件大都不兼容新版系统,不得不寻找新的替代品。折腾了几天之后,网站总算能用了。只有相册系统没找到特别合适的方案。WP的相册插件有很多,可是免费的效果不好,收费的插件又过于复杂。我之前用的NextGEN 图库,体验并不算好,想借着这次升级弄得顺眼些。

Internet Archive中收录的相册页面存档


于是去找开源的解决方案,发现zenphoto看起来简洁清爽,似乎很合适。就在Linux下用XAMPP部署测试了一下(虽然也有docker镜像,但总觉得调试起来比较麻烦),功能设计都很顺手,只是最新版没有中文翻译。我看了一眼zenphoto的本地化文件,发现有个3年前的香港译本,觉得更新一下也花不了多少时间。后来我才意识到自己虽然已经不年轻了,可还是会把问题想得太简单……

继续阅读

线型拟合的置信带绘制

在数据分析过程中,我们经常会遇到线型拟合问题。标准的做法是用最小二乘法(least-squares method)来计算相关系数,用协方差矩阵(covariance matrix)估计误差。不过这是在假定所有数据点都是绝对精确的情况下才成立。而在实际工作中,测量值不可避免地带有误差,忽略这些误差显然会低估相关系数的误差。那么该如何合理考虑数据点的误差,并绘制相应的置信带(confidence band,表示拟合函数的可能出现范围)呢?这里我们借助Python中的相关函数来看一下。

继续阅读

rime拆字词库

中州韵Rime是佛振开发的一款跨平台的开源输入法。支持拼音,双拼,五笔,仓颉等多种输入方案的简繁输入。我在Linux下使用多年,稳定朴素,体验很好。在MintLinux(Ubuntu)命令行下直接用apt安装fcitx-rime包即可。和大多数Linux下的开源软件一样,rime没有完整的图形化配置界面。它的各项配置由 .config/fcitx/rime 目录下的一系列文件控制。 明月拼音·简化字 方案的用户自定义配置文件为luna_pinyin_simp.custom.yaml ,可定义扩充词库、加载自定义符号库、模糊拼音等。具体的初始设置过程可以参考这篇文章
rime2
我因为经常有字不知道拼音无法输出,偶尔会想念其他平台软件提供的拆字输入法。于是干脆为Rime做了一个拆字词库。基本思路是将汉字拆开成不同部分,然后将各个部分转化为拼音即可。借助现成的汉语拆字字典(包含17803汉字,共27603种拆法)和汉字拼音转换工具(Python 版),很容易完成。具体代码如下:
继续阅读