Source code for yaw.config.options
"""This module implements a class that generates the value options for certain
configuration parameters. An instance of this class can be accessed directly as
:obj:`yaw.config.OPTIONS`.
"""
from __future__ import annotations
__all__ = ["OPTIONS"]
[docs]
class Options:
@property
def backend(self) -> tuple[str]:
"""Lists the names of the currently available backends for correlation
measurements."""
from yaw.catalogs import BaseCatalog
return tuple(sorted(BaseCatalog._backends.keys()))
@property
def binning(self) -> tuple[str]:
"""Lists the currently implemented methods to generate redshift bins
with the :obj:`~yaw.config.BinningConfig` class.
.. rubric:: Values
``comoving``: Generate a binning with equal width in radial comoving
distance.
``linear``: Generate a binning with equal width in redshift.
``logspace``: Generate a binning with equal width in logarithmic
redshift :math:`\\log(1+z)`.
.. Note::
Class also accepts ``manual`` if custom bin edges are provided.
"""
return ("comoving", "linear", "logspace")
@property
def cosmology(self) -> tuple[str]:
"""Lists the availble named cosmologies in :obj:`astropy`.
On top of these comological models, custom cosmologies can be defined by
subclassing :obj:`yaw.core.cosmology.CustomCosmology`.
"""
from astropy.cosmology import available
return available
@property
def kind(self) -> tuple[str]:
"""Lists the currently implemented methods for covariance calculation.
.. rubric:: Values
``full``: Compute all matrix elements of the covariance.
``diag``: Compute only the main diagonal and the primary off-diagonals
of the covariance matrix. This option applies, if the covariance is
computed from a concatenated set of data samples, which have a
crosscorrelation of interest. For example if concatenating the samples
obtained from multiple redshift bins, the primary off-diagonals contain
the covariance at the same redshift between different bins.
``var``: Compute the variance, i.e. only the diagonal elements.
"""
return ("full", "diag", "var")
@property
def merge(self) -> tuple[str]:
"""Lists the available modes to merge correlation measurements.
.. rubric:: Values
``patches``: Merge measurements by concatenating spatial patches, i.e.
extending the area over which measurements are taken. This may miss out
some correlation signal between the two measurements.
``redshift``: Merge measurements by concatenating redshift bins, i.e.
extending the redshift range.
"""
return ("patches", "redshift")
@property
def method(self) -> tuple[str]:
"""Lists the currently implemented methods for spatial resampling.
Resampling uses the spatial patches to get uncertainty estimates for the
correlation function measurements.
.. rubric:: Values
``jackknife``: Use jackknife resampling (generate samples and leave out
one patch at a time).
``bootstrap``: Use bootstrap resampling (generate samples by randomly
drawing patches with replacement).
"""
return ("jackknife", "bootstrap")
OPTIONS = Options()