Side Projects
Science-related > HAL - the atom locator ยท getpaper - the ref finder ยท paperwatch - the morning report
Here you'll find some of the side projects I've been working on. They can be found, together with other projects and contributions, on my Github page.
HAL ๐ด the atom locator
HAL is a Python app that I have developped at the end of my postdoc at IOGS (Palaiseau, France). Its is meant to be used as a tool to easily browse, fit and interpret data generated by cold-atom experiments โ mosly 2D images of atomic density. The fit results and images metadata can then be consolidated in relevant collections to be further analyzed โ for instance, one can fit the center of a falling cloud for each image, and then display its evolution versus the falling time. HAL includes some core routines to load and fit 1D and 2D data, explore and filter images stored in a well-structured folder tree, and display data.
I tried to design the app in the most modular way, so that users can easily adapt it to their image format, create new fits, new sources of metadata, and custom data vizualisation. The core of the app is coded in Python, and the GUI is based on PyQT. The image display is using PyQTGrah (rather than matplotlib) to achieve a fast display of images.
I am not maintaining this app anymore, but it is still beeing used in my former lab.
- stack: ๐ Python, Qt, PyQTGraph
- repository: https://github.com/adareau/HAL
- status: not maintained
~$ getpaper ๐ the scientific reference finder
getpaper is a small command-line tool writen in python to get scientific papers from their references. It uses the journals' search engine, automatically send to them a well formatted request, and scraps the answer (using BeautifulSoup) to get the paper url. If a paper is found, it opens its url on a new tab in the web browser. If there is an error, it opens the paper search page.
In order to keep it simple, I wrote it as a single-file python program. Since the scrapping strategy is different for each journal, there is a dedicated method per journal. Here are examples of how to use this tool:
# general synthax :
$ getpaper PRA 46 2668
$ getpaper Nature 519 211
$ getpaper arxiv 1706 07781
# get paper using DOI :
$ getpaper doi 10.1103/physrevx.8.031054
- stack: ๐ Python
- repository: https://github.com/adareau/getpaper
- status: maintained for my personal use
~$ paperwatch โ the morning report
paperwatch is a web-scrapping program that reads rss fluxes from relevant scientific journals, looking for keywords or specific authors. It generates a report (in html), highlighting interesting papers in a compact, easy to browse format. It has been running since 2017 on my personnal server, generating a report each morning. This allows me to do my scientific and technical watch, and ensure that I do not miss a paper, even when I am off โ the reports are still generated, waiting for me to return!
Here is an illustration of the generated reports:
- stack: ๐ Python, hosted on private server (crontab, apache web server)
- repository: https://github.com/adareau/paperwatch
- status: maintained for my personal use