astropy:docs

kramers_kronig

omnifit.utils.kramers_kronig(freq, transmittance, m_substrate, d_ice, m0, freq_m0, m_guess=1.0+0.0j, tol=0.001, maxiter=100, ignore_fraction=0.1, force_kkint_unity=False, precalc=False)[source] [edit on github]

Kramers-Kronig relation. This is an implementation of the Kramers-Kronig relation calculation presented in Hudgins et al 1993 (1993ApJS...86..713H), with an improved integration method adapted from Trotta et al 1996 (The Cosmic Dust Connection, 1996 169-184)

Parameters:

wn : astropy.units.Quantity or numpy.ndarray

The frequency data of the input spectrum. If no units are given, this is assumed to be in reciprocal wavenumbers (cm^-1).

transmittance : astropy.units.Quantity or numpy.ndarray

The transmittance data of the input spectrum. This can be given in units other than transmittance, as long as they can be converted to transmittance by making use of the utils.equivalencies_absorption equivalency information. If no units are given, transmittance is assumed.

m_substrate : complex

The complex refractive index of the substrate on which the ice being studied was grown.

d_ice : astropy.units.Quantity or float

The thickness of the ice which is being studied. If no units are given, centimeters are assumed.

m0 : complex

The complex refractive index of the ice at the reference frequency defined by freq_m0 (see below).

freq_m0 : astropy.units.Quantity or float

The frequency at which the reference complex refractive index m0 (see above) is defined. Best results are usually achieved if this frequency is high compared to the frequency range being probed by the spectrum. If this is not defined as astropy.units.Quantity in spectroscopic units, it is assumed to be in reciprocal wavenumbers (cm^-1).

m_guess : complex or numpy.ndarray

The starting guess of the complex refractive index of the ice. This can either be a single number (in which case it is assumed to be this number throughout the entire spectrum) or an array

tol : float

The square-sum of the residual between the original transmittance and the transmittance modeled with the iterated complex refractive index of the ice must be below this value for the iteration to converge. In other words, the smaller this number is, the better the final result will be at the expense of extra iterations.

maxiter : int

The maximum number of iterations allowed. If this number is reached, the iteration is considered to not have converged, and an exception is raised.

ignore_fraction : float between 0 and 0.5

The edges of the spectrum are blanked out (and replaced with the non-blanked value closest to the edge) during iteration to avoid edge effects arising from the usage of a non-infinite integration range. This parameter controls how large of a fraction of the edges is blanked out.

force_kkint_unity : bool

The results of the Kramers-Kronig integration are responsible for determining the real part of the complex refractive index i.e. the one which represents refraction. Normally this number should not drop below unity, and unexpected behaviour can arise if it does. Usually this means that there is something wrong with the input parameters, but sometimes forcing the result to always be greater or equal to unity can help. It should be noted, however, that the accuracy of the results of an integration forced in this way are suspect at best.

precalc : bool

The Kramers-Kronig iteration can be a very computationally intensive operation. In some situations it may result in a faster iteration to pre-calculate the large denominator which is part of the Kramers-Kronig integration instead of computing new values of it in a for loop. This denominator can be, however, a very large variable as it contains a number of elements equal to the size of the spectrum squared. Pre-calculating this can outright fail on lower-end computers as Python runs out of available memory. High-end systems may benefit from such pre-calculation, though.

Returns:

A numpy.ndarray which contains the complex refractive index of the

ice, in order of increasing frequency.

Page Contents