flaresimulations / synthesizer

Synthesizer - a code for creating synthetic astrophysical observables
https://flaresimulations.github.io/synthesizer/
GNU General Public License v3.0
17 stars 9 forks source link

Integrating imaging into EmissionModel framework (+abstract base class) #750

Closed WillJRoper closed 1 month ago

WillJRoper commented 1 month ago

This PR integrates EmissionModels into the imaging functionality.

Previously (and as demonstrated in the LRD pipeline), the imaging hadn't caught up to the rest of the package leading to label mismatches between photometry/spectra and the images. With this PR the imaging now ingests an EmissionModel and produces images following the same rules all other emissions do.

Since the imaging can be expensive, unlike the spectra, imaging has a limit_to argument that can take a single model label and only produce images for that spectra type.

In addition to the imaging functionality, this PR consolidates a lot of duplicated functionality across different components into a Component abstract base class. This was spurred on by the fact the imaging methods would have had to be introduced in multiple places but now only needs wrappers on a BaseGalaxy and a Component (along with all other common attributes and methods.

Issue Type

Checklist