Source code for pyfli.simulator.separate.main_factory_gen
"""
Build generalized continuous and photon-counting simulation workflows.
This module belongs to :mod:`pyfli.simulator` and is part of PyFLI synthetic FLI/FLIM
data generation, hardware noise modeling, calibration, and validation tools. Public API
includes classes :class:`ContinuousSimulator` and :class:`PhotonCountSimulator`.
Both classes wrap :class:`~pyfli.simulator.separate.model_simulator.FLIModelSimulator`;
their shared noise/scaling pipeline lives in :mod:`pyfli.simulator.main_common`.
"""
from ..main_common import BaseContinuousSimulator, BaseDiscreteSimulator
from .model_simulator import FLIModelSimulator
[docs]
class ContinuousSimulator(BaseContinuousSimulator):
"""
Generate continuous/intensity-style FLI/FLIM simulations using the generalized
simulator factory. It mirrors the macro simulator interface while separating
continuous detector assumptions.
Parameters
----------
irf_data : np.ndarray
Instrument response data used to convolve or simulate decays.
sensor_type : str
Detector family or hardware profile name.
**cfg : Any
Additional configuration values forwarded to the simulator or solver.
"""
engine_cls = FLIModelSimulator
sample_params_name = "sample_params"
analytical_decay_name = "get_model_analytical_decay"
mono_only_maps = True
[docs]
class PhotonCountSimulator(BaseDiscreteSimulator):
"""
Generate photon-counting simulations using the generalized simulator factory. It
packages photon counter settings and returns simulated decays with associated
parameters.
Parameters
----------
irf_data : np.ndarray
Instrument response data used to convolve or simulate decays.
sensor_type : str
Detector family or hardware profile name.
**cfg : Any
Additional configuration values forwarded to the simulator or solver.
"""
engine_cls = FLIModelSimulator
sample_params_name = "sample_params"
analytical_decay_name = "get_model_analytical_decay"
simulate_tcspc_name = "simulate_model_tcspc"
mono_only_maps = True