ReFRACtor
FullPhysics::SolarDopplerShiftPolynomial Class Reference

This class handles the solar Doppler stretch to calculate the shift of the solar lines with respect to the telluric lines. More...

#include <solar_doppler_shift_polynomial.h>

+ Inheritance diagram for FullPhysics::SolarDopplerShiftPolynomial:
+ Collaboration diagram for FullPhysics::SolarDopplerShiftPolynomial:

Public Member Functions

 SolarDopplerShiftPolynomial (const Time &t, const DoubleWithUnit &lat, const DoubleWithUnit &sol_zen, const DoubleWithUnit &sol_az, const DoubleWithUnit &elevation, const Constant &constant=DefaultConstant(), bool apply_doppler_shift=true)
 Create a SolarDopplerShiftPolynomial. More...
 
 SolarDopplerShiftPolynomial (double Doppler_shift, const Time &t, const Constant &constant=DefaultConstant(), bool apply_doppler_shift=true)
 Create a SolarDopplerShiftPolynomial. More...
 
virtual ~SolarDopplerShiftPolynomial ()
 
double doppler_shift () const
 
virtual SpectralDomain doppler_stretch (const SpectralDomain &Spec_domain) const
 Shift wavenumbers to account for doppler stretch. More...
 
virtual void print (std::ostream &Os) const
 Print description of object. More...
 
std::string print_to_string () const
 Print to string. More...
 
virtual DoubleWithUnit solar_distance () const
 Return Earth-Sun distance. More...
 
DoubleWithUnit solar_velocity () const
 Velocity of the center of the earth to the center of the sun. More...
 
DoubleWithUnit total_velocity () const
 Total velocity, including rotation of earth. More...
 

Detailed Description

This class handles the solar Doppler stretch to calculate the shift of the solar lines with respect to the telluric lines.

This implementation uses a fit based on a 6th order polynomial fit to data from http://eclipse.gsfc.nasa.gov/TYPE/TYPE.html

Definition at line 17 of file solar_doppler_shift_polynomial.h.

Constructor & Destructor Documentation

◆ SolarDopplerShiftPolynomial() [1/2]

SolarDopplerShiftPolynomial::SolarDopplerShiftPolynomial ( const Time t,
const DoubleWithUnit lat,
const DoubleWithUnit sol_zen,
const DoubleWithUnit sol_az,
const DoubleWithUnit elevation,
const Constant constant = DefaultConstant(),
bool  apply_doppler_shift = true 
)

Create a SolarDopplerShiftPolynomial.

Parameters
tTime of sounding.
latThe geodetic latitude on the Earth's surface
sol_zenSolar zenith angle
sol_azSolar azmimuth angle (direction looking FOV->sun) in degrees east of north
elevationElevation of point
constantInstance of Constant subtype, used for solar_distance_param
apply_doppler_shiftIndicates if we should apply the doppler shift or not. If this is false, then we just pass the wave numbers through unchanged in doppler_stretch.

Definition at line 103 of file solar_doppler_shift_polynomial.cc.

◆ SolarDopplerShiftPolynomial() [2/2]

SolarDopplerShiftPolynomial::SolarDopplerShiftPolynomial ( double  Doppler_shift,
const Time t,
const Constant constant = DefaultConstant(),
bool  apply_doppler_shift = true 
)

Create a SolarDopplerShiftPolynomial.

This variation explicitly takes the doppler shift to apply. This is useful for FTS, where we want to use the doppler shift supplied in the runlog rather than calculating our own. Note that the solar distance calculation is still done by the fixed polynomial, only the doppler shift is changed.

Parameters
tTime of sounding.
Doppler_shiftThe doppler shift factor to use.
constantInstance of Constant subtype, used for solar_distance_param
apply_doppler_shiftIndicates if we should apply the doppler shift or not. If this is false, then we just pass the wave numbers through unchanged in doppler_stretch.

Definition at line 152 of file solar_doppler_shift_polynomial.cc.

◆ ~SolarDopplerShiftPolynomial()

virtual FullPhysics::SolarDopplerShiftPolynomial::~SolarDopplerShiftPolynomial ( )
inlinevirtual

Definition at line 31 of file solar_doppler_shift_polynomial.h.

Member Function Documentation

◆ doppler_shift()

double FullPhysics::SolarDopplerShiftPolynomial::doppler_shift ( ) const
inline

Definition at line 57 of file solar_doppler_shift_polynomial.h.

◆ doppler_stretch()

SpectralDomain SolarDopplerShiftPolynomial::doppler_stretch ( const SpectralDomain Spec_domain) const
virtual

Shift wavenumbers to account for doppler stretch.

Parameters
Spec_domainwavenumber/wavelength
Returns
Wavenumber/wavelength with Doppler stretch.

Implements FullPhysics::SolarDopplerShift.

Definition at line 203 of file solar_doppler_shift_polynomial.cc.

◆ print()

void SolarDopplerShiftPolynomial::print ( std::ostream &  Os) const
virtual

Print description of object.

Reimplemented from FullPhysics::SolarDopplerShift.

Definition at line 192 of file solar_doppler_shift_polynomial.cc.

◆ print_to_string()

std::string FullPhysics::Printable< SolarDopplerShift >::print_to_string ( ) const
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.

◆ solar_distance()

virtual DoubleWithUnit FullPhysics::SolarDopplerShiftPolynomial::solar_distance ( ) const
inlinevirtual

Return Earth-Sun distance.

Returns
Earth-Sun distance.

Implements FullPhysics::SolarDopplerShift.

Definition at line 38 of file solar_doppler_shift_polynomial.h.

◆ solar_velocity()

DoubleWithUnit FullPhysics::SolarDopplerShiftPolynomial::solar_velocity ( ) const
inline

Velocity of the center of the earth to the center of the sun.

Positive means they are getting farther apart. This does not include the rotation of the earth.

Definition at line 48 of file solar_doppler_shift_polynomial.h.

◆ total_velocity()

DoubleWithUnit FullPhysics::SolarDopplerShiftPolynomial::total_velocity ( ) const
inline

Total velocity, including rotation of earth.

Definition at line 54 of file solar_doppler_shift_polynomial.h.


The documentation for this class was generated from the following files:

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:13