MartInverter#

class ctis.inverters.MartInverter(instrument, gamma=None, threshold_convergence=0.001, *, num_iteration=100, intermediate=False)[source]#

Bases: AbstractIterativeInverter

An inversion routine based on the multiplicative algebraic reconstruction technique (MART) Gordon et al. [1970].

For further information, see the discussion Multiplicative Algebraic Reconstruction Technique (MART).

Attributes

axis_iteration

The logical axis associated with changing iteration index.

gamma

Learning rate, \(\gamma\).

instrument

A model of a CTIS instrument which transforms the radiance of an observed scene to photons measured by the sensors.

intermediate

Whether to save intermediate solutions.

num_iteration

The maximum number of iterations to perform.

threshold_convergence

The convergence threshold, \(T\), which halts the iteration.

Methods

__init__(instrument[, gamma, ...])

correlation_residual(images_observed, ...)

Evaluate the correlation between the predicted images and the residual.

mean_chi_squared(images_observed, ...)

Evaluate \(\langle \chi^2 \rangle\) for each observed/predicted image pair.

Inheritance Diagram

Inheritance diagram of ctis.inverters.MartInverter
Parameters:
correlation_residual(images_observed, images_predicted)#

Evaluate the correlation between the predicted images and the residual.

Parameters:
  • images_observed (ScalarArray) – The actual measured images.

  • images_predicted (ScalarArray) – The images predicted by the inversion.

Return type:

ScalarArray

mean_chi_squared(images_observed, images_predicted)#

Evaluate \(\langle \chi^2 \rangle\) for each observed/predicted image pair.

Parameters:
  • images_observed (ScalarArray) – The actual measured images.

  • images_predicted (ScalarArray) – The images predicted by the inversion.

Return type:

ScalarArray

axis_iteration: ClassVar[str] = 'iteration'#

The logical axis associated with changing iteration index.

gamma: None | float = None#

Learning rate, \(\gamma\).

At every iteration, the current correction, \(C\), is replaced by \(C^\gamma\).

If None, \(\gamma = 2 / N\), where \(N\) is the number of channels.

instrument: AbstractInstrument = <dataclasses._MISSING_TYPE object>#

A model of a CTIS instrument which transforms the radiance of an observed scene to photons measured by the sensors.

intermediate: bool = False#

Whether to save intermediate solutions.

This is set to False during normal operation, but can be useful for debugging or demonstration purposes.

num_iteration: int = 100#

The maximum number of iterations to perform.

If convergence is not reached before this number is exceeded, a warning is raised and an unsuccessful result is returned.

threshold_convergence: float = 0.001#

The convergence threshold, \(T\), which halts the iteration.

If \(\langle \chi_{i-1}^2 \rangle - \langle \chi_{i}^2 \rangle < T\), then the algorithm is considered to be converged.