skretrieval.retrieval package

Submodules

skretrieval.retrieval.airdensity module

class skretrieval.retrieval.airdensity.AirDensityRetrieval(air_species: sasktran.species.Species, ret_wavel=350, high_alt_normalize=False, tikh_factor=1)

Bases: skretrieval.retrieval.RetrievalTarget

Limb retrieval for air number density. Radiances should be supplied in the RadianceGridded format.

apriori_state()
Returns

Apriori state vector, x_a. If no apriori is used return None

Return type

np.array

inverse_apriori_covariance()
Returns

Inverse of the apriori covariance matrix. If no apriori is used return None.

Return type

np.array

measurement_vector(l1_data: skretrieval.core.radianceformat.RadianceBase)

The measurement vector is the logarithm of radiance at ret_wavel

state_vector()

State vector is the logarithm of air number density

temperature(hires_spacing=100, T0=200, earth_radius=6372000)

Integrates the air number density using hydrostatic balance and the ideal gas law.

Parameters
  • hires_spacing (float, optional) – Internal high resolution spacing to use for the integral. Default 100 m

  • T0 (float, optional) – Upper altitude pin temperature, this is at self._retrieval_altitudes[-1]. Default 200 K

  • earth_radius (float, optional) – Earth radius in m, necessary to approximate gravity. Default 6372000

Returns

Temperature in K on self._retrieval_altitudes

Return type

np.array

update_state(x: numpy.ndarray)

Updates the state for the new state vector. Note that this change has to propagate backwards to the ForwardModel somehow. Typically this is done by passing a climatology into the RetrievalTarget at initiliazation which is used in the ForwardModel.

Parameters

x (np.array) – New state vector

skretrieval.retrieval.ozone module

class skretrieval.retrieval.ozone.OzoneRetrieval(ozone_species: sasktran.species.Species)

Bases: skretrieval.retrieval.RetrievalTarget

apriori_state()
Returns

Apriori state vector, x_a. If no apriori is used return None

Return type

np.array

inverse_apriori_covariance()
Returns

Inverse of the apriori covariance matrix. If no apriori is used return None.

Return type

np.array

measurement_vector(l1_data: skretrieval.core.radianceformat.RadianceBase)
Parameters

l1_data (RadianceBase) – Radiance data. Usually this is an instrument specific instance of RadianceBase, and the RetrievalTarget only works with specific formats.

Returns

