Gammapy
I am lead developer of a project called Gammapy. Gammapy is an open source Python package for gamma-ray astronomy. It supports the analysis of data from Imaging Atmospheric Cherenkov Telescopes, such as CTA, H.E.S.S. MAGIC and VERITAS, but also from all-sky instruments such as Fermi-LAT and HAWC. It also allows users to combine data from all those instruments to improve their scientific results.
The project was started by my PhD supervisor Christoph Deil almost a decade ago. Since then Gammapy has accumulated >100 users in the gamma-ray astronomy community and is expected to grow further. In 2020 the project has been selected as the base library for the official Science Tools of the Cherenkov Telescope Array. In February 2022 the software was awarded the Jury Prize of the Open Science Awards at the Open Science European Conference in Paris. In November 2022 we released the first long term support (LTS) version v1.0.
Links: Webpage | Docs | GitHub | Paper | ICRC 2021 Virtual Poster (best poster award) | Scipy 2023 Talk
Jolideco
Jolideco is a Python package for joint deconvolution of astronomical images in the presence of Poisson noise. It allows to reconstruct a single image from multiple observations of different instruments with different point spread functions and exposure times. For the reconstruction it uses a maximum a posteriori (MAP) estimate of the joint Poisson likelihood of all observations under a patch based image prior. The image prior is learned from astronomical images at other wavelengths, such as images from the James Webb Space Telescope (JWST) or GLEAM radio survey. The package is implemented based on Pytorch and features a clean and extensible API. It is the first package to offer a joint deconvolution and reconstruction of images for the x-ray and gamma-ray domain.
Links: Docs | GitHub | Paper Arxiv | AstroAI Talk 2024
GMMX
GMMX is a minimal implementation of Gaussian Mixture Models (GMM) in Jax. It features a simple, clean API with different abstractions for models and fitters. It currently supports fitting with the Expectation-Maximization (EM) algorithm. Thanks to Jax it achieves an excellent performance: up to 5-6x better than Scikit-Learn for prediction and training on the CPU. It also supports GPU acceleration and can thus be used for training on large datasets. The package is designed to be easily extensible and can be used as a drop-in replacement for Scikit-Learn's GMM implementation.
Pylira
Pylira is a Python package for deconvolution of astronomical images in the presence of Poisson noise. It is based on a Bayesian statistical approach and allows to sample images from the posterior distribution under a hierarchical multiscale prior. The sampling approach allows astronomers to measure uncertainties of the reconstructed image along with the posterior mean. The package itself is mostly a Python wrapper around an existing R implementation based on pybind11. On top it offers convenience functionality to serialise and visualise the results and check for their validity.
Links: Docs | GitHub | Proceeding | Scipy 2022 Talk
Snakemake Workflows
I developed and maintain Snakemake workflows for convenient and reproducible data analysis of X-ray and gamma-ray data. Snakemake is a workflow management tool used in Bioinformatics that allows user to define, execute and share complex scalable analysis workflows.
Links: Snakemake workflow for Fermi-LAT | Snakemake workflow for Chandra
Other
I have contributed to other astronomical open source software projects, such as Astropy, where I am also one of the sub-package maintainers for astropy.convolution. I have made multiple minor contributions to Astropy affiliated packages such as photutils, regions and hipspy. I wrote the initial prototype for Scikit-image’s blob detection functionality.
I also contributed to gamma-cat, an open source data collection for gamma-ray astronomy.