uvex_transients.simulation.event_catalog.EventCatalog.simulate_photometry#
- EventCatalog.simulate_photometry(mission: Mission, transients: dict[str, TransientBase], schedule: SurveySchedule, bands: list[str] | None = None, n_sigma: float | None = None) QTable[source]#
Run ~uvex_transients.simulation.event.Event.simulate_photometry over every event in this catalog.
Reconstructs every row as an Event (via get_events), runs its own Event.simulate_photometry (one ~synphot.SourceSpectrum per event, batched over that event’s own observations), and stacks every event’s table together – there is no cross-event batching here, just a loop; the expensive vectorization already happens per event, inside Event.simulate_photometry itself.
- Parameters:
mission (
m4opt.missions.Mission) – Supplies the ~m4opt.synphot.Detector (bandpasses, background, …) evaluated against.transients (
dict[str,TransientBase]) – Transient-type instances, keyed by the same names used in this catalog’stransient_typecolumn – forwarded to get_events.schedule (
SurveySchedule) – The survey schedule to check each event’s visibility against – forwarded to get_events.bands (
listofstr, optional) – Which of mission.detector’s bandpasses to evaluate. Defaults to every bandpass the detector has.n_sigma (
float, optional) – Forwarded to Event.simulate_photometry; see its own docstring.
- Returns:
The astropy.table.vstack of every event’s own photometry table (see Event.simulate_photometry’s docstring for the column schema) – one row per (event, observation, band). Empty (but correctly typed) if this catalog itself is empty.
- Return type: