org.stellarium.astro.planet
Class PlanetOrbitUtils
java.lang.Object
org.stellarium.astro.planet.PlanetOrbitUtils
public class PlanetOrbitUtils
- extends java.lang.Object
The code in this file is heavily inspired by the TASS17 and GUST86 theories
found on
ftp://ftp.imcce.fr/pub/ephem/satel
I (Johannes Gajdosik) have just taken the Fortran code and data
obtained from above and rearranged it into this piece of software.
I can neigther allow nor forbid the above theories.
The copyright notice below covers just my work,
that is the compilation of the data obtained from above
into the software supplied in this file.
- Version:
- Java (0.8.2)
- Author:
- Johannes Gajdosik, Frederic Simon
Method Summary |
(package private) static void |
accumulateTerms(java.util.List<java.lang.Short> instructions,
java.util.List<java.lang.Double> coefficients,
java.util.List<java.lang.Double> cos_sin_lambda,
double[] accu,
double[] sp,
boolean isElp82b)
|
private static void |
calculateNewArg(java.util.List<java.lang.Double> cos_sin_lambda,
double[] accu,
double[] sp,
java.util.Iterator<java.lang.Short> instructionsIterator,
java.util.Iterator<java.lang.Double> coefficientsIterator,
PlanetOrbitUtils.IndexHolder idx)
|
private static void |
ellipticToRectangular(double mu,
double a,
double n,
double[] elem,
double dt,
javax.vecmath.Tuple3d xyz)
|
static void |
ellipticToRectangularA(double mu,
double[] elem,
double dt,
javax.vecmath.Tuple3d xyz)
|
static void |
ellipticToRectangularN(double mu,
double[] elem,
double dt,
javax.vecmath.Tuple3d xyz)
Given the orbital elements at some time t0 calculate the
rectangular coordinates at time (t0+dt). |
(package private) static java.util.List<java.lang.Double> |
prepareLambdaArray(int nr_of_lambdas,
int[] max_lambda_factor,
double[] lambda)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PlanetOrbitUtils
public PlanetOrbitUtils()
ellipticToRectangular
private static void ellipticToRectangular(double mu,
double a,
double n,
double[] elem,
double dt,
javax.vecmath.Tuple3d xyz)
ellipticToRectangularN
public static void ellipticToRectangularN(double mu,
double[] elem,
double dt,
javax.vecmath.Tuple3d xyz)
- Given the orbital elements at some time t0 calculate the
rectangular coordinates at time (t0+dt).
mu = G*(m1+m2) .. gravitational constant of the two body problem
a .. semi major axis
n = mean motion = 2*M_PI/(orbit period)
elem[0] .. unused (eigther a or n)
elem[1] .. L
elem[2] .. K=e*cos(Omega+omega)
elem[3] .. H=e*sin(Omega+omega)
elem[4] .. Q=sin(i/2)*cos(Omega)
elem[5] .. P=sin(i/2)*sin(Omega)
Omega = longitude of ascending node
omega = argument of pericenter
L = mean longitude = Omega + omega + M
M = mean anomaly
i = inclination
e = excentricity
Units are suspected to be: Julian days, AU, rad
- Parameters:
mu
- elem
- dt
- xyz
-
ellipticToRectangularA
public static void ellipticToRectangularA(double mu,
double[] elem,
double dt,
javax.vecmath.Tuple3d xyz)
prepareLambdaArray
static java.util.List<java.lang.Double> prepareLambdaArray(int nr_of_lambdas,
int[] max_lambda_factor,
double[] lambda)
accumulateTerms
static void accumulateTerms(java.util.List<java.lang.Short> instructions,
java.util.List<java.lang.Double> coefficients,
java.util.List<java.lang.Double> cos_sin_lambda,
double[] accu,
double[] sp,
boolean isElp82b)
calculateNewArg
private static void calculateNewArg(java.util.List<java.lang.Double> cos_sin_lambda,
double[] accu,
double[] sp,
java.util.Iterator<java.lang.Short> instructionsIterator,
java.util.Iterator<java.lang.Double> coefficientsIterator,
PlanetOrbitUtils.IndexHolder idx)