Lifting#
The lift of spin fields to the rotation group and its adjoint projection (Sec. IV).
For spin \(s\) the isometric lift \(\Lambda_s\) and its adjoint, the projection \(\Lambda_s^\dagger\), are (Definition IV.6)
In harmonic space the lift fills the single Wigner column \(n = -s\) and the projection reads it (Lemma IV.7(c), Eq. 38):
Evaluation on a section, which differs from the adjoint by \(\sqrt{2\pi}\), is a
separate operator (s2conv.convolutions.section).
- s2conv.lifting.lift(flm, spin: int, N: int = None) Array[source]#
The lift \(\Lambda_s\) in harmonic space (Lemma IV.7(c)).
- Parameters:
flm – Spin-\(s\) harmonic coefficients with shape
[..., L, 2L - 1].spin (int) – Spin \(s\).
N (int, optional) – Azimuthal band-limit of the output, at least \(|s| + 1\). Defaults to \(|s| + 1\).
- Returns:
Wigner coefficients with shape
[..., 2N - 1, L, 2L - 1], supported on the column \(n = -s\).- Return type:
jnp.ndarray
- s2conv.lifting.project(flmn, spin: int) Array[source]#
The adjoint projection \(\Lambda_s^\dagger\) in harmonic space (Lemma IV.7(c)).
- Parameters:
flmn – Wigner coefficients with shape
[..., 2N - 1, L, 2L - 1].spin (int) – Spin \(s\) of the output.
- Returns:
Spin-\(s\) harmonic coefficients with shape
[..., L, 2L - 1], zero when \(|s| \ge N\).- Return type:
jnp.ndarray
- s2conv.lifting.spin_components(flmn) Array[source]#
Decompose a function on the rotation group into spin fields (Corollary IV.12).
Every \(F\) azimuthally band-limited at \(N\) is \(F = \sum_{|s| < N} \Lambda_s \Lambda_s^\dagger F\), a tuple of \(2N - 1\) spin fields.
- Parameters:
flmn – Wigner coefficients with shape
[..., 2N - 1, L, 2L - 1].- Returns:
Spin harmonic coefficients \(\Lambda_s^\dagger F\) with shape
[..., 2N - 1, L, 2L - 1], indexed[..., N - 1 + s, el, L - 1 + m].- Return type:
jnp.ndarray
- s2conv.lifting.from_spin_components(components) Array[source]#
Assemble a function on the rotation group from its spin fields (Corollary IV.12).
- Parameters:
components – Spin harmonic coefficients with shape
[..., 2N - 1, L, 2L - 1], indexed[..., N - 1 + s, el, L - 1 + m].- Returns:
Wigner coefficients \(\sum_{|s|<N} \Lambda_s f_s\) with shape
[..., 2N - 1, L, 2L - 1].- Return type:
jnp.ndarray
- s2conv.lifting.gamma_samples(N: int) ndarray[source]#
Samples of the third Euler angle used by s2fft, \(\gamma_j = 2\pi j/(2N-1)\).
- Parameters:
N (int) – Azimuthal band-limit.
- Returns:
The \(2N - 1\) angles.
- Return type:
np.ndarray
- s2conv.lifting.lift_samples(f, spin: int, N: int = None) Array[source]#
The lift \(\Lambda_s\) on samples (Eq. 37).
- Parameters:
f – Samples of a spin-\(s\) field on the sphere, of any sampling scheme.
spin (int) – Spin \(s\).
N (int, optional) – Azimuthal band-limit of the output samples. Defaults to \(|s| + 1\).
- Returns:
Samples on the rotation group with shape
[2N - 1, *f.shape].- Return type:
jnp.ndarray
- s2conv.lifting.project_samples(F, spin: int) Array[source]#
The adjoint projection \(\Lambda_s^\dagger\) on samples (Eq. 37).
The integral over the fibre is evaluated by the trapezoidal rule, which is exact for samples azimuthally band-limited at \(N > |s|\).
- Parameters:
F – Samples on the rotation group with shape
[2N - 1, ...].spin (int) – Spin \(s\) of the output.
- Returns:
Samples of the spin-\(s\) field on the sphere.
- Return type:
jnp.ndarray