Keys ‘y’ for the measurement vector, ‘jacobian’ for the jacobian of the measurement vector (if weighting functions are in l1_data, ‘y_error’ the covariance of ‘y’ (if error information is provided in l1_data)

Return type

dict

state_vector()
Returns

The state vector, x

Return type

np.array

update_state(x: numpy.ndarray)

Updates the state for the new state vector. Note that this change has to propagate backwards to the ForwardModel somehow. Typically this is done by passing a climatology into the RetrievalTarget at initiliazation which is used in the ForwardModel.

Parameters

x (np.array) – New state vector

skretrieval.retrieval.rodgers module

class skretrieval.retrieval.rodgers.Rodgers(max_iter=10, lm_damping=0, iterative_update_lm=False, retreat_lm=False, lm_change_factor=1.5, convergence_factor=1)

Bases: skretrieval.retrieval.Minimizer

retrieve(measurement_l1, forward_model: skretrieval.retrieval.ForwardModel, retrieval_target: skretrieval.retrieval.RetrievalTarget)
Parameters
  • measurement_l1 (RadianceBase) – The data we are trying to match, either from a real instrument or simulations.

  • forward_model (ForwardModel) – A model for the data in measurement_l1

  • retrieval_target (RetrievalTarget) – What we are trying to retrieve

Returns

Various parameters specific to the minimizer

Return type

dict

skretrieval.retrieval.tikhonov module

skretrieval.retrieval.tikhonov.two_dim_horizontal_second_deriv(numangle, numalt, factor=1, sparse=False)

Calculates the second derivatvie Tikhonov regularization matrix for a two dimensional uniform grid. The matrix is calculated assuming that the measurement vector is constructed with altitude being the leading dimension

Parameters
  • numangle (scalar) – The number of angular grid points

  • numalt (scalar) – The number of altitude grid points

  • factor (scalar or vector length numangle, optional) – If scalar, the resulting matrix is multiplied by this value. If a vector of length numangle, then each angular level is multiplied by the corresponding value. Default is 1

skretrieval.retrieval.tikhonov.two_dim_vertical_first_deriv(numangle, numalt, factor=1, sparse=False)

Calculates the first derivatvie Tikhonov regularization matrix for a two dimensional uniform grid. The matrix is calculated assuming that the measurement vector is constructed with altitude being the leading dimension

Parameters
  • numangle (scalar) – The number of angular grid points

  • numalt (scalar) – The number of altitude grid points

  • factor (scalar or length numalt, optional) – If scalar, the resulting matrix is multiplied by this value. If a vector of length numalt, then each altitude level is multiplied by its corresponding factor. Default is 1

skretrieval.retrieval.tikhonov.two_dim_vertical_second_deriv(numangle, numalt, factor=1, sparse=False)

Calculates the second derivatvie Tikhonov regularization matrix for a two dimensional uniform grid. The matrix is calculated assuming that the measurement vector is constructed with altitude being the leading dimension

Parameters
  • numangle (scalar) – The number of angular grid points

  • numalt (scalar) – The number of altitude grid points

  • factor (scalar or length numalt, optional) – If scalar, the resulting matrix is multiplied by this value. If a vector of length numalt, then each altitude level is multiplied by its corresponding factor. Default is 1

Module contents

class skretrieval.retrieval.ForwardModel

Bases: abc.ABC

A ForwardModel is an object which is capable of calculating a radiance. This serves as the primary interface to the retrieval, along with the RetrievalTarget.

abstract calculate_radiance()
class skretrieval.retrieval.Minimizer

Bases: abc.ABC

A class which performs minimization between some aspect of measurement level1 data and the forward model simulations.

abstract retrieve(measurement_l1: skretrieval.core.radianceformat.RadianceBase, forward_model: skretrieval.retrieval.ForwardModel, retrieval_target: skretrieval.retrieval.RetrievalTarget)
Parameters
  • measurement_l1 (RadianceBase) – The data we are trying to match, either from a real instrument or simulations.

  • forward_model (ForwardModel) – A model for the data in measurement_l1

  • retrieval_target (RetrievalTarget) – What we are trying to retrieve

Returns

Various parameters specific to the minimizer

Return type

dict

class skretrieval.retrieval.RetrievalTarget

Bases: abc.ABC

The retrieval target defines the parameter that is to be retrieved, and also what measurements are going to be used to retrieve it. Notation is similar to that of Rodgers.

adjust_parameters(forward_model, y_dict, chi_sq, chi_sq_linear, iter_idx, predicted_delta_y)
abstract apriori_state()numpy.array
Returns

Apriori state vector, x_a. If no apriori is used return None

Return type

np.array

abstract inverse_apriori_covariance()
Returns

Inverse of the apriori covariance matrix. If no apriori is used return None.

Return type

np.array

abstract measurement_vector(l1_data: skretrieval.core.radianceformat.RadianceBase)
Parameters

l1_data (RadianceBase) – Radiance data. Usually this is an instrument specific instance of RadianceBase, and the RetrievalTarget only works with specific formats.

Returns

Keys ‘y’ for the measurement vector, ‘jacobian’ for the jacobian of the measurement vector (if weighting functions are in l1_data, ‘y_error’ the covariance of ‘y’ (if error information is provided in l1_data)

Return type

dict

static measurement_vector_allowed_to_change()
Returns

True if the measurement_vector may change shape between iterations, False otherwise.

Return type

bool

abstract state_vector()
Returns

The state vector, x

Return type

np.array

static state_vector_allowed_to_change()
Returns

True if the state vector/apriori may change shape between iterations, False otherwise.

Return type

bool

abstract update_state(x: numpy.ndarray)

Updates the state for the new state vector. Note that this change has to propagate backwards to the ForwardModel somehow. Typically this is done by passing a climatology into the RetrievalTarget at initiliazation which is used in the ForwardModel.

Parameters

x (np.array) – New state vector