OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022

#include <VcstCmnGeoEclipse.h>

Public Member Functions

 VcstCmnGeoEclipse ()
 
 VcstCmnGeoEclipse (const VcstCmnGeoEclipse &data)
 
VcstCmnGeoEclipseoperator= (const VcstCmnGeoEclipse &data)
 
virtual ~VcstCmnGeoEclipse ()
 
void calcLunarEclipse (const double kFactor)
 
void calcSolarEclipse (const double kFactor)
 
double getTAI () const
 
bool getEclipseFlag () const
 
double getEclipseBegin () const
 
double getEclipseEnd () const
 

Protected Member Functions

double calcT (const double kFactor)
 
double calcTjdPhase ()
 
double calcMoonArgLat ()
 
double calcSunMeanAnom ()
 
double calcMoonMeanAnom ()
 
double calcMoonLongAscNode ()
 
double calcEarthEccen ()
 
double calcF1 (const double moonArgLat, const double moonLAN)
 
double calcA1 ()
 
double calcP (const double earthEccen, const double sunMeanAnom, const double moonMeanAnom, const double F1)
 
double calcQ (const double earthEccen, const double sunMeanAnom, const double moonMeanAnom)
 
double calcGamma (const double P, const double Q, const double F1)
 
double calcU (const double earthEccen, const double sunMeanAnom, const double moonMeanAnom)
 
double normalizeAngle (const double angle) const
 
double convertTJDtoTAI (const double tjd) const
 
double convertTAItoTJD (const double inTAI) const
 

Friends

std::ostream & operator<< (std::ostream &strm, const VcstCmnGeoEclipse &eclipse)
 

Detailed Description

VcstCmnGeoEclipse serves as a cache for eclipse parameters computed by VcstCmnGeo. It stores the key parameters for a given eclipse, including the lunar cycle number, the time of the full or new moon, whether an eclipse is occuring at the particular lunar phase and if so, the begin and end times of the (penumbral) eclipse.

Definition at line 29 of file VcstCmnGeoEclipse.h.

Constructor & Destructor Documentation

◆ VcstCmnGeoEclipse() [1/2]

Default constructor.

◆ VcstCmnGeoEclipse() [2/2]

Copy Constructor

◆ ~VcstCmnGeoEclipse()

virtual ~VcstCmnGeoEclipse ( )
virtual

Destructor

Member Function Documentation

◆ calcA1()

double calcA1 ( )
protected

Calculates the Meeus parameter A1, which is used to calculate the time of maximum eclipse. See Meeus, pg. 380.

Returns
"A1" factor, in radians

◆ calcEarthEccen()

double calcEarthEccen ( )
protected

Calculate the eccentricity of the Earth's orbit around the Sun for the time represented by the previously computed "k" (lunar cycles) and "T" (Julian centuries) factors. See Meeus eq. (47.6), pg. 338.

Returns
Eccentricity of the Earth's orbit

◆ calcF1()

double calcF1 ( const double  moonArgLat,
const double  moonLAN 
)
protected

Calculates the Meeus parameter F1, which is used to calculate the time of maximum eclipse. See Meeus, pg. 380.

Parameters
moonArgLatthe Moon's Argument of Latitude, in radians and normalized with the range 0 to 2 PI.
moonLANthe Moon's longitude of ascending node, in radians and normalized within the range 0 to 2 PI.
Returns
"F1" factor, in radians

◆ calcGamma()

double calcGamma ( const double  P,
const double  Q,
const double  F1 
)
protected

Calculate Meeus' "gamma", which has slightly different meanings depending upon whether you're computing solar or lunar eclipses. For solar eclipses, gamma represents the least distance from the axis of the Moon's shadow to the center of the Earth. For lunar eclipses, gamma represents the least distance from the center of the Moon to the axis of the Earth's shadow. In both cases, units are in Earth equatorial radii. Gamma may be positive or negative. See equation for gamma in Meeus, pg. 381.

Parameters
PMeeus' "P" parameter; see Meeus, pg. 381
QMeeus' "Q" parameter; see Meeus, pg. 381
F1Meeus' "F1" parameter, see Meeus, pg. 380.
Returns
"gamma", in units of Earth's equatorial radius

◆ calcLunarEclipse()

void calcLunarEclipse ( const double  kFactor)

Calculate lunar eclipse parameters for the Full Moon specified by Meeus' k-factor. Upon successful return, the eclipse paramaters for this object will be set to the eclipse parameters for the given moon cycle/phase and may be retrieved via the 'getParams' method.

Parameters
kFactorinput "k" factor, which specifies the lunar phase cycle since the New Moon of January 6, 2000. For Full Moons, k is an integer increased by 0.5. See Meeus pgs. 349 and 350.

◆ calcMoonArgLat()

double calcMoonArgLat ( )
protected

Get the Moon's argument of latitude for the time represented by the previously computed "k" (lunar cycles) and "T" (Julian centuries) factors. See Meeus parameter "F", eq (49.6), pg. 350.

Returns
the Moon's Argument of Latitude, in radians and normalized with the range 0 to 2 PI.

◆ calcMoonLongAscNode()

double calcMoonLongAscNode ( )
protected

Get the longitude of the ascending node of the lunar orbit for the time represented by the previously computed "k" (lunar cycles) and "T" (Julian centuries) factors. See Meeus parameter "Omega", eq (49.7), pg. 350.

Returns
the Moon's longitude of ascending node, in radians and normalized within the range 0 to 2 PI.

◆ calcMoonMeanAnom()

double calcMoonMeanAnom ( )
protected

