G21¶
- class dust_extinction.shapes.G21(scale=0.37, alpha=1.5, sil1_amp=0.07, sil1_center=9.87, sil1_fwhm=2.5, sil1_asym=-0.23, sil2_amp=0.025, sil2_center=17.0, sil2_fwhm=13.0, sil2_asym=-0.27, **kwargs)[source]¶
Bases:
BaseExtModel
,Fittable1DModel
Gordon et al. (2021) powerlaw plus two modified Drude profiles (for the 10 & 20 micron silicate features) for the 1 to 40 micron A(lambda)/A(V) extinction curve.
- Parameters:
- scale: float
amplitude of the powerlaw at 1 micron
- alpha: float
power of powerlaw
- sil1_amp: float
central amplitude of the 10 micron silicate feature
- sil1_center: float
center wavelength of the 10 micron silicate feature
- sil1_fwhm: float
full width at half maximum of the 10 micron silicate feature
- sil1_asym: float
asymmetry of the 10 micron silicate feature
- sil2_amp: float
central amplitude of the 20 micron silicate feature
- sil2_center: float
center wavelength of the 20 micron silicate feature
- sil2_fwhm: float
full width at half maximum of the 20 micron silicate feature
- sil2_asym: float
asymmetry of the 20 micron silicate feature
Notes
From Gordon et al. (2021, ApJ, submitted)
Only applicable at NIR/MIR wavelengths from 1-40 micron
Example showing a G21 curve with components identified.
import numpy as np import matplotlib.pyplot as plt import astropy.units as u from dust_extinction.shapes import G21 fig, ax = plt.subplots() # generate the curves and plot them lam = np.logspace(np.log10(1.01), np.log10(39.9), num=1000) x = (1.0/lam)/u.micron ext_model = G21() ax.plot(1/x,ext_model(x),label='total') ext_model = G21(sil1_amp=0.0, sil2_amp=0.0) ax.plot(1./x,ext_model(x),label='power-law only') ext_model = G21(sil2_amp=0.0) ax.plot(1./x,ext_model(x),label='power-law+sil1 only') ext_model = G21(sil1_amp=0.0) ax.plot(1./x,ext_model(x),label='power-law+sil2 only') ax.set_xscale('log') ax.set_yscale('log') ax.set_xlabel('$\lambda$ [$\mu$m]') ax.set_ylabel('$A(x)/A(V)$') ax.set_title('G21') ax.legend(loc='best') plt.show()
(
Source code
,png
,hires.png
,pdf
)Attributes Summary
Names of the parameters that describe models of this type.
Methods Summary
evaluate
(x, scale, alpha, sil1_amp, ...)G21 function
Attributes Documentation
- alpha = Parameter('alpha', value=1.5, bounds=(0.5, 5.0))¶
- param_names = ('scale', 'alpha', 'sil1_amp', 'sil1_center', 'sil1_fwhm', 'sil1_asym', 'sil2_amp', 'sil2_center', 'sil2_fwhm', 'sil2_asym')¶
Names of the parameters that describe models of this type.
The parameters in this tuple are in the same order they should be passed in when initializing a model of a specific type. Some types of models, such as polynomial models, have a different number of parameters depending on some other property of the model, such as the degree.
When defining a custom model class the value of this attribute is automatically set by the
Parameter
attributes defined in the class body.
- scale = Parameter('scale', value=0.37, bounds=(0.0, 1.0))¶
- sil1_amp = Parameter('sil1_amp', value=0.07, bounds=(0.001, 0.3))¶
- sil1_asym = Parameter('sil1_asym', value=-0.23, bounds=(-2.0, 2.0))¶
- sil1_center = Parameter('sil1_center', value=9.87, bounds=(8.0, 12.0))¶
- sil1_fwhm = Parameter('sil1_fwhm', value=2.5, bounds=(1.0, 10.0))¶
- sil2_amp = Parameter('sil2_amp', value=0.025, bounds=(0.001, 0.3))¶
- sil2_asym = Parameter('sil2_asym', value=-0.27, bounds=(-2.0, 2.0))¶
- sil2_center = Parameter('sil2_center', value=17.0, bounds=(16.0, 24.0))¶
- sil2_fwhm = Parameter('sil2_fwhm', value=13.0, bounds=(5.0, 20.0))¶
- x_range = [0.025, 1.0]¶
Methods Documentation
- evaluate(x, scale, alpha, sil1_amp, sil1_center, sil1_fwhm, sil1_asym, sil2_amp, sil2_center, sil2_fwhm, sil2_asym)[source]¶
G21 function
- Parameters:
- x: float
expects either x in units of wavelengths or frequency or assumes wavelengths in wavenumbers [1/micron]
- Returns:
- axav: np array (float)
A(x)/A(V) extinction curve [mag]
- Raises:
- ValueError
Input x values outside of defined range