Source code for lenstronomy.Util.cosmo_util

from astropy.cosmology import FlatLambdaCDM
from astropy.cosmology import LambdaCDM
from astropy.cosmology import FlatwCDM
from astropy.cosmology import wCDM
from astropy.cosmology import Flatw0waCDM
from astropy.cosmology import w0waCDM
from lenstronomy.Util.package_util import exporter

export, __all__ = exporter()


[docs] @export def get_astropy_cosmology(cosmology_model="FlatLambdaCDM", param_kwargs={}): """Return an instance of a astropy.cosmology class. :param cosmology_model: string, name of the cosmology model :type cosmology_model: str :param param_kwargs: keyword arguments of the cosmology class :type param_kwargs: dict :return: instance of a astropy.cosmology class """ H0 = param_kwargs.get("H0", 70) Om0 = param_kwargs.get("Om0", 0.3) Ode0 = param_kwargs.get("Ode0", 0.7) w0 = param_kwargs.get("w0", -1) wa = param_kwargs.get("wa", 0) supported_models = [ "FlatLambdaCDM", "LambdaCDM", "FlatwCDM", "wCDM", "Flatw0waCDM", "w0waCDM", ] if cosmology_model not in supported_models: raise ValueError( f"Cosmology model {cosmology_model} not supported! Choose from {supported_models}." ) cosmo_classes = [FlatLambdaCDM, LambdaCDM, FlatwCDM, wCDM, Flatw0waCDM, w0waCDM] cosmo_kwargs = [ {"H0": H0, "Om0": Om0}, {"H0": H0, "Om0": Om0, "Ode0": Ode0}, {"H0": H0, "Om0": Om0, "w0": w0}, {"H0": H0, "Om0": Om0, "Ode0": Ode0, "w0": w0}, {"H0": H0, "Om0": Om0, "w0": w0, "wa": wa}, {"H0": H0, "Om0": Om0, "Ode0": Ode0, "w0": w0, "wa": wa}, ] index = supported_models.index(cosmology_model) cosmo = cosmo_classes[index](**cosmo_kwargs[index]) return cosmo