Stellarium  HEAD
Data Structures | Public Types | Static Public Member Functions | Data Fields | Static Public Attributes
RotationElements Class Reference

Data Structures

struct  PlanetCorrections
 0.21+: Axes of planets and moons require terms depending on T=(jde-J2000)/36525, described in Explanatory Supplement 2013, Tables 10.1 and 10.10-14, updated in WGCCRE reports 2009 and 2015. More...
 

Public Types

enum  ComputationMethod { Traditional , WGCCRE }
 
enum  PlanetCorrection {
  EarthMoon =3 , Mars =4 , Jupiter =5 , Saturn =6 ,
  Uranus =7 , Neptune =8
}
 
typedef double(* axisRotFuncType) (const double, const double)
 Finetuning correction functions. More...
 
typedef void(* axisOriFuncType) (const double, const double, double *, double *)
 

Static Public Member Functions

static void updatePlanetCorrections (const double JDE, const PlanetCorrection planet)
 Update the planet corrections. More...
 
static double corrWnil (const double d, const double T)
 These corr* functions can be used as corrW.
 
static double corrWMoon (const double d, const double T)
 
static double corrWMercury (const double d, const double T)
 
static double corrWMars (const double d, const double T)
 
static double corrWJupiter (const double d, const double T)
 The default W delivers SystemII longitude. More...
 
static double corrWNeptune (const double d, const double T)
 
static double corrWPhobos (const double d, const double T)
 
static double corrWDeimos (const double d, const double T)
 
static double corrWIo (const double d, const double T)
 
static double corrWEuropa (const double d, const double T)
 
static double corrWGanymede (const double d, const double T)
 
static double corrWCallisto (const double d, const double T)
 
static double corrWAmalthea (const double d, const double T)
 
static double corrWThebe (const double d, const double T)
 
static double corrWMimas (const double d, const double T)
 
static double corrWTethys (const double d, const double T)
 
static double corrWRhea (const double d, const double T)
 
static double corrWJanus (const double d, const double T)
 
static double corrWEpimetheus (const double d, const double T)
 
static double corrWCordelia (const double d, const double T)
 
static double corrWOphelia (const double d, const double T)
 
static double corrWBianca (const double d, const double T)
 
static double corrWCressida (const double d, const double T)
 
static double corrWDesdemona (const double d, const double T)
 
static double corrWJuliet (const double d, const double T)
 
static double corrWPortia (const double d, const double T)
 
static double corrWRosalind (const double d, const double T)
 
static double corrWBelinda (const double d, const double T)
 
static double corrWPuck (const double d, const double T)
 
static double corrWAriel (const double d, const double T)
 
static double corrWUmbriel (const double d, const double T)
 
static double corrWTitania (const double d, const double T)
 
static double corrWOberon (const double d, const double T)
 
static double corrWMiranda (const double d, const double T)
 
static double corrWTriton (const double d, const double T)
 
static double corrWNaiad (const double d, const double T)
 
static double corrWThalassa (const double d, const double T)
 
static double corrWDespina (const double d, const double T)
 
static double corrWGalatea (const double d, const double T)
 
static double corrWLarissa (const double d, const double T)
 
static double corrWProteus (const double d, const double T)
 
static void corrOriNil (const double, const double, double *, double *)
 These functions can be used as corrOri.
 
