def __init__(self, tau_V, geometry='dusty', dust_type='mw', dust_distribution='clumpy'):
    "\n        Load the attenuation curves for a given geometry, dust type and\n        dust distribution.\n\n        Parameters\n        ----------\n        tau_V: float\n           optical depth in V band\n\n        geometry: string\n           'shell', 'cloudy' or 'dusty'\n\n        dust_type: string\n           'mw' or 'smc'\n\n        dust_distribution: string\n           'homogeneous' or 'clumpy'\n\n        Returns\n        -------\n        Attx: np array (float)\n            Att(x) attenuation curve [mag]\n\n        "
    self.geometry = geometry.lower()
    self.dust_type = dust_type.lower()
    self.dust_distribution = dust_distribution.lower()
    data_path = pkg_resources.resource_filename('dust_attenuation', 'data/WG00/')
    data = ascii.read(((data_path + self.geometry) + '.txt'), header_start=0)
    if (self.dust_type == 'mw'):
        start = 0
    elif (self.dust_type == 'smc'):
        start = 25
    tau_colname = 'tau'
    tau_att_colname = 'tau_att'
    fsca_colname = 'f(sca)'
    fdir_colname = 'f(dir)'
    fesc_colname = 'f(esc)'
    if (self.dust_distribution == 'clumpy'):
        tau_att_colname += '_c'
        fsca_colname += '_c'
        fdir_colname += '_c'
        fesc_colname += '_c'
    elif (self.dust_distribution == 'homogeneous'):
        tau_att_colname += '_h'
        fsca_colname += '_h'
        fdir_colname += '_h'
        fesc_colname += '_h'
    tau_att_list = []
    tau_list = []
    fsca_list = []
    fdir_list = []
    fesc_list = []
    len_data = len(data['lambda'])
    steps = 25
    counter = start
    while (counter < len_data):
        tau_att_list.append(np.array(data[tau_att_colname][counter:(counter + steps)]))
        tau_list.append(np.array(data[tau_colname][counter:(counter + steps)]))
        fsca_list.append(np.array(data[fsca_colname][counter:(counter + steps)]))
        fdir_list.append(np.array(data[fdir_colname][counter:(counter + steps)]))
        fesc_list.append(np.array(data[fesc_colname][counter:(counter + steps)]))
        counter += int((2 * steps))
    tau_att_table = np.array(tau_att_list).T
    tau_table = np.array(tau_list).T
    fsca_table = np.array(fsca_list).T
    fdir_table = np.array(fdir_list).T
    fesc_table = np.array(fesc_list).T
    wvl = np.array(data['lambda'][0:25])
    self.wvl_grid = wvl
    tau_V_grid = np.array([0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0])
    tab = tabular_model(2, name='2D_table')
    gridpoints = (wvl, tau_V_grid)
    self.model = tab(gridpoints, lookup_table=tau_att_table, name='tau_att_WG00', bounds_error=False, fill_value=None, method='linear')
    self.tau = tab(gridpoints, lookup_table=tau_table, name='tau_WG00', bounds_error=False, fill_value=None, method='linear')
    self.fsca = tab(gridpoints, lookup_table=fsca_table, name='fsca_WG00', bounds_error=False, fill_value=None, method='linear')
    self.fdir = tab(gridpoints, lookup_table=fdir_table, name='fdir_WG00', bounds_error=False, fill_value=None, method='linear')
    self.fesc = tab(gridpoints, lookup_table=fesc_table, name='fesc_WG00', bounds_error=False, fill_value=None, method='linear')
    super(WG00, self).__init__(tau_V=tau_V)
Load the attenuation curves for a given geometry, dust type and
dust distribution.

Parameters
----------
tau_V: float
   optical depth in V band

geometry: string
   'shell', 'cloudy' or 'dusty'

dust_type: string
   'mw' or 'smc'

dust_distribution: string
   'homogeneous' or 'clumpy'

Returns
-------
Attx: np array (float)
    Att(x) attenuation curve [mag]
def __init__(self, tau_V, geometry='dusty', dust_type='mw', dust_distribution='clumpy'):
    "\n        Load the attenuation curves for a given geometry, dust type and\n        dust distribution.\n\n        Parameters\n        ----------\n        tau_V: float\n           optical depth in V band\n\n        geometry: string\n           'shell', 'cloudy' or 'dusty'\n\n        dust_type: string\n           'mw' or 'smc'\n\n        dust_distribution: string\n           'homogeneous' or 'clumpy'\n\n        Returns\n        -------\n        Attx: np array (float)\n            Att(x) attenuation curve [mag]\n\n        "
    self.geometry = geometry.lower()
    self.dust_type = dust_type.lower()
    self.dust_distribution = dust_distribution.lower()
    data_path = pkg_resources.resource_filename('dust_attenuation', 'data/WG00/')
    data = ascii.read(((data_path + self.geometry) + '.txt'), header_start=0)
    if (self.dust_type == 'mw'):
        start = 0
    elif (self.dust_type == 'smc'):
        start = 25
    tau_colname = 'tau'
    tau_att_colname = 'tau_att'
    fsca_colname = 'f(sca)'
    fdir_colname = 'f(dir)'
    fesc_colname = 'f(esc)'
    if (self.dust_distribution == 'clumpy'):
        tau_att_colname += '_c'
        fsca_colname += '_c'
        fdir_colname += '_c'
        fesc_colname += '_c'
    elif (self.dust_distribution == 'homogeneous'):
        tau_att_colname += '_h'
        fsca_colname += '_h'
        fdir_colname += '_h'
        fesc_colname += '_h'
    tau_att_list = []
    tau_list = []
    fsca_list = []
    fdir_list = []
    fesc_list = []
    len_data = len(data['lambda'])
    steps = 25
    counter = start
    while (counter < len_data):
        tau_att_list.append(np.array(data[tau_att_colname][counter:(counter + steps)]))
        tau_list.append(np.array(data[tau_colname][counter:(counter + steps)]))
        fsca_list.append(np.array(data[fsca_colname][counter:(counter + steps)]))
        fdir_list.append(np.array(data[fdir_colname][counter:(counter + steps)]))
        fesc_list.append(np.array(data[fesc_colname][counter:(counter + steps)]))
        counter += int((2 * steps))
    tau_att_table = np.array(tau_att_list).T
    tau_table = np.array(tau_list).T
    fsca_table = np.array(fsca_list).T
    fdir_table = np.array(fdir_list).T
    fesc_table = np.array(fesc_list).T
    wvl = np.array(data['lambda'][0:25])
    self.wvl_grid = wvl
    tau_V_grid = np.array([0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0])
    tab = tabular_model(2, name='2D_table')
    gridpoints = (wvl, tau_V_grid)
    self.model = tab(gridpoints, lookup_table=tau_att_table, name='tau_att_WG00', bounds_error=False, fill_value=None, method='linear')
    self.tau = tab(gridpoints, lookup_table=tau_table, name='tau_WG00', bounds_error=False, fill_value=None, method='linear')
    self.fsca = tab(gridpoints, lookup_table=fsca_table, name='fsca_WG00', bounds_error=False, fill_value=None, method='linear')
    self.fdir = tab(gridpoints, lookup_table=fdir_table, name='fdir_WG00', bounds_error=False, fill_value=None, method='linear')
    self.fesc = tab(gridpoints, lookup_table=fesc_table, name='fesc_WG00', bounds_error=False, fill_value=None, method='linear')
    super(WG00, self).__init__(tau_V=tau_V)