system#
- anri.index.system(eta, om, use, w, ring_j, pos, scan, b_e, b_o, n_e, n_o, n_beam=0)[source]#
Entries of the system matrix: (cell index, weight) for voxels and predictions.
A prediction (eta, omega) is spread bilinearly over the 2 x 2 nearest (eta, omega) bins, and over the dty rows by where the voxel sits at that omega (lab y = x sin(omega) + y cos(omega)). Parallax is ignored.
n_beam = 0: linearly over the 2 nearest rows.n_beam > 0: over the n_beam rows nearest to the voxel, each weighted by the beam’s profile across dty integrated over the voxel’s chord at that omega (asanri.fwd.beam_weight(), for a beam along lab x): a Gaussian ofscan["sig_beam"]blurring a flat top ofscan["width_beam"], over a square voxel of sidescan["voxel"]. The weights are scaled to sum to about 1 over the rows. Each weight is evaluated at the prediction’s omega, so a voxel off the rotation axis moves across the beam with omega.
- Parameters:
eta (
Array) – [1 or Nv, Q, Nj] predictions (degrees), whether to use them, and their weights. A leading 1 means the same orientations for every voxel; Nv, each voxel’s own.om (
Array) – [1 or Nv, Q, Nj] predictions (degrees), whether to use them, and their weights. A leading 1 means the same orientations for every voxel; Nv, each voxel’s own.use (
Array) – [1 or Nv, Q, Nj] predictions (degrees), whether to use them, and their weights. A leading 1 means the same orientations for every voxel; Nv, each voxel’s own.w (
Array) – [1 or Nv, Q, Nj] predictions (degrees), whether to use them, and their weights. A leading 1 means the same orientations for every voxel; Nv, each voxel’s own.ring_j (
Array) – [Nj] ring of each predictionpos (
Array) – [Nv, 3] voxel positions in the sample framescan (
dict) – “y0”, “dty0”, “ystep”, “n_rows” and “om0”: the rows are at dty = dty0 + k ystep; optionally “ddty” [n_rows, n_o], each row’s offset from that per omega bin (fly, helical scans:anri.index.dty_offsets()), and “exposure” [n_rows, n_o], each (row, omega bin)’s frames relative to a full one; with a beam profile also “sig_beam”, “width_beam” and “voxel” (beam_rows())b_e (
float) – Bin widths and counts of the histogram in eta and omegab_o (
float) – Bin widths and counts of the histogram in eta and omegan_e (
int) – Bin widths and counts of the histogram in eta and omegan_o (
int) – Bin widths and counts of the histogram in eta and omegan_beam (
int, default:0) – Rows per prediction for the beam profile (static); 0 for the 2-row linear model
- Returns:
index, weight (
jax.Array) – [Nv, Q, Nj, 8] each (4 n_beam with a beam profile); unused corners have index -1