static void corrOriMoon (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriMars (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriJupiter (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriNeptune (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriPhobos (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriDeimos (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriIo (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriEuropa (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriGanymede (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriCallisto (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriAmalthea (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriThebe (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriMimas (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriTethys (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriRhea (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriJanus (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriEpimetheus (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriAriel (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriUmbriel (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriTitania (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriOberon (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriMiranda (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriCordelia (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriOphelia (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriBianca (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriCressida (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriDesdemona (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriJuliet (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriPortia (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriRosalind (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriBelinda (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriPuck (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriTriton (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriNaiad (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriThalassa (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriDespina (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriGalatea (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriLarissa (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static void corrOriProteus (const double d, const double T, double *J2000NPoleRA, double *J2000NPoleDE)
 
static double getMarsMagLs (const double Ls, const bool albedo)
 Retrieve magnitude variation depending on angle Ls [radians]. More...
 

Data Fields

double period
 
double offset
 
double epoch
 
double obliquity
 
double ascendingNode
 
ComputationMethod method
 
double ra0
 
double ra1
 
double de0
 
double de1
 
double W0
 
double W1
 
double currentAxisRA
 
double currentAxisDE
 
double currentAxisW
 
axisRotFuncType corrW
 
axisOriFuncType corrOri
 

Static Public Attributes

static PlanetCorrections planetCorrections
 
static const QMap< QString, axisRotFuncTypeaxisRotCorrFuncMap
 
static const QMap< QString, axisOriFuncType > axisOriCorrFuncMap
 
static double grsJD
 JD (epoch) for calculation of position of Great Red Spot.
 
static double grsLongitude
 Longitude of Great Red Spot at grsJD (System II, degrees)
 
static double grsDrift
 Annual drift of Great Red Spot position (degrees)
 

Data Structure Documentation

◆ RotationElements::PlanetCorrections

struct RotationElements::PlanetCorrections

0.21+: Axes of planets and moons require terms depending on T=(jde-J2000)/36525, described in Explanatory Supplement 2013, Tables 10.1 and 10.10-14, updated in WGCCRE reports 2009 and 2015.

Others require frequent updates, depending on jde-J2000. (Moon etc.) These should be updated as frequently as needed, optimally with the planet. Light time correction should be applied when needed. best place to call update is the SolarSystem::computePlanets()

Data Fields
double E1
double E10
double E11
double E12
double E13
double E2
double E3
double E4
double E5
double E6
double E7
double E8
double E9
double J1
double J2
double J3
double J4
double J5
double J6
double J7
double J8
double Ja
double Jb
double Jc
double Jd
double JDE_E
double JDE_J
double JDE_M
double JDE_N
double JDE_S
double JDE_U
double Je
double M1
double M10
double M2
double M3
double M4
double M5
double M6
double M7
double M8
double M9
double N1
double N2
double N3
double N4
double N5
double N6
double N7
double Na
double S1
double S2
double S3
double S4
double S5
double S6
double U1
double U10
double U11
double U12
double U13
double U14
double U15
double U16
double U2
double U3
double U4
double U5
double U6
double U7
double U8
double U9

Member Typedef Documentation

◆ axisRotFuncType

typedef double(* RotationElements::axisRotFuncType) (const double, const double)

Finetuning correction functions.

These functions are attached to the planets in Planet::setRotationElements() and called at the right places. This avoids ugly sequences of name query ifelses. arguments are d=JDE-J2000, T=d/36525, J2000NPoleRA, J2000NPoleDE

Member Function Documentation

◆ corrWJupiter()

static double RotationElements::corrWJupiter ( const double  d,
const double  T 
)
static

The default W delivers SystemII longitude.

We have to shift by GRS position and texture position. The final value will no longer be W but the rotation value required to show the GRS.

◆ getMarsMagLs()

static double RotationElements::getMarsMagLs ( const double  Ls,
const bool  albedo 
)
static

Retrieve magnitude variation depending on angle Ls [radians].

Source: A. Mallama: The magnitude and albedo of Mars. Icarus 192(2007) 404-416.

  • albedo true to return longitudinal albedo correction, Ls=the average of sub-earth and sub-solar planetographic longitudes false for the Orbital Longitude correction. Ls here is the apparent solar longitude along Mars' "ecliptic". (0=Martian Vernal Equinox)

◆ updatePlanetCorrections()

static void RotationElements::updatePlanetCorrections ( const double  JDE,
const PlanetCorrection  planet 
)
static

Update the planet corrections.

planet=3(Moon), 4 (Mars), 5(Jupiter), 6(Saturn), 7(Uranus), 8(Neptune). The values are immediately converted to radians.