Get the Moon's mean anomaly for the time represented by the previously computed "k" (lunar cycles) and "T" (Julian centuries) factors. See Meeus parameter "M'", eq (49.5), pg. 350.

Returns
the Moon's mean anomaly, in radians and normalized with the range 0 to 2 PI.

◆ calcP()

double calcP ( const double  earthEccen,
const double  sunMeanAnom,
const double  moonMeanAnom,
const double  F1 
)
protected

Calculate Meeus' "P" factor; see Meeus, pg. 381.

Parameters
earthEccenEccentricity of the Earth's orbit, "E"
sunMeanAnomthe Sun's mean anomaly, "M", in radians and normalized with the range 0 to 2 PI.
moonMeanAnomthe Moon's mean anomaly, "M'" in radians and normalized with the range 0 to 2 PI.
F1Meeus' parameter "F1" from pg. 380
Returns
"P", in units of the equatorial radius of the Earth.

◆ calcQ()

double calcQ ( const double  earthEccen,
const double  sunMeanAnom,
const double  moonMeanAnom 
)
protected

Calculate Meeus' "Q" factor; see Meeus, pg. 381.

Parameters
earthEccenEccentricity of the Earth's orbit, "E"
sunMeanAnomthe Sun's mean anomaly, "M", in radians and normalized with the range 0 to 2 PI.
moonMeanAnomthe Moon's mean anomaly, "M'" in radians and normalized with the range 0 to 2 PI.
Returns
"Q", in units of the equatorial radius of the Earth.

◆ calcSolarEclipse()

void calcSolarEclipse ( const double  kFactor)

Calculate solar eclipse parameters for the New Moon specified by Meeus' k-factor. Upon successful return, the eclipse paramaters for this object will be set to the eclipse parameters for the given moon cycle/phase and may be retrieved via the 'getParams' method.

Parameters
kFactorinput "k" factor, which specifies the lunar phase cycle since the New Moon of January 6, 2000. For New Moons, k is a integer value. See Meeus pgs. 349 and 350.

◆ calcSunMeanAnom()

double calcSunMeanAnom ( )
protected

Get the Sun's mean anomaly for the time represented by the previously computed "k" (lunar cycles) and "T" (Julian centuries) factors. See Meeus parameter "M", eq (49.4), pg. 350.

Returns
the Sun's mean anomaly, in radians and normalized with the range 0 to 2 PI.

◆ calcT()

double calcT ( const double  kFactor)
protected

Get the time in Julian centuries since the epoch 2000. Meeus refers to this parameter as "T". See eq (49.3), pg 350.

Parameters
kFactorinput "k" factor, which specifies the lunar phase cycle since the New Moon of January 6, 2000. See Meeus, pg 349-350.
Returns
time in Julian centuries since epoch 2000.

◆ calcTjdPhase()

double calcTjdPhase ( )
protected

Get the time of the mean phase of the Moon (in TDT Julian Days) for the specific lunar cycle and phase represented by the previously computed "k" (lunar cycles) and "T" (Julian centuries) factors. See Meeus, eq (49.1), pg. 349.

Returns
time of the mean phase of the moon in TDT Julian days

◆ calcU()

double calcU ( const double  earthEccen,
const double  sunMeanAnom,
const double  moonMeanAnom 
)
protected

Calculate Meeus' "u", which denotes the radius of the Moon's umbral cone in the fundamental plane, which is the plane through the center of the Earth and perpendicular to the axis of the Moon's shadow. See equation for u in Meeus, pg. 381.

Parameters
earthEccenEccentricity of the Earth's orbit, "E"
sunMeanAnomthe Sun's mean anomaly, "M", in radians and normalized with the range 0 to 2 PI.
moonMeanAnomthe Moon's mean anomaly, "M'" in radians and normalized with the range 0 to 2 PI.
Returns
"u", in units of Earth's equatorial radius

◆ convertTAItoTJD()

double convertTAItoTJD ( const double  inTAI) const
protected

Convert the given time from TAI to Terrestrial Dynamic Time in Julian days (Meeus' JDE).

Parameters
inTAITime in TAI
Returns
tjd equivalent

◆ convertTJDtoTAI()

double convertTJDtoTAI ( const double  tjd) const
protected

Convert the given time from Terrestrial Dynamic Time in Julian days (Meeus' JDE) to TAI.

Parameters
tjdTime in TDT Julian Days (JDE)
Returns
TAI equivalent

◆ getEclipseBegin()

double getEclipseBegin ( ) const

TAI time of the beginning of eclipse, if one is occurring.

◆ getEclipseEnd()

double getEclipseEnd ( ) const

TAI time of the end of eclipse, if one is occurring.

◆ getEclipseFlag()

bool getEclipseFlag ( ) const

true indicates eclipse is occurring for this new/full moon, false indicates it is not.

◆ getTAI()

double getTAI ( ) const
inline

Get the time of the eclipse data, in TAI. If an eclipse is occurring, this time will be the time of maximum eclipse; if no eclipse is occurring, the time will be the time of the mean New or Full Moon.

Definition at line 465 of file VcstCmnGeoEclipse.h.

◆ normalizeAngle()

double normalizeAngle ( const double  angle) const
protected

Take the given angle, in radians, and normalize so that 0 <= result <= 2PI.

Parameters
angleAngle in radians
Returns
normalized angle in radians

◆ operator=()

VcstCmnGeoEclipse& operator= ( const VcstCmnGeoEclipse data)

Assignment operator

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  strm,
const VcstCmnGeoEclipse eclipse 
)
friend

Give output operator access to member data.

Output operator

Definition at line 472 of file VcstCmnGeoEclipse.h.


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