N09

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

Bases: dust_attenuation.baseclasses.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

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')
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