lfkit.api.corrections#

Unified k- and e-correction interface.

This module is the user-facing entry point for LFKit photometric corrections. It provides a small, stable API for evaluating:

k(z) bandpass (k-) correction e(z) luminosity evolution (e-) correction ke(z) combined correction, ke(z) = k(z) + e(z)

Design goals#

  • Keep the runtime API minimal and stable: k(z), e(z), ke(z)

  • Make backend choices explicit and composable:
    • k(z) backend: “poggianti” or “kcorrect”

    • e(z) backend: “none” or “poggianti”

  • Use astronomy-friendly inputs at the public boundary:
    • filterset: “sdss”, “hsc”, “decam”, “bessell”, …

    • band: “r”, “i”, “V”, …

    • Poggianti uses a typed table key (gal_type)

    • kcorrect uses an SED mixture specified by a color anchor

Reality check about kcorrect#

kcorrect returns k(z) for a chosen SED mixture and filter response. It does not encode physical luminosity evolution by itself. If you want e(z), you supply a separate evolution model (for example from Poggianti tabulations), and LFKit combines them consistently.

Sign convention#

Absolute magnitude is defined as:

M = m - DM(z) - k(z) + e(z)

With this convention, if galaxies were brighter in the past, then e(z) is typically negative for z > z_piv in pivoted evolution models.

Notes on filter names and kcorrect responses#

In LFKit the public choice of a band is expressed as (filterset, band). kcorrect internally uses response curve identifiers (file stems). LFKit maps:

(filterset, band) -> response_name

You can override or extend this mapping via response_map when working with custom surveys or custom filter curves.

Classes

Corrections(k_func[, e_func, meta])

Evaluator for k(z), e(z), and ke(z).