The End of Summer of Code
Final Evaluation: Aug 24-31th, 2021
Project “Comparing TARDIS spectra generated with different atomic data sources” for the TARDIS-SN organization, and mentored by Andreas Flörs, Christian Vogl, and James Gillanders.
Summary
Through my second (and last) year as a Google Summer of Code student, I made several contributions to improve the Carsus package.
TARDIS relies on Carsus to manage the atomic data necessary to run the simulations. These data comes from a wide variety of sources (experiments) and measurements of the same quantity may differ depending on the source.
A complete list of PRs made during the entire GSoC 2020 period can be found here.
1. Metadata for atomic files (PR #183)
Reproducibility of scientific results is a must. We wanted to store all the information required to reproduce our atomic data files at any point in the future.
The main challenge was to find a convenient way to serialize Pandas’s objects (we chose PyArrow) and then calculate a checksum for every DataFrame stored in the atomic data file.
Then, we store these checksumns and versions of relevant packageas and datasets.
Finally, the atomic file is signed with a global checksum and a universally unique identifier (UUID1).
2. Fix for heavy elements (PR #189)
Missing total angular momentum (“j”) for some ground levels obtained from the NIST Atomic Spectra Database limited the usage of Carsus to species with atomic number (Z) lower than 59 [Pr].
A small but critical patch made in collaboration with Stuart Sim allows Carsus to ingest atomic data from heavy elements.
3. Collision strengths from Chianti DB (PR #190)
The last piece of atomic data needed to fully replace the old Carsus SQL interface (“legacy”) were the collision strengths from Chianti.
4. Energy levels and lines from CMFGEN (PR #191)
My GSoC 2019 project involved writing parsers for CMFGEN files. This year, I wrote the code necessary to ingest energy levels and transition lines from this database into TARDIS atomic files.
This action required a complete refactor of the Carsus output module, including a complete revision of the priority management of the data sources.
What’s left to do?
Nothing.
Final thoughts
My plans for 2020 were really different to be honest. I wasn’t sure about to apply for Google Summer of Code again. But, in March I knew that this year was going to be “special”.
And boy it was crazy. As an inhabitant of the southern hemisphere, GSoC passed during a long, long winter. I was grateful to have something to work on in these difficult times.
It has been an amazing two years journey. GSoC was a life-changing event for me, without any doubt. It happened at the right time, after some difficult years.
What’s next? I’m glad to say that I joined this fantastic organization and I will contributing to TARDIS-SN as long as possible.