N09

class dust_attenuation.shapes.N09(x0=0.2175, gamma=0.035, ampl=0, slope=0.0, Av=1.0, **kwargs)[source]

Bases: BaseAttAvModel

Attenuation curve using a modified version of the Calzetti law allowing for a varying UV slope and the presence of a UV bump.

Parameters:
x0: float

Central wavelength of the UV bump (in microns).

gamma: float

Width (FWHM) of thhe UV bump (in microns).

ampl: float

Amplitude of the UV bump.

slope: float

Slope of the power law.

Av: float

attenuation in V band.

Raises:
InputParameterError

Input Av values outside of defined range

Notes

The original formalism is from Noll et al, A&A 507, 1793–1813 (2009).

Example:

import matplotlib.pyplot as plt
import numpy as np
import astropy.units as u

from dust_attenuation.shapes import N09

fig, ax = plt.subplots()

# generate the curves and plot them
x = np.arange(0.5,10,0.1)/u.micron

slopes = [-1, -0.5, 0, 0.5, 1]
for slope in slopes:
    att_model = N09(Av=1,ampl=3.5,slope=slope)
    ax.plot(x,att_model(1/x),label=r'$\delta$ = %.2f' % (slope))

ax.set_xlabel(r'$x$ [$\mu m^{-1}$]')
ax.set_ylabel(r'A(x) [mag]')

ax.legend(loc='best')
plt.title("Noll09 with varying slopes")
plt.show()

(Source code, png, hires.png, pdf)

../_images/dust_attenuation-shapes-N09-1.png

Attributes Summary

Av

Rv_C00

ampl

gamma

param_names

Names of the parameters that describe models of this type.

slope

x0

x_range

Methods Summary

evaluate(x, Av, x0, gamma, ampl, slope)

N09 function

k_lambda(x, x0, gamma, ampl, slope)

Compute the starburst reddening curve k'(λ)=A(λ)/E(B-V) using recipe of Calzetti 2000 and Leitherer 2002

power_law(x, slope)

Power law normalised at 0.55 microns (V band).

uv_bump(x, x0, gamma, ampl)

Drude profile for computing the UV bump.

Attributes Documentation

Av = Parameter('Av', value=1.0, bounds=(0.0, None))
Rv_C00 = 4.05
ampl = Parameter('ampl', value=0.0, bounds=(0, None))
gamma = Parameter('gamma', value=0.035, bounds=(0, None))
param_names = ('Av', 'x0', 'gamma', 'ampl', 'slope')

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.

slope = Parameter('slope', value=0.0, bounds=(-3.0, 3.0))
x0 = Parameter('x0', value=0.2175, bounds=(0, None))
x_range = [0.097, 2.2]

Methods Documentation

evaluate(x, Av, x0, gamma, ampl, slope)[source]

N09 function

Parameters:
x: np array (float)

expects either x in units of wavelengths or frequency or assumes wavelengths in [micron] internally microns are used

Av: float

attenuation in V band.

x0: float

Central wavelength of the UV bump (in microns).

gamma: float

Width (FWHM) of thhe UV bump (in microns).

ampl: float

Amplitude of the UV bump.

slope: float

Slope of the power law.

Returns:
att: np array (float)

Att(x) attenuation curve [mag]

Raises:
ValueError

Input x values outside of defined range

k_lambda(x, x0, gamma, ampl, slope)[source]

Compute the starburst reddening curve k’(λ)=A(λ)/E(B-V) using recipe of Calzetti 2000 and Leitherer 2002

Parameters:
in_x: np array (float)

expects either x in units of wavelengths or frequency or assumes wavelengths in [micron] internally microns are used

x0: float

Central wavelength of the UV bump (in microns).

gamma: float

Width (FWHM) of thhe UV bump (in microns).

ampl: float

Amplitude of the UV bump.

slope: float

Slope of the power law.

Returns:
k_lambda: np array (float)

k_lambda(x) reddening curve

Raises:
ValueError

Input x values outside of defined range

power_law(x, slope)[source]

Power law normalised at 0.55 microns (V band).

Parameters:
x: np array (float)

expects wavelengths in [micron]

slope: float

slope of the power law

Returns:
powlaw: np array (float)

power law

uv_bump(x, x0, gamma, ampl)[source]

Drude profile for computing the UV bump.

Parameters:
x: np array (float)

expects wavelengths in [micron]

x0: float

Central wavelength of the UV bump (in microns).

gamma: float

Width (FWHM) of the UV bump (in microns).

ampl: float

Amplitude of the UV bump.

Returns:
np array (float)

lorentzian-like Drude profile

Raises:
ValueError

Input x values outside of defined range