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:
AnalyticAttenThe 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:
AnalyticAttenFeatureless 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:
TabulatedAttenSmall 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.