petitRADTRANS.retrieval.retrieval_config

Module Contents

Classes

RetrievalConfig

The RetrievalConfig class contains all of the data and model level information necessary

class petitRADTRANS.retrieval.retrieval_config.RetrievalConfig(retrieval_name='retrieval_name', run_mode='retrieval', AMR=False, scattering=False, pressures=None, write_out_spec_sample=False)

The RetrievalConfig class contains all of the data and model level information necessary to run a petitRADTRANS retrieval. The name of the class will be used to name outputs. This class is passed to the Retrieval, which runs the actual pymultinest retrieval and produces the outputs.

The general usage of this class is to define it, add the parameters and their priors, add the opacity sources, the data together with a model for each dataset, and then configure a few plotting arguments.

Args:
retrieval_namestr

Name of this retrieval. Make it informative so that you can keep track of the outputs!

run_modestr

Can be either ‘retrieval’, which runs the retrieval normally using pymultinest, or ‘evaluate’, which produces plots from the best fit parameters stored in the output post_equal_weights file.

AMRbool

Use an adaptive high resolution pressure grid around the location of cloud condensation. This will increase the size of the pressure grid by a constant factor that can be adjusted in the setup_pres function.

scatteringbool

If using emission spectra, turn scattering on or off.

pressuresnumpy.array

A log-spaced array of pressures over which to retrieve. 100 points is standard, between 10^-6 and 10^3.

_plot_defaults(self)
_setup_pres(self, scaling=10, width=3)

This converts the standard pressure grid into the correct length for the AMR pressure grid. The scaling adjusts the resolution of the high resolution grid, while the width determines the size of the high pressure region. This function is automatically called in Retrieval.setupData().

Args:
scalingint

A multiplicative factor that determines the size of the full high resolution pressure grid, which will have length self.p_global.shape[0] * scaling.

widthint

The number of cells in the low pressure grid to replace with the high resolution grid.

add_parameter(self, name, free, value=None, transform_prior_cube_coordinate=None)

This function adds a Parameter (see parameter.py) to the dictionary of parameters. A Parameter has a name and a boolean parameter to set whether it is a free or fixed parameter during the retrieval. In addition, a value can be set, or a prior function can be given that transforms a random variable in [0,1] to the physical dimensions of the Parameter.

Args:
namestr

The name of the parameter. Must match the name used in the model function for the retrieval.

freebool

True if the parameter is a free parameter in the retrieval, false if it is fixed.

valuefloat

The value of the parameter in the units used by the model function.

transform_prior_cube_coordinatemethod

A function that transforms the unit interval to the physical units of the parameter. Typically given as a lambda function.

list_available_line_species(self)

List the currently installed opacity tables that are available for species that contribute to the line opacity.

list_available_cloud_species(self)

List the currently installed opacity tables that are available for cloud species.

list_available_cia_species(self)

List the currently installed opacity tables that are available for CIA species.

set_line_species(self, linelist, eq=False, abund_lim=(- 6.0, 6.0))

Set RadTrans.line_species

This function adds a list of species to the pRT object that will define the line opacities of the model. The values in the list are strings, with the names matching the pRT opacity names, which vary between the c-k line opacities and the line-by-line opacities.

Args:
linelistList(str)

The list of species to include in the retrieval

eqbool

If false, the retrieval should use free chemistry, and Parameters for the abundance of each species in the linelist will be added to the retrieval. Otherwise equilibrium chemistry will be used. If you need fine control species, use the add_line_species and set up each species individually.

abund_limTuple(float,float)

If free is True, this sets the boundaries of the uniform prior that will be applied for each species in linelist. The range of the prior goes from abund_lim[0] to abund_lim[0] + abund_lim[1]. The abundance limits must be given in log10 units of the mass fraction.

set_rayleigh_species(self, linelist)

Set the list of species that contribute to the rayleigh scattering in the pRT object.

Args:
linelistList(str)

A list of species that contribute to the rayleigh opacity.

set_continuum_opacities(self, linelist)

Set the list of species that contribute to the continuum opacity in the pRT object.

Args:
linelistList(str)

A list of species that contribute to the continuum opacity.

add_line_species(self, species, eq=False, abund_lim=(- 8.0, 7.0), fixed_abund=None)

This function adds a single species to the pRT object that will define the line opacities of the model. The name must match the pRT opacity name, which vary between the c-k line opacities and the line-by-line opacities.

Args:
speciesstr

The species to include in the retrieval

eqbool

If False, the retrieval should use free chemistry, and Parameters for the abundance of the species will be added to the retrieval. Otherwise (dis)equilibrium chemistry will be used.

abund_limTuple(float,float)

If free is True, this sets the boundaries of the uniform prior that will be applied the species given. The range of the prior goes from abund_lim[0] to abund_lim[0] + abund_lim[1]. The abundance limits must be given in log10 units of the mass fraction.

fixed_abundfloat

The log-mass fraction abundance of the species. Currently only supports vertically constant abundances. If this is set, then the species will not be a free parameter in the retrieval.

remove_species_lines(self, species, free=False)

This function removes a species from the pRT line list, and if using a free chemistry retrieval, removes the associated Parameter of the species.

Args:
speciesstr

The species to remove from the retrieval

freebool

If true, the retrieval should use free chemistry, and Parameters for the abundance of the species will be removed to the retrieval

add_cloud_species(self, species, eq=True, abund_lim=(- 3.5, 4.5), PBase_lim=(- 5.0, 7.0), fixed_abund=None, fixed_base=None)

This function adds a single cloud species to the list of species. Optionally, it will add parameters to allow for a retrieval using an ackermann-marley model. If an equilibrium condensation model is used in th retrieval model function (eq=True), then a parameter is added that scales the equilibrium cloud abundance, as in Molliere (2020). If eq is false, two parameters are added, the cloud abundnace and the cloud base pressure. The limits set the prior ranges, both on a log scale.

Args:
speciesstr

Name of the pRT cloud species, including the cloud shape tag.

eqbool

Does the retrieval model use an equilibrium cloud model. This restricts the available species!

abund_limtuple(float,float)

If eq is True, this sets the scaling factor for the equilibrium condensate abundance, typical range would be (-3,0). If eq is false, this sets the the range on the actual cloud abundance, with a typical range being (-5,7). Note that the upper limit is set from abund_lim[0] + abund_lim[1].

PBase_limtuple(float,float)

Only used if not using an equilibrium model. Sets the limits on teh log of the cloud base pressure. Obsolete.

fixed_abundOptional(float)

A vertically constant log mass fraction abundance for the cloud species. If set, this will not be a free parameter in the retrieval. Only compatible with non-equilibrium clouds.

fixed_baseOptional(float)

The log cloud base pressure. If set, fixes this parameter to a constant value, and it will not be a free parameter in the retrieval. Only compatible with non-equilibrium clouds. Not yet compatible with most built in pRT models.

add_data(self, name, path, model_generating_function, data_resolution=None, model_resolution=None, distance=None, scale=False, wlen_range_micron=None, external_pRT_reference=None, opacity_mode='c-k')

Create a Data class object.

Args:
namestr

Identifier for this data set.

pathstr

Path to observations file, including filename. This can be a txt or dat file containing the wavelength, flux, transit depth and error, or a fits file containing the wavelength, spectrum and covariance matrix.

model_generating_functionfnc

A function, typically defined in run_definition.py that returns the model wavelength and spectrum (emission or transmission). This is the function that contains the physics of the model, and calls pRT in order to compute the spectrum.

data_resolutionfloat

Spectral resolution of the instrument. Optional, allows convolution of model to instrumental line width.

model_resolutionfloat

Spectral resolution of the model, allowing for low resolution correlated k tables from exo-k.

distancefloat

The distance to the object in cgs units. Defaults to a 10pc normalized distance. All data must be scaled to the same distance before running the retrieval, which can be done using the scale_to_distance method in the Data class.

scalebool

Turn on or off scaling the data by a constant factor.

wlen_range_micronTuple

A pair of wavelenths in units of micron that determine the lower and upper boundaries of the model computation.

external_pRT_referencestr

The name of an existing Data object. This object’s pRT_object will be used to calculate the chi squared of the new Data object. This is useful when two datasets overlap, as only one model computation is required to compute the log likelihood of both datasets.

opacity_modestr

Should the retrieval be run using correlated-k opacities (default, ‘c-k’), or line by line (‘lbl’) opacities? If ‘lbl’ is selected, it is HIGHLY recommended to set the model_resolution parameter. In general, ‘c-k’ mode is recommended for retrievals of everything other than high-resolution (R>40000) spectra.

add_photometry(self, path, model_generating_function, model_resolution=10, distance=None, scale=False, wlen_range_micron=None, photometric_transformation_function=None, external_pRT_reference=None, opacity_mode='c-k')

Create a Data class object for each photometric point in a photometry file. The photometry file must be a csv file and have the following structure: name, lower wavelength bound [um], upper wavelength boundary[um], flux [W/m2/micron], flux error [W/m2/micron]

Photometric data requires a transformation function to conver a spectrum into synthetic photometry. You must provide this function yourself, or have the species package installed. If using species, the name in the data file must be of the format instrument/filter.

Args:
namestr

Identifier for this data set.

pathstr

Path to observations file, including filename.

model_resolutionfloat

Spectral resolution of the model, allowing for low resolution correlated k tables from exo-k.

scalebool

Turn on or off scaling the data by a constant factor. Currently only set up to scale all photometric data in a given file.

distancefloat

The distance to the object in cgs units. Defaults to a 10pc normalized distance. All data must be scaled to the same distance before running the retrieval, which can be done using the scale_to_distance method in the Data class.

wlen_range_micronTuple

A pair of wavelenths in units of micron that determine the lower and upper boundaries of the model computation.

external_pRT_referencestr

The name of an existing Data object. This object’s pRT_object will be used to calculate the chi squared of the new Data object. This is useful when two datasets overlap, as only one model computation is required to compute the log likelihood of both datasets.

photometric_transformation_functionmethod

A function that will transform a spectrum into an average synthetic photometric point, typicall accounting for filter transmission.