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.
|