Attenuation Curves#

The default attenuation model in lightning is the “modified Calzetti” curve from Noll+(2009) with a 2175 Angstrom bump and a variable UV slope linked to the bump strength. This model is implemented in the ModifiedCalzettiAtten class.

class lightning.attenuation.ModifiedCalzettiAtten#

Bases: AnalyticAtten

The Noll+(2009) modification of the Calzetti+(2000) attenuation curve, including a Drude-profile bump at 2175 Å and a variable UV slope.

Linearly extrapolated from 1200 Å down to 912 Å.

Parameters:
wavenp.ndarray, (Nwave,), float

Rest frame wavelength grid to evaluate the model on.

Methods

evaluate(params)

Evaluate the attenuation as a function of wavelength for the given parameters.

get_AV(params)

Helper function to convert tauV -> AV

print_params([verbose])

If verbose, print a nicely formatted table of the models, their parameters, and the description of the parameters.

__init__(wave)#
evaluate(params)#

Evaluate the attenuation as a function of wavelength for the given parameters.

Model includes a featureless Calzetti law, with the addition of a UV bump at 2175 A and optionally extra birth cloud extinction. The same attenuation model used in most cases by Lightning; I ported it from the Lightning IDL source.

As of right now the birth cloud component should be ignored, it isn’t really implemented properly at the moment – it’ll be applied to all ages if you set tauV_BC > 0.

If I were willing to be a little more clever, I would define this more obviously as an extension of the CalzettiAtten class.

Parameters:
paramsnp.ndarray, (Nmodels, 3) or (3,)

Parameters of the model.

Returns:
expminustau(Nmodels, Nwave)
get_AV(params)#

Helper function to convert tauV -> AV

For toy models and instances where there is insufficient data to constrain the variable UV slope of the ModifiedCalzettiAtten model, we also implement the pure Calzetti featureless attenuation curve in the CalzettiAtten class.

class lightning.attenuation.CalzettiAtten#

Bases: AnalyticAtten

Featureless Calzetti+(2000) attenuation curve.

Linearly extrapolated from 1200 Å down to 912 Å.

Parameters:
wavenp.ndarray, (Nwave,), float

Rest frame wavelength grid to evaluate the model on.

Methods

evaluate(params)

Evaluate the attenuation as a function of wavelength for the given parameters.

get_AV(params)

Helper function to convert tauV -> AV

print_params([verbose])

If verbose, print a nicely formatted table of the models, their parameters, and the description of the parameters.

__init__(wave)#
evaluate(params)#

Evaluate the attenuation as a function of wavelength for the given parameters.

Parameters:
paramsnp.ndarray, (Nmodels, 1) or (1,)

Values for tauV.

Returns:
expminustau(Nmodels, Nwave)
get_AV(params)#

Helper function to convert tauV -> AV

The SMC extinction curve is also implemented in the SMC class for internal use by the polar dust attenuation model, as in X-Cigale.

class lightning.attenuation.SMC#

Bases: TabulatedAtten

Small Magellanic Cloud extinction curve from Gordon et al. (2003)

Parameters:
wavenp.ndarray, (Nwave,), float

Rest frame wavelength grid to evaluate the model on.

Methods

evaluate(params)

Evaluate the attenuation as a function of wavelength for the given parameters.

print_params([verbose])

If verbose, print a nicely formatted table of the models, their parameters, and the description of the parameters.

References

evaluate(params)#

Evaluate the attenuation as a function of wavelength for the given parameters.

Parameters:
paramsnp.ndarray, (Nmodels, 1) or (1,)

Values for tauV.

Returns:
expminustau(Nmodels, Nwave)

The above attenuation and extinction models extend the AnalyticAtten and TabulatedAtten classes.

class lightning.attenuation.base.AnalyticAtten#

Base class for analytic (i.e., not tabulated) attenuation curves.

__init__(wave)#
__new__(*args, **kwargs)#
class lightning.attenuation.base.TabulatedAtten#

Base class for tabulated attenuation curves.

__init__(wave=None)#
__new__(*args, **kwargs)#