barcode_profile#

pyrost.bin.barcode_profile(x_arr: numpy.ndarray, bars: numpy.ndarray, bulk_atn: float, bar_atn: float, bar_sigma: float, num_threads: int = 1)#

Return an array of barcode’s transmission profile calculated at x_arr coordinates.

Parameters
  • x_arr (numpy.ndarray) – Array of the coordinates, where the transmission coefficients are calculated [um].

  • bars (numpy.ndarray) – Coordinates of barcode’s bar positions [um].

  • bulk_atn (float) – Barcode’s bulk attenuation coefficient (0.0 - 1.0).

  • bar_atn (float) – Barcode’s bar attenuation coefficient (0.0 - 1.0).

  • bar_sigma (float) – Inter-diffusion length [um].

  • num_threads (int) – Number of threads used in the calculations.

Returns

Array of barcode’s transmission profiles.

Return type

numpy.ndarray

Notes

Barcode’s transmission profile is given by:

\[\begin{split}t_b(x) = t_{air} + \frac{t_1 - t_{air}}{2} \left( \tanh\left(\frac{x - x^b_1}{\sigma_b} \right) + \tanh\left(\frac{x^b_N - x}{\sigma_b}\right) \right)\\ - \frac{t_2 - t_1}{2}\sum_{n = 1}^{(N - 1) / 2} \left( \tanh\left(\frac{x - x^b_{2 n}}{\sigma_b}\right) + \tanh\left(\frac{x^b_{2 n + 1} - x}{\sigma_b}\right) \right)\end{split}\]

where \(t_1 = \sqrt{1 - A_{bulk}}\), \(t_2 = \sqrt{1 - A_{bulk} - A_{bar}}\) are the transmission coefficients for the bulk and the bars of the sample, \(x^b_n\) is a set of bars coordinates, and \(\sigma_b\) is the inter-diffusion length.