Use headers directly from ScopeSIM
This MR ensures that the headers that ScopeSIM produces are identical to the ones MicadoWISE produces. It is therefore possible to use data simulated by ScopeSIM directly in MicadoWISE.
This header equivalence has only been included for simulation types that happen to be included in our test-suite. There are probably simulations for which ScopeSIM and MicadoWISE disagree about the correct headers; those need to be identified and fixed.
Note that the header-saving functionality (that is, the fits_keywords()
decorator in the MObjectExtra
class is now not strictly necessary anymore. It is currently only used to verify that the headers produced by ScopeSIM are what MicadoWISE expects. The header-saving functionality could be useful to fix FITS files with broken headers, like future lab data.
The next step is ensuring these header keywords are correct by verifying they can be used to create deterministic simulations. That is, that recreating the simulation from the headers results in the exact same pixels. Reproducibility cannot always be guaranteed, but it should be possible to achieve if the user desires to do so. Missing in this is that the random number seed is not stored when using ScopeSIM standalone.
Furthermore, we should recreate the first delivery of the ESO simulated data delivery to verify that indeed everything works as expected for that dataset.
This MR requires changes to the IRDB, for which the PR is https://github.com/AstarVienna/irdb/pull/82 .
SonarQube correctly complains about the cognitive complexity of various functions involved with this MR. These functions should be refactored, but I don't have time to do that now, so I do not plan to fix that now.
Closes #269 (closed) as well.