N09

class dust_attenuation.shapes.N09[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('$x$ [$\mu m^{-1}$]')
ax.set_ylabel('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 Av: attenuation in V band
Rv_C00
ampl bump: amplitude
gamma bump: width (FWHM)
param_names
slope slope: slope of the power law
x0 bump: centroid
x_range

Methods Summary

evaluate(x, x0, gamma, ampl, slope, Av) C00 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

Av: attenuation in V band

Rv_C00 = 4.05
ampl

bump: amplitude

gamma

bump: width (FWHM)

param_names = ('x0', 'gamma', 'ampl', 'slope', 'Av')
slope

slope: slope of the power law

x0

bump: centroid

x_range = [0.097, 2.2]

Methods Documentation

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

C00 function

Parameters:
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.

Av: float

attenuation in V band.

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