trinidi.simulate#

Some simulation related functions and classes.

Functions

circle_mask(N[, center, radius])

Generate a circle mask with array size of size N`x`N.

generate_sample_data(isotopes, z, Δt=None[, ...])

Generate example data.

generate_spectra(t_A[, acquisition_time])

Generate example parameters for simulation

rose_phantom(N[, num_circles, radius])

Generate a rose phantom with array size of size N`x`N.

Classes

SimpleSpectrum([t_A, y, N, coeffs])

Represent spectrum y(t_A) using only a few coefficient, coeffs.

class trinidi.simulate.SimpleSpectrum(t_A=None, y=None, N=None, coeffs=None)[source]#

Bases: object

Represent spectrum y(t_A) using only a few coefficient, coeffs.

y(t) ≈ exp( a_0 + a_1 (log t) + a_2 (log t)^2 + a_3 (log t)^3)

where t: t_A

a_i: coeffs

Initialize either with [y and t_A, N] or directly with coeffs.

Parameters:
  • t_A (array, optional) – t_A vector

  • y (array, optional) – spectrum vector

  • N (scalar, optional) – number of coefficients

  • coeffs (array/list, optional) – coefficients

__call__(t_A)[source]#

Get approximation at t_A(s)

Parameters:

t_A (array) – t_A vector

Returns:

array – approximation

trinidi.simulate.generate_spectra(t_A, acquisition_time=1)[source]#

Generate example parameters for simulation

trinidi.simulate.circle_mask(N, center=None, radius=1)[source]#

Generate a circle mask with array size of size N`x`N.

trinidi.simulate.rose_phantom(N, num_circles=5, radius=0.6666666666666666)[source]#

Generate a rose phantom with array size of size N`x`N.

trinidi.simulate.generate_sample_data(isotopes, z, Δt=0.9, t_0=72, t_last=400, flight_path_length=10, projection_shape=(31, 31), kernels=None, acquisition_time=10)[source]#

Generate example data.