8 .def(luabind::constructor<const DoubleWithUnit&, const DoubleWithUnit&,bool>())
28 bool Apply_doppler_shift
30 : solar_distance_(Solar_distance),
31 solar_relative_velocity_(Solar_relative_velocity),
32 apply_doppler_shift_(Apply_doppler_shift)
34 doppler_shift_ = (solar_relative_velocity_ /
44 Os <<
"SolarDopplerShiftL1b\n" 46 <<
" Doppler shift: " << doppler_shift_ <<
"\n" 47 <<
" Apply Doppler: " << (apply_doppler_shift_ ?
"true" :
"false");
54 if(apply_doppler_shift_) {
59 (1 + doppler_shift_)),
63 (1 + doppler_shift_)),
For different instruments, it is more natural to either work with wavenumbers (e.g., GOSAT) or wavelength (e.g., OCO).
const Unit dimensionless("dimensionless", 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
#define REGISTER_LUA_DERIVED_CLASS(X, Y)
SolarDopplerShiftL1b(const DoubleWithUnit &Solar_distance, const DoubleWithUnit &Solar_relative_velocity, bool Apply_doppler_shift=true)
Create a SolarDopplerShiftL1b.
virtual SpectralDomain doppler_stretch(const SpectralDomain &Spec_domain) const
Shift wavenumbers to account for doppler stretch.
Apply value function to a blitz array.
This class handles the solar Doppler stretch to calculate the shift of the solar lines with respect t...
virtual void print(std::ostream &Os) const
Print description of object.
We frequently have a double with units associated with it.
DoubleWithUnit convert(const Unit &R) const
Convert to the given units.
TypePreference type_preference() const
Indicate if this class prefers wavelength or wavenumber.
const Unit units() const
Units that go with data()
Contains classes to abstract away details in various Spurr Radiative Transfer software.
#define REGISTER_LUA_END()
This class handles the solar Doppler stretch to calculate the shift of the solar lines with respect t...
const Unit AU("AU", 1.49597870691e11 *units::m)
1 AU in meters.
const blitz::Array< double, 1 > & data() const
Return data.
const DoubleWithUnit speed_of_light(299792458, units::m/units::s)
Speed of light, in m/s.