ReFRACtor
|
This class calculates the solar absorption spectrum. More...
#include <solar_absorption_gfit_file.h>
Public Member Functions | |
SolarAbsorptionGfitFile (const std::string &Line_list_file, double Fraction_solar_diameter=1.0) | |
Read the given line list file, and use for calculating the solar absorption spectrum. More... | |
virtual | ~SolarAbsorptionGfitFile () |
double | fraction_solar_diameter () const |
Fraction of solar diameter that we view. More... | |
virtual void | print (std::ostream &Os) const |
Print description of object. More... | |
std::string | print_to_string () const |
Print to string. More... | |
virtual Spectrum | solar_absorption_spectrum (const SpectralDomain &spec_domain) const |
This calculates the solar absorption spectrum. More... | |
This class calculates the solar absorption spectrum.
This particular implementation reads the GFIT format absorption line list file. This is a fixed record file format that gives the absorption line list data.
From the Fortran code:
Calculates the solar optical thickness spectrum (SOT) at any wavelengths.
Taking the exponential of SOT produces the solar spectrum as it would be observed at infinite spectral resolution.
All solar lines are assumed to have a shape of the form
where
In the doppler limit, i.e.
In the far line wing limit, i.e. ,
So near the line center, the lineshape is Doppler, but in the line wings it decays exponentially (if y>0).
This choice of lineshape has no physical basis. It just seems to give a reasonable representation is nearly all cases. The only cases in which this lineshape does not give an adequate representation of the absorption are the extremely broad lines of light atmos such as H (atomic hydrogen) or Mg. However, by representing the H absorptions as superpositions of two lines, one narrow and the other broad, adequate results were obtained.
Molecular absorptions (e.g. CO, OH, NH, CN) tend to have narrow, Doppler lineshapes because they are confined to a relatively narrow layer in the cooler, upper, part of the solar atmosphere. In the hotter depths they are dissociated.
Atomic transitions, on the other hand, are formed over a much wider range of solar altitudes, and hence temperatures. This gives rise to line shapes whose wings decay in an approximately exponential manner with the distance from line center. The line shape of equation (1) does a reasonable job in both cases.
This subroutine also makes allowances for the effect of the finite FOV of the observing instrument, which gives rise to:
Definition at line 81 of file solar_absorption_gfit_file.h.
SolarAbsorptionGfitFile::SolarAbsorptionGfitFile | ( | const std::string & | Line_list_file, |
double | Fraction_solar_diameter = 1.0 |
||
) |
Read the given line list file, and use for calculating the solar absorption spectrum.
Line_list_file | Line list file |
Fraction_solar_diameter | Fraction of Solar diameter viewed. |
Definition at line 27 of file solar_absorption_gfit_file.cc.
|
inlinevirtual |
Definition at line 85 of file solar_absorption_gfit_file.h.
|
inline |
Fraction of solar diameter that we view.
Definition at line 93 of file solar_absorption_gfit_file.h.
|
virtual |
Print description of object.
Reimplemented from FullPhysics::SolarAbsorptionSpectrum.
Definition at line 37 of file solar_absorption_gfit_file.cc.
|
inlineinherited |
Print to string.
This is primarily useful for SWIG wrappers to this class, e.g. a to_s method in ruby.
Definition at line 31 of file printable.h.
|
virtual |
This calculates the solar absorption spectrum.
Spec_domain | Wavenumber/Wavelength to return solar absorption spectrum for. |
Note that the spectral domain here is in the solar rest frame, not the earth rest frame used in most other places. The class SolarAbsorptionAndContinuum handles this conversion internally.
Implements FullPhysics::SolarAbsorptionSpectrum.
Definition at line 44 of file solar_absorption_gfit_file.cc.