pyfli.simulator.sim_engine_common#

Shared IRF/timing setup, cycles-range validation, and TCSPC photon-binning logic for the sampling engines wrapped by the “combined” and “separate” simulator pairs.

This module belongs to pyfli.simulator and is part of PyFLI synthetic FLI/FLIM data generation, hardware noise modeling, calibration, and validation tools.

FLIEngine and FLIModelSimulator both wrap a single IRF into per-pixel decay/parameter sampling and TCSPC photon-histogram simulation; they differ in how lifetime parameters are sampled and how many exponential components the analytical decay supports. BaseFLIEngine owns the parts that are identical between them — IRF validation, timing setup, n_cycles range normalization, the steady-state pulse-repetition mixing fraction, and the IRF-convolution/pile-up/binning tail of the TCSPC simulation — so that logic is defined exactly once.

Classes

BaseFLIEngine(irf_full[, laser_feq, seed])

Shared setup and helpers for FLI sampling engines.

class BaseFLIEngine(irf_full, laser_feq=80, seed=None)[source]#

Bases: object

Shared setup and helpers for FLI sampling engines.

Parameters:
  • irf_full (np.ndarray) – Full instrument response function sampled over the decay window.

  • laser_feq (int) – Laser repetition frequency used by the simulation.

  • seed (int | None) – Seed for reproducible random sampling.