dsf.hankel.hankel_transform_base module¶
Shared base interface for Hankel transform backends.
This module defines the common interface used by the FFTLog, direct matrix, and zero-crossing matrix Hankel transform implementations. The base class provides shared helpers for validating and tapering input spectra, while backend-specific subclasses implement the projected, spherical, covariance, and higher-order radial transforms.
Projected transforms are intended for flat-sky spectra on angular wavenumber grids, while spherical transforms are intended for three-dimensional power spectra on reciprocal radial wavenumber grids. Subclasses are expected to document their exact normalization conventions and output-grid units.
Unsupported operations should raise NotImplementedError with a clear
message.
- class dsf.hankel.hankel_transform_base.HankelTransformBase[source]¶
Bases:
objectBase class for Hankel transforms.
- bin_radial_matrix(r, matrix, r_bins)[source]¶
Average a radial matrix or tensor into radial bins.
- Parameters:
r (NDArray[float64] | list[float] | tuple[float, ...])
matrix (NDArray[float64])
r_bins (NDArray[float64] | list[float] | tuple[float, ...])
- Return type:
tuple[NDArray[float64], NDArray[float64]]
- correlation_matrix(covariance)[source]¶
Return the correlation matrix associated with a covariance matrix.
- Parameters:
covariance (NDArray[float64]) – 2D square covariance matrix.
- Raises:
NotImplementedError – If the backend does not support correlation matrices.
- Return type:
NDArray[float64]
- diagonal_error(covariance)[source]¶
Return one-sigma errors from a covariance matrix.
- Parameters:
covariance (NDArray[float64]) – 2D square covariance matrix.
- Raises:
NotImplementedError – If the backend does not support diagonal errors.
- Return type:
NDArray[float64]
- power_grid(radial_grid=None, power_spectrum=None, order=0, taper=False, taper_kwargs=None, **kwargs)[source]¶
Return a power spectrum evaluated on a Hankel grid.
- Parameters:
radial_grid (NDArray[float64] | list[float] | tuple[float, ...] | None) – Radial grid for tabulated spectra (k or ell).
power_spectrum (NDArray[float64] | list[float] | tuple[float, ...] | Callable[[...], NDArray[float64]] | None) – Power-spectrum values or callable power spectrum.
order (float | int) – Bessel order used to select the backend k grid.
taper (bool) – Whether to suppress low-k and high-k edge power.
taper_kwargs (Mapping[str, Any] | None) – Optional settings for the spectrum taper.
**kwargs – Extra arguments passed to callable spectra.
- Returns:
Power spectrum evaluated on the internal radial grid.
- Return type:
NDArray[float64]
- projected_correlation(radial_input=None, spectrum=None, order=0, **kwargs)[source]¶
Compute a projected radial statistic from one spectrum:
\(\gamma_t(\theta) = \int \frac{\ell d\ell}{2\pi}\) \(C(\ell )J_\mu(\ell \theta)\).
- Parameters:
radial_input (NDArray[float64] | list[float] | tuple[float, ...] | None)
spectrum (NDArray[float64] | list[float] | tuple[float, ...] | Callable[[...], NDArray[float64]] | None)
order (float | int)
- Return type:
tuple[NDArray[float64], NDArray[float64]]
- projected_covariance(k_pk=None, pk1=None, pk2=None, order=0, **kwargs)[source]¶
Project two spectra into a radial covariance matrix.
- Parameters:
k_pk (NDArray[float64] | list[float] | tuple[float, ...] | None)
pk1 (NDArray[float64] | list[float] | tuple[float, ...] | Callable[[...], NDArray[float64]] | None)
pk2 (NDArray[float64] | list[float] | tuple[float, ...] | Callable[[...], NDArray[float64]] | None)
order (float | int)
- Return type:
tuple[NDArray[float64], NDArray[float64]]
- spherical_correlation(k_pk=None, pk=None, order=0, **kwargs)[source]¶
Compute a spherical radial statistic from one spectrum:
\(\xi(r) = \int \frac{k^2 dk}{2\pi^2} P(k) j_\mu(kr)\).
- Parameters:
k_pk (NDArray[float64] | list[float] | tuple[float, ...] | None)
pk (NDArray[float64] | list[float] | tuple[float, ...] | Callable[[...], NDArray[float64]] | None)
order (float | int)
- Return type:
tuple[NDArray[float64], NDArray[float64]]
- taper_spectrum(k, pk, **kwargs)[source]¶
Return a smoothly tapered power spectrum.
- Parameters:
k (NDArray[float64] | list[float] | tuple[float, ...]) – Wavenumber grid.
pk (NDArray[float64] | list[float] | tuple[float, ...]) – Power-spectrum values evaluated on
k.**kwargs – Optional taper settings.
- Returns:
Power spectrum with smooth low-k and high-k suppression.
- Return type:
NDArray[float64]