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: object

Base 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]