lfkit.photometry.lf_parameter_models module#

Luminosity-function parameter evolution models for LFKit.

This module provides helper functions for evaluating redshift-dependent luminosity function parameters such as phi_star(z), M_star(z), and alpha(z).

These helpers are used by the main luminosity function evaluators but do not evaluate the luminosity function themselves.

Built-in options include constant evolution and simple linearized forms commonly used in the literature.

lfkit.photometry.lf_parameter_models.alpha_constant(z, *, alpha)[source]#

Return a constant faint-end slope over redshift.

This uses

\[\alpha(z) = \alpha.\]
Parameters:
  • z (ndarray[tuple[Any, ...], dtype[float64]]) – Redshift value or array-like of redshift values.

  • alpha (float) – Constant faint-end slope.

Returns:

NumPy array of faint-end slope values with the same broadcast shape as z.

Return type:

ndarray[tuple[Any, …], dtype[float64]]

lfkit.photometry.lf_parameter_models.alpha_linear(z, *, alpha_0, alpha_1, z_ref=0.1)[source]#

Return a faint-end slope that varies linearly with redshift.

This uses

\[\alpha(z) = \alpha_0 + \alpha_1 (z - z_{\mathrm{ref}}).\]
Parameters:
  • z (ndarray[tuple[Any, ...], dtype[float64]]) – Redshift value or array-like of redshift values.

  • alpha_0 (float) – Faint-end slope at the reference redshift.

  • alpha_1 (float) – Linear slope with redshift.

  • z_ref (float) – Reference redshift.

Returns:

NumPy array of redshift-dependent faint-end slope values.

Return type:

ndarray[tuple[Any, …], dtype[float64]]

lfkit.photometry.lf_parameter_models.available_lf_parameter_models()[source]#

Return available luminosity function parameter evolution models.

Return type:

dict[str, list[str]]

lfkit.photometry.lf_parameter_models.evaluate_lf_parameters(z, *, phi_model='linear_p', phi_kwargs=None, m_star_model='linear_q', m_star_kwargs=None, alpha_model='constant', alpha_kwargs=None)[source]#

Evaluate evolving luminosity function parameters at redshift z.

Parameters:
  • z (ndarray[tuple[Any, ...], dtype[float64]]) – Redshift value or array-like of redshift values.

  • phi_model (str) – Evolution model for phi_star.

  • phi_kwargs (Mapping[str, float | Sequence[float] | ndarray[tuple[Any, ...], dtype[float64]]] | None) – Keyword arguments passed to the selected phi_star evolution model.

  • m_star_model (str) – Evolution model for M_star.

  • m_star_kwargs (Mapping[str, float | Sequence[float] | ndarray[tuple[Any, ...], dtype[float64]]] | None) – Keyword arguments passed to the selected M_star evolution model.

  • alpha_model (str) – Evolution model for alpha.

  • alpha_kwargs (Mapping[str, float | Sequence[float] | ndarray[tuple[Any, ...], dtype[float64]]] | None) – Keyword arguments passed to the selected alpha evolution model.

Returns:

Tuple (phi_star, m_star, alpha) evaluated at z.

Raises:

ValueError – If an unsupported evolution model is requested.

Return type:

tuple[ndarray[tuple[Any, …], dtype[float64]], ndarray[tuple[Any, …], dtype[float64]], ndarray[tuple[Any, …], dtype[float64]]]

lfkit.photometry.lf_parameter_models.get_parameter_model(model_name, registry, *, model_kind)[source]#

Return a registered luminosity function parameter model.

Parameters:
  • model_name (str) – Name of the requested model.

  • registry (Mapping[str, Callable[[...], ndarray[tuple[Any, ...], dtype[float64]]]]) – Mapping from model names to model callables.

  • model_kind (str) – Human-readable parameter kind used in error messages, for example "phi_model", "m_star_model", or "alpha_model".

Returns:

Registered parameter-model callable.

Raises:

ValueError – If model_name is not present in registry.

Return type:

Callable[[…], ndarray[tuple[Any, …], dtype[float64]]]

lfkit.photometry.lf_parameter_models.m_star_constant(z, *, m_star)[source]#

Return a constant characteristic magnitude over redshift

This uses

\[M_\star(z) = M_\star.\]
Parameters:
  • z (ndarray[tuple[Any, ...], dtype[float64]]) – Redshift value or array-like of redshift values.

  • m_star (float) – Constant characteristic magnitude.

Returns:

NumPy array of characteristic magnitudes with the same broadcast shape as z.

Return type:

ndarray[tuple[Any, …], dtype[float64]]

lfkit.photometry.lf_parameter_models.m_star_linear_q(z, *, m_0_star, q, z_ref=0.1)[source]#

Return a characteristic magnitude with luminosity evolution.

This uses the common luminosity-evolution form

\[M_\star(z) = M_{0,\star} - q (z - z_{\mathrm{ref}}).\]
Parameters:
  • z (ndarray[tuple[Any, ...], dtype[float64]]) – Redshift value or array-like of redshift values.

  • m_0_star (float) – Characteristic magnitude at the reference redshift.

  • q (float) – Luminosity-evolution parameter.

  • z_ref (float) – Reference redshift.

Returns:

NumPy array of redshift-dependent characteristic magnitudes.

Return type:

ndarray[tuple[Any, …], dtype[float64]]

lfkit.photometry.lf_parameter_models.phi_star_constant(z, *, phi_star)[source]#

Return a constant Schechter normalization over redshift.

This uses

\[\phi_\star(z) = \phi_\star.\]
Parameters:
  • z (ndarray[tuple[Any, ...], dtype[float64]]) – Redshift value or array-like of redshift values.

  • phi_star (float) – Constant Schechter normalization.

Returns:

NumPy array of Schechter normalization values with the same broadcast shape as z.

Return type:

ndarray[tuple[Any, …], dtype[float64]]

lfkit.photometry.lf_parameter_models.phi_star_linear_p(z, *, phi_0_star, p)[source]#

Return a Schechter normalization with density evolution.

This uses the common density-evolution form

phi_star(z) = phi_{0,star} , 10^{0.4 p z}.

Parameters:
  • z (ndarray[tuple[Any, ...], dtype[float64]]) – Redshift value or array-like of redshift values.

  • phi_0_star (float) – Schechter normalization at redshift zero.

  • p (float) – Density-evolution parameter.

Returns:

NumPy array of redshift-dependent Schechter normalization values.

Return type:

ndarray[tuple[Any, …], dtype[float64]]

lfkit.photometry.lf_parameter_models.register_alpha_model(name, model, *, overwrite=False)[source]#

Register an alpha evolution model.

Parameters:
  • name (str)

  • model (Callable[[...], ndarray[tuple[Any, ...], dtype[float64]]])

  • overwrite (bool)

Return type:

None

lfkit.photometry.lf_parameter_models.register_m_star_model(name, model, *, overwrite=False)[source]#

Register an M_star evolution model.

Parameters:
  • name (str)

  • model (Callable[[...], ndarray[tuple[Any, ...], dtype[float64]]])

  • overwrite (bool)

Return type:

None

lfkit.photometry.lf_parameter_models.register_phi_star_model(name, model, *, overwrite=False)[source]#

Register a phi_star evolution model.

Parameters:
  • name (str)

  • model (Callable[[...], ndarray[tuple[Any, ...], dtype[float64]]])

  • overwrite (bool)

Return type:

None