isotopylog.kDistribution.invert_experiment

classmethod kDistribution.invert_experiment(he, model='HH21', fit_reg=False, **kwargs)

Classmethod for generating a kDistribution instance directly by inverting a ipl.HeatingExperiment object that contains clumped isotope heating experiment data.

Parameters:
  • he (isotopylog.HeatingExperiment) – The ipl.HeatingExperiment instance to fit.
  • model (string) –

    The type of model associated with a given kDistribution. Options are:

    'Hea14'

    'HH21'

    'PH12'

    'SE15'

    See the relevant documentation on each model fit function for details and descriptions of a given model:

    fit_PH12

    fit_Hea14

    fit_SE15

    fit_HH21

    fit_HH21inv

  • fit_reg (boolean) – Tells the function whether or not to find the regularized inverse solution in addition to the lognormal solution. This only applies if model = ‘HH21’.
Returns:

kd – The resutling ipl.kDistribution instance containing the fit parameters.

Return type:

isotopylog.kDistribution

Raises:
  • ValueError – If model is not an acceptable string.
  • TypeError – If model is not a string.

See also

isotopylog.fit_Hea14()
Fitting function for Henkes et al. (2014) model.
isotopylog.fit_HH21()
Fitting function for Hemingway and Henkes (2021) lognormal model.
isotopylog.fit_HH21inv()
Fitting function for Tikhonov regularization inversion model of Hemingway and Henkes (2021).
isotopylog.fit_PH12()
Fitting function for Passey and Henkes (2012) model.
isotopylog.fit_SE15()
Fitting function for Stolper and Eiler (2015) model.

Examples

Generating a kDistribution instance by fitting some experimental D47 data contained in a HeatingExperiment object:

#import packages
import isotopylog as ipl

#assume some he is a HeatingExperiment object
kd = ipl.kDistribution.invert_experiment(
        he,
        model = 'PH12',
        p0 = [-10., 0.5], #passing initial guess for model fit
        thresh = 1e-6 #passing threshold for linear region
        )

Same as above, but now including the Tikhonov regularization inverse fit for ‘HH21’ model type:

#assume some he is a HeatingExperiment object
kd = ipl.kDistribution.invert_experiment(
        he,
        model = 'HH21',
        fit_reg = True,
        omega = 'auto', #passing omega value for model fit
        nu_min = -30, #passing nu bounds
        nu_max = 10
        )

References

[1] Passey and Henkes (2012) Earth Planet. Sci. Lett., 351,
223–236.

[2] Henkes et al. (2014) Geochim. Cosmochim. Ac., 139, 362–382.

[3] Stolper and Eiler (2015) Am. J. Sci., 315, 363–411.

[4] Hemingway and Henkes (2021) Earth Planet. Sci. Lett., 566,