Line-of-sight moduleΒΆ
This module takes several Spectrum
objects as an input
and combines then along the line-of-sight (SerialSlabs()
)
or at the same spatial position (MergeSlabs()
), to reproduce
line-of-sight experiments
How to combine slabs?ΒΆ
Along the line-of-sightΒΆ
Use the SerialSlabs()
function:
s1 = calc_spectrum(...)
s2 = calc_spectrum(...)
s3 = SerialSlabs(s1, s2)
You can also use the >
operator. The previous line
is equivalent to:
s3 = s1 > s2
At the same spatial positionΒΆ
Use the MergeSlabs()
function:
Merge two spectra calculated with different species (true only if broadening coefficient dont change much):
from radis import calc_spectrum, MergeSlabs
s1 = calc_spectrum(...)
s2 = calc_spectrum(...)
s3 = MergeSlabs(s1, s2)
You can also use the //
operator. The previous line
is equivalent to:
s3 = s1 // s2
Calculate a large spectrum by part
Practical ExamplesΒΆ
Below are some practical examples of the use of the Line-of-sight module:
Build a large spectrumΒΆ
If you want to calculate a spectrum on a very large spectral range which
cannot be handled in memory at once, you can calculate partial, non-overlapping
spectral ranges and use MergeSlabs()
to combine them.
In that case, we tell MergeSlabs()
to use the full
spectral range and that the partial spectra are transparent outside of their
definition range:
from radis import load_spec, MergeSlabs
spectra = []
for f in ['spec1.spec', 'spec2.spec', ...]: # precomputed spectra
spectra.append(load_spec(f))
s = MergeSlabs(*spectra, resample='full', out='transparent')
s.plot()
Get the contribution of each slab along the LOSΒΆ
Letβs say you have a total line of sight:
s_los = s1 > s2 > s3
If you want to get the contribution of s2
to the line-of-sight emission,
you need to discard the emission of s3
but take into account its absorption.
This is done using the PerfectAbsorber()
function, which returns a new Spectrum with all the emission features set to 0:
from radis import PerfectAbsorber
(s2 > PerfectAbsorber(s3)).plot('radiance_noslit')
And the contribution of s1
would be:
(s1 > PerfectAbsorber(s2>s3)).plot('radiance_noslit')