Solar position class and calculations. More...
#include <SolarPos.h>
Public Types | |
enum | SolarPosTypes { STANDARD, NONE } |
Types of known SolarPos calculations (at 1995/09/04 STANDARD == IAU1980). More... | |
Public Member Functions | |
SolarPos () | |
Default constructor, generates default J2000 SolarPos identification. | |
SolarPos (const SolarPos &other) | |
Copy constructor. | |
SolarPos (SolarPosTypes type) | |
Constructor with type. | |
SolarPos & | operator= (const SolarPos &other) |
Copy assignment. | |
~SolarPos () | |
const MVPosition & | operator() (Double epoch) |
Operator () calculates the geocentric Solar Position in AU. | |
const MVPosition & | derivative (Double epoch) |
Return derivatives of SolarPos (d-1). | |
const MVPosition & | baryEarthDerivative (Double epoch) |
const MVPosition & | barySunDerivative (Double epoch) |
const MVPosition & | baryEarth (Double epoch) |
Barycentric position of Earth. | |
const MVPosition & | barySun (Double epoch) |
Barycentric position of Sun. | |
void | init () |
Re-initialise SolarPos object. | |
void | init (SolarPosTypes type) |
void | refresh () |
Refresh calculations. | |
Static Public Attributes | |
static const Double | INTV |
Interval to be used for linear approximation (in days). | |
Private Member Functions | |
void | copy (const SolarPos &other) |
Copy. | |
void | fill () |
Fill an empty copy. | |
void | calcEarth (Double t) |
Calculate heliocentric Earth position for time t. | |
void | calcSun (Double t) |
Calculate heliocentric barycentre position. | |
Private Attributes | |
SolarPosTypes | method |
Method to be used. | |
Double | checkEpoch |
Check epoch for linear approximation. | |
Double | checkSunEpoch |
Double | eval [3] |
Cached calculated Earth positions. | |
Double | deval [3] |
Cached derivatives. | |
Double | sval [3] |
Cached calculated Sun positions. | |
Double | dsval [3] |
Cached derivatives. | |
Int | lres |
To be able to use references in simple calculations, results are calculated in a circular buffer. | |
MVPosition | result [6] |
Last calculation. | |
Static Private Attributes | |
static uInt | interval_reg |
Interpolation interval. | |
static uInt | usejpl_reg |
JPL use. |
Solar position class and calculations.
Public interface
SolarPos from Solar Position
SolarPos forms the class for Solar Position calculations. It is a simple container with the selected method, and the mean epoch.
The method is selected from one of the following:
Epochs can be specified as the MJD (with defined constants MeasData::MJD2000 and MeasData::MJDB1950 or the actual MJD), leading to the following constructors:
Actual SolarPos for a certain Epoch is calculated by the () operator as SolarPos(epoch), with epoch Double MJD, as an MVPosition vector.
It returns the geocentric position of the heliocentre in rectangular coordinates in AU.
The derivative (d-1) can be obtained as well by derivative(epoch), baryEarthDerivative() and barySunDerivative().
The Earth's and solar barycentric position can be obtained by the members baryEarth
and barySun
. The following details can be set with the Aipsrc mechanism:
Reference: M. Soma et al., Cel. Mech. 41 (1988), 389; E.M. Standish, Astron. Astroph. 114 (1982), 297.
To calculate the solar/Earth positions for gravitational deflection. An alternate route could have been a global function, but having a simple container allows caching of some calculations for speed.
Using MJD (JD-2400000.5) rather than JD is for precision reasons.
Definition at line 111 of file SolarPos.h.
Types of known SolarPos calculations (at 1995/09/04 STANDARD == IAU1980).
Definition at line 119 of file SolarPos.h.
casacore::SolarPos::SolarPos | ( | ) |
Default constructor, generates default J2000 SolarPos identification.
casacore::SolarPos::SolarPos | ( | const SolarPos & | other | ) |
Copy constructor.
casacore::SolarPos::SolarPos | ( | SolarPosTypes | type | ) |
Constructor with type.
casacore::SolarPos::~SolarPos | ( | ) |
const MVPosition& casacore::SolarPos::baryEarth | ( | Double | epoch | ) |
Barycentric position of Earth.
const MVPosition& casacore::SolarPos::baryEarthDerivative | ( | Double | epoch | ) |
const MVPosition& casacore::SolarPos::barySun | ( | Double | epoch | ) |
Barycentric position of Sun.
const MVPosition& casacore::SolarPos::barySunDerivative | ( | Double | epoch | ) |
void casacore::SolarPos::calcEarth | ( | Double | t | ) | [private] |
Calculate heliocentric Earth position for time t.
void casacore::SolarPos::calcSun | ( | Double | t | ) | [private] |
Calculate heliocentric barycentre position.
void casacore::SolarPos::copy | ( | const SolarPos & | other | ) | [private] |
Copy.
const MVPosition& casacore::SolarPos::derivative | ( | Double | epoch | ) |
Return derivatives of SolarPos (d-1).
void casacore::SolarPos::fill | ( | ) | [private] |
Fill an empty copy.
void casacore::SolarPos::init | ( | SolarPosTypes | type | ) |
void casacore::SolarPos::init | ( | ) |
Re-initialise SolarPos object.
const MVPosition& casacore::SolarPos::operator() | ( | Double | epoch | ) |
Operator () calculates the geocentric Solar Position in AU.
void casacore::SolarPos::refresh | ( | ) |
Refresh calculations.
Double casacore::SolarPos::checkEpoch [private] |
Check epoch for linear approximation.
Definition at line 164 of file SolarPos.h.
Double casacore::SolarPos::checkSunEpoch [private] |
Definition at line 165 of file SolarPos.h.
Double casacore::SolarPos::deval[3] [private] |
Cached derivatives.
Definition at line 169 of file SolarPos.h.
Double casacore::SolarPos::dsval[3] [private] |
Cached derivatives.
Definition at line 173 of file SolarPos.h.
Double casacore::SolarPos::eval[3] [private] |
Cached calculated Earth positions.
Definition at line 167 of file SolarPos.h.
uInt casacore::SolarPos::interval_reg [static, private] |
Interpolation interval.
Definition at line 181 of file SolarPos.h.
const Double casacore::SolarPos::INTV [static] |
Interval to be used for linear approximation (in days).
Definition at line 115 of file SolarPos.h.
Int casacore::SolarPos::lres [private] |
To be able to use references in simple calculations, results are calculated in a circular buffer.
Current buffer pointer
Definition at line 177 of file SolarPos.h.
SolarPosTypes casacore::SolarPos::method [private] |
Method to be used.
Definition at line 162 of file SolarPos.h.
MVPosition casacore::SolarPos::result[6] [private] |
Last calculation.
Definition at line 179 of file SolarPos.h.
Double casacore::SolarPos::sval[3] [private] |
Cached calculated Sun positions.
Definition at line 171 of file SolarPos.h.
uInt casacore::SolarPos::usejpl_reg [static, private] |
JPL use.
Definition at line 183 of file SolarPos.h.