TauREx Nest_Out.pickle
Overview
The nest_out.pickle
file is generated whenever a retrieval is run. It contains the following:
- all state parameters,
- all user defined input data (e.g. the observed spectrum),
- the best fit model/s (inc. confidence bounds),
- the temperature-pressure profile (inc. confidence bounds),
- vertical abundance profiles,
- transmissivity / emissivity as function of pressure,
- the best fit model/s relative opacity contributions,
- the full MultiNest trace,
- all MultiNest statistics,
- the full PolyChord trace (if run),
- the full PolyChord statistics (if run),
How to load it for inspection
To open the pickle file you will need python installed in your computer and the packages pickle
and numpy
.
When in a python terminal, the command to load a pickle file is:
database = pickle.load(open(‘database_file.pickle’))
to list the content of a dictionary:
database.keys()
The Dictionary layout
Here we describe the individual arrays of the database and nested sub-dictionaries.
Top Level
database.keys()
keyword | Description | Type |
---|---|---|
global_logE | global log-evidence as returned by MultiNest | float |
fit_params_texlabels | fitted parameters, formatted to be rendered in TeX by python plotting routines | list |
NEST_stats | MultiNest statistics | Dictionary |
fit_params_bounds | upper and lower bounds of fitted parameters | tuples |
obs_spectrum | input spectrum | array |
solutions | retrieved solution(s) | list of dictionaries |
params | all input parameters used to run TauREx | dictionary |
type | type of retrieval. Either ‘transmission’ or ‘emission’ | ascii |
fit_params_names | fitted parameters | list of ascii |
NEST_stats
NEST_stats is generated by PyMultiNest and contains a full statistical summary of the retrieval. Some values are repeated in database[‘solutions’]
.
database['NEST_stats'].keys()
keyword | Description | Type |
---|---|---|
global evidence | global log-evidence of final retrieval | float |
global evidence error | global log-evidence error | float |
nested sampling global log-evidence | global log-evidence provided by the nested sampling. This differs from ‘global evidence’ if importance sampling is switched on. | float |
nested sampling global evidence error | nested sampling global log-evidence error | float |
marginals | marginals for each retrieved parameter provided by PyMultiNest. | list |
modes | sub-dictionary summarising statistics for each retrieved solution | list of dictionaries |
database['NEST_stats']['modes'].keys()
keyword | Description | Type |
---|---|---|
index | index of solution | int |
local log-evidence | local log-evidence of solution | float |
local log-evidence error | local log-evidence error | float |
strictly local log-evidence | strictly local logE | float |
strictly local log-evidence error | strictly local logE error | float |
maximum | maximum likelihood values of fitted parameters | list |
maximum a posteriori | maximum a posteriori values for fitted parameters | list |
sigma | 1 sigma errors on fitted parameters | list |
mean | mean values of fitted parameters | list |
database['NEST_stats']['marginals'].keys()
keyword | Description | Type | |
---|---|---|---|
marginals | marginals for parameter index PIDX | list | |
marginals[PIDX] | 1sigma | 1 sigma asymmetric error bounds | array |
marginals[PIDX] | 2sigma | 2 sigma asymmetric error bounds | array |
marginals[PIDX] | 3sigma | 3 sigma asymmetric error bounds | array |
marginals[PIDX] | 5sigma | 5 sigma asymmetric error bounds | array |
marginals[PIDX] | median | solution median | array |
marginals[PIDX] | q01% | 1 percent quantile | array |
marginals[PIDX] | q10% | 10 percent quantile | array |
marginals[PIDX] | q25% | 25 percent quantile | array |
marginals[PIDX] | q75% | 75 percent quantile | array |
marginals[PIDX] | q90% | 90 percent quantile | array |
marginals[PIDX] | q99% | 99 percent quantile | array |
marginals[PIDX] | sigma | 1 sigma symmetric error bounds | array |
Solutions
The solutions
sub-dictionary contains all retrieval results for each retrieved solution (SIDX).
database['solutions'][SIDX].keys()
keyword | Description | Type |
---|---|---|
local_logE | local log-evidence of the solution | float |
type | type of sampling used: ‘nest’ (multinest), ‘mcmc’ or ‘downhill’ (optimal estimation) | ascii |
fit_params | sub-dictionary of fitting statistics for each free parameter | list of dictionaries |
tp_profile | temperature – pressure profile of atmosphere. Format: pressure (Pa), temperature (K), sigma(temperature) (K) | array |
obs_spectrum | best fitting forward model binned to the resolution of the input spectrum. Format: wavelength (microns), (Rp/Rs)2 or Fp/Fs | array |
opacity_contrib | sub-dictionary of forward models containing individual opacities only, e.g.: [‘CO’] contains the best fitting forward model but with all other contributions but CO switched off. | dictionary |
active_mixratio_profile | array of mixing ratios of spectroscopically active gases as function of atmospheric pressure. These profiles are constant for ‘free’ retrievals but vary for chemically consistent retrievals. The pressure grid is identical to [‘tp_profile’] | array |
inactive_mixratio_profile | same as [‘active_mixratio_profile’] but for spectroscopic inactive species such as H2, He, N2 | array |
weights | statistical weights from the nested_sampling. To be multiplied with tracedata to obtain the correct normalised posterior probabilities | array |
tracedata | parameter traces to be weighted with [‘weights’]. | array |
contrib_func | 2D array of atmospheric opacity contribution as function of wavelength (row) and pressure (column). | array |
fit_spectrum_xsecres | best fitting forward model at the native resolution of the used cross sections or ktables. Format: wavelength (microns), signal, sigma(signal). Here signal is (Rp/Rs)2 or Fp/Fs depending on transmission or emission. | array |
For individual fitted paramters, e.g. H2O:
database['solutions'][SIDX]['log_H2O'].keys()
keyword | Description | Type |
---|---|---|
nest_map | maximum a posteriori value | float |
nest_mean | mean posterior value | float |
nest_sigma | 1 sigma error | float |
sigma_m | q50% - q16% (lower error bound based on quantiles) | array |
sigma_p | q84% - q50% (upper error bound based on quantiles) | array |
trace | nested sampling trace of parameter (unweighted) | array |
value | q50% mid quantile | float |
For individual contribution functions, e.g. CO:
database['solutions'][SIDX]['opacity_contrib'].keys()
keyword | Description | Type |
---|---|---|
CO | data format: wavelength (microns), (Rp/Rs)2 or Fp/Fs | array |
Create Spectrum Instance
When running the forward model only mode create_spectrum.py
with the additional flag --save_instance
, a similar pickle file is generated in the chosen output folder, SPECTRUM_INSTANCE_out.pickle
. This one will contain all elements that went into the creation of the forward model but obviously does not contain fitted parameters.
python create_spectrum.py -p [PARAMETER FILE] --save_instance
The following additional flags can be set:
--instance_filename #changes the instance name
--transmittance #saves transmittance for transmission to instance object
--contrib_func #saves the contribution function for emission to instance object
For more information
python create_spectrum.py --help