redback.simulate_transients.SimulateTransientWithCadence
- class redback.simulate_transients.SimulateTransientWithCadence(model, parameters, cadence_config, model_kwargs=None, snr_threshold=5, noise_type='limiting_mag', seed=1234, apply_snr_cut=True, observation_mode='optical', **kwargs)[source]
Bases:
objectSimulate transient with specified observation cadence and SNR-based cuts
This class bridges the gap between SimulateGenericTransient (too simple) and SimulateOpticalTransient (requires full pointing database).
Supports: - Optical observations (bands, magnitudes) - Radio observations (frequencies, flux densities) - X-ray observations (frequencies, flux densities)
Perfect for: - Using PopulationSynthesizer parameters - Survey planning without full pointing database - Testing different cadence strategies - Simple SNR-based detection modeling - Multi-wavelength follow-up campaigns
- __init__(model, parameters, cadence_config, model_kwargs=None, snr_threshold=5, noise_type='limiting_mag', seed=1234, apply_snr_cut=True, observation_mode='optical', **kwargs)[source]
Initialize transient simulation with cadence
- Parameters:
model – String corresponding to redback model or callable function
parameters – Dictionary of parameters describing transient Can be from PopulationSynthesizer.generate_population() Must include ‘t0_mjd_transient’ or ‘t0’ for explosion time
cadence_config –
Dictionary specifying observation cadence
- For OPTICAL (observation_mode=’optical’):
- Required keys:
’bands’: list of filter names (e.g., [‘g’, ‘r’, ‘i’]) ‘cadence_days’: float or dict, days between observations ‘duration_days’: float, total observation duration ‘limiting_mags’: dict, 5-sigma limiting magnitudes per band
- Optional keys:
’start_offset_days’: float, days after t0 to start observing ‘band_sequence’: list, observation sequence if alternating
- For RADIO/X-RAY (observation_mode=’radio’ or ‘xray’):
- Required keys:
’frequencies’: list/array of frequencies in Hz ‘cadence_days’: float or dict, days between observations ‘duration_days’: float, total observation duration ‘sensitivity’: dict or float, 5-sigma sensitivity in Jy or erg/cm^2/s
If dict: {freq1: sens1, freq2: sens2} If float: same for all frequencies
- Optional keys:
’start_offset_days’: float, days after t0 to start observing ‘frequency_sequence’: list, observation sequence if alternating
model_kwargs – Additional kwargs for model
snr_threshold – SNR threshold for detection (default: 5)
noise_type – How to calculate noise For optical: ‘limiting_mag’, ‘gaussian’, ‘gaussianmodel’ For radio/X-ray: ‘sensitivity’, ‘gaussian’, ‘gaussianmodel’
seed – Random seed for reproducibility
apply_snr_cut – Whether to mark non-detections (SNR < threshold)
observation_mode – ‘optical’, ‘radio’, or ‘xray’ (default: ‘optical’)
kwargs – Additional arguments
- __call__(**kwargs)
Call self as a function.
Methods
__init__(model, parameters, cadence_config)Initialize transient simulation with cadence
save_transient(name)Save transient observations to CSV
Attributes
Return only detected observations
- property detected_observations
Return only detected observations