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_starevolution 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_starevolution 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
alphaevolution model.
- Returns:
Tuple
(phi_star, m_star, alpha)evaluated atz.- 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_nameis not present inregistry.- 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