exo_k.ciadatabase
@author: jeremy leconte
Module containing a class to handle a database of CIA tables to compute opacities with it.
Module Contents
- class exo_k.ciadatabase.CIAdatabase(*str_filters, filenames=None, molecule_pairs=None, molecules=None, remove_zeros=True, **kwargs)[source]
Bases:
exo_k.util.spectral_object.Spectral_object
Class to group
Cia_table
objects and combine them in radiative transferInitializes cia tables and supporting data. The files to load can be specified either using (in order of precedence) a list of filenames, molecule pairs, or molecules. See below for details.
Any number of filters (strings) can be provided to refine the search to files whose names contain the filters.
- Parameters:
filenames (
list
, optional) – List of names (not full path) of the input cia files. The files must be in the global search path.molecule_pairs (
list
ofsize 2 lists
, optional) – List of the molecule pairs we want to consider, specified as an array with two strings (like [‘H2’,’H2’] or [‘N2’,’H2O’]). The order of the molecules in the pair is irrelevant.molecules (
list
ofstrings
, optional) – A list of all the molecules we want to consider. Exo_k will look for all the possible pairs for which a cia file is found.
The default path searched is set with
exo_k.settings.Settings.set_cia_search_path()
oradd_cia_search_path()
. A local search path can be specified with the search_path keyword.See the options of
Cia_table
__init__ method.- cia_tables
- abs_coeff_unit = None
- add_cia_tables(*cia_tables)[source]
Adds new
Cia_table
objects to a CIA database (inplace).- Parameters:
cia_tables (
Cia_table
) – As many cia tables as you want.
- copy()[source]
Creates a new instance of
CIAdatabase
object and (deep) copies data into it
- sample(wngrid, remove_zeros=False, use_grid_filter=False)[source]
Samples all the cia_table in the database on the same wavenumber grid to be able to use them in radiative transfer modules (inplace).
- Parameters:
wngrid (
array
,np.ndarray
) – new wavenumber grid (cm-1)
See also
See
func:`exo_k.cia_table.Cia_table.sample for further details on options.
- cia_cross_section(logP_array, T_array, gas_comp, wngrid_limit=None, Nw=None)[source]
Computes the absorption coefficient in m^-1 for the whole mix specified (assumes data in MKS).
- Parameters:
logP_array (
array
,np.ndarray
)T_array (
array
,np.ndarray
) – log10 Pressure (Pa) and temperature profilesgas_comp (
Gas_mix
object) – behaves like a dict with mol names as keys and vmr as values.wngrid_limit (
array
,np.ndarray
, optional) – Smaller and bigger wavenumbers inside which to perform the calculation.Nw (
int
) – Number of wavenumber points of the table to output for the specific case where there would not be any active cia gas and wngrid_limit would not be None.
- Returns:
- array:
The cia effective cross section coefficient profile for the whole gas (in m^2).
- cia_cross_section_grid(logP_array, T_array, gas_comp, wngrid_limit=None, Nw=None)[source]
Computes the absorption coefficient in m^-1 for the whole mix specified (assumes data in MKS).
- Parameters:
logP_array (
1d array
)T_array (
1d array
) – log10 Pressure (Pa) and temperature gridsgas_comp (
Gas_mix
object) – behaves like a dict with mol names as keys and vmr as values.wngrid_limit (
array
,np.ndarray
, optional) – Smaller and bigger wavenumbers inside which to perform the calculation.Nw (
int
) – Number of wavenumber points of the table to output for the specific case where there would not be any active cia gas and wngrid_limit would not be None.
- Returns:
- array:
The cia effective cross section coefficient profile for the whole gas (in m^2).