# Lin-Basex¶

## Introduction¶

Inversion procedure based on 1-dimensional projections of VM-images as described in Gerber et al. [1].

[ *from the abstract* ]

*VM-images are composed of projected Newton spheres with a common centre.
The 2D images are usually evaluated by a decomposition into base vectors each
representing the 2D projection of a set of particles starting from a centre
with a specific velocity distribution. We propose to evaluate 1D projections of
VM-images in terms of 1D projections of spherical functions, instead.
The proposed evaluation algorithm shows that all distribution information can
be retrieved from an adequately chosen set of 1D projections, alleviating the
numerical effort for the interpretation of VM-images considerably. The obtained
results produce directly the coefficients of the involved spherical functions,
making the reconstruction of sliced Newton spheres obsolete.*

## How it works¶

A projection of 3D Newton spheres along the \(x\) axis yields a compact 1D function:

with \(u = \cos(\theta)\). This function constitutes a system of equations expressing \(L(z, u)\) as a linear combination of \(P_\ell(z/r_k)\). There exists for a given base a unique set of coefficients \(p_{\ell k}\) producing a least-squares fit to the function \(L(z, u)\).

[ *extract of a comment made by Thomas Gerber (method author)* ]

*Imaging an PES experiment which produces electrons that are distributed on the
surface of a sphere. This sphere can be described by spherical functions. If
all electrons have the same energy we expect them on a (Newton) sphere with
radius* \(i\). *This radius is projected to the CCD. The distribution on
the CCD has (if optics are approriate) the same radius* \(i\).
*Now let us assume that the distribution on the Newton sphere has some
anisotropy. We can describe the
distribution on this sphere by spherical functions* \(Y_{nm}\).
*Let’s say* \(xY_{00} + yY_{20}\).
*The 1D projection of those spheres produces just* \(xP_{i0}(k) +yP_{i2}(k)\)
*where* \(P_{i}\) *denotes Legendre Polynomials scaled to the interval*
\(i\) *and* \(k\) *is the argument (pixel).*

*For one projection Lin-Basex now solves for the parameters* \(x\) *and*
\(y\). *If we look at another projection turned by an angle, the Basis*
\(P_{i0}\) *and* \(P_{i2}\)
*has to be modified because the projection of e.g.,* \(Y_{20}\) *turned
by an angle yields another function. It was shown that this function for e.g.,*
\(P_{2}\) *is just*
\(P_{2}(a)P_{i2}(k)\) *where* \(a\) *is the turning angle. Solving
the equations for the 1D projection at angle* (\(a\)) *with this modified
basis yields the same* \(x\) and \(y\) *parameters as before.*

*Lin-Basex aims at the determination of contributions in terms of spherical
functions calculating the weight of each* \(Y_{l0}\). *If we reconstruct
the 3D object by adding all the* \(Y_{l0}\) *contributions we get the
inverse Laplace transform of the image on the CCD from which we can derive
“Slices”.*

## When to use it¶

[ *another extract from comments by the method author Thomas Gerber* ]

*The advantage of* `linbasex`

*is, that not so many projections are needed
(typically* `len(an) ~ len(pol)()`

). *So,* `linbasex`

*evaluation using a
mathematically
appropriate and correct basis set should eventually be much faster
than* `basex`

.

*If our 3D object is “sparse” (i.e., contains a sparse set of Newton spheres) a
sparse basis may be used. In this case one must have primary information about
what “sparsity” is appropriate.*

*That means that an Abel transform may be simplified if primary information
about the object is available. That is not the case with the other methods.*

*Absolute noise increases in each sphere with sqrt(counts) but relative noise
decreases with* \(1/\sqrt{\text{counts}}\).

## How to use it¶

To complete the inverse Abel transform of a full image with the
`linbasex method`

, simply use the `abel.Transform`

: class

```
abel.Transform(myImage, method='linbasex').transform
```

Note, the parameter `transform_options=dict(return_Beta=True)`

,
provides additional attributes, direct from the transform procedure:

`.Beta[0]`

- the speed distribution`.Beta[1]`

- the anisotropy parameter vs radius`.radial`

- the radial array`.projection`

- the radial projections at angles an.

A more complete global call, that centers the image, ensures that the size is odd, and returns the attributes above, would be e.g.

```
abel.Transform(myImage, method='linbasex', center='convolution',
transform_options=dict(return_Beta=True))
```

Alternatively, the linbasex algorithm `abel.linbasex.linbasex_transform_full()`

directly
transforms the full image, with the attributes returned as a tuple in this case.

## Tips¶

Including more projection angles may improve the transform:

```
an = [0, 45, 90, 135]
```

or

```
an = arange(0, 180, 10)
```

## Historical¶

PyAbel python code was extracted from this jupyter notebook supplied by Thomas Gerber.

## Citation¶

[1] | Th. Gerber, Yu. Liu, G. Knopp, P. Hemberger, A. Bodi, P. Radi, Ya. Sych, “Charged particle velocity map image reconstruction with one-dimensional projections of spherical functions”, Rev. Sci. Instrum. 84, 033101 (2013). |