Jeospace API

org.jeospace.physics.orbit
Class SolarWorld

java.lang.Object
  extended byorg.jeospace.physics.orbit.SolarWorld
All Implemented Interfaces:
GeocentricWorld, Identifiable, KineticBody, OrbitalBody, World
Direct Known Subclasses:
Earth, Jupiter, Mars, Mercury, Neptune, Pluto, Saturn, Sun, Uranus, Venus

public abstract class SolarWorld
extends java.lang.Object
implements World, GeocentricWorld

The base implementation for the major planets of the Solar System. SolarWorld provides the algorithm for computing the heliocentric ecliptic position of the planets from the series expansion of VSOP87 elements.

Version:
$Revision: 1.1.1.1 $
Author:
Rex Melton

Field Summary
protected static double LIGHTDAYS_PER_AU
          Constant used in calculation of light-time corrections
 
Constructor Summary
protected SolarWorld()
          Restricted constructor
 
Method Summary
 void getCoordinate(double julianDay, Cartesian cartesian)
          Calculate the position of the world referenced to it's orbital plane about it's parent world at the specified time and initialize the passed Cartesian object with the position coordinate.
 void getCoordinate(double julianDay, Spherical coordinate)
          Calculate the position of the world referenced to it's orbital plane about it's parent world at the specified time and initialize the passed Spherical object with the position coordinate.
 Ellipsoid getEllipsoid()
          Return the reference ellipsoid of the world
 void getGeocentricEclipticCoordinate(double julianDay, Spherical earthHeliocentricEcliptic, Spherical geocentricEcliptic)
          Return the geocentric ecliptic coordinate of the world on the Julian day given the Earth's heliocentric ecliptic coordinate
 double getGravitationalConstant()
          Return the gravitational constant of the world.
 Identification getIdentification()
          Return the Identification of this world
 void getLightTimeCorrectedGeocentricEclipticCoordinate(double julianDay, Spherical earthHeliocentricEcliptic, Spherical geocentricEcliptic)
          Return the geocentric ecliptic coordinate of the world, adjusted to compensate for the difference in it's apparent position due to the time it takes for it's reflected light to travel to earth, given the Earth's heliocentric ecliptic coordinate
 AngleNorm getLongitudeNormalization()
          Return the normalization option to be used to format longitude coordinates.
 OrbitalElements getOrbitalElements(double julianDay)
          Return the orbital elements for the world at the specified time
 ReferenceFrame getReferenceFrame()
          Return the identifier of the reference frame in which this world orbits.
abstract  Spherical getRotationalAxis(double julianDay)
          Return the position on the celestial sphere that is intersected by a vector along the rotational axis of the world - from it's origin, through the world's the North Pole.
 double getSiderealRotation(double julianDay)
          Return the sidereal rotation of the world about it's axis at the specified instant in time.
protected  java.lang.Object read_periodic_terms()
          Obsolete, or at least, hasn't been tried in a while.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LIGHTDAYS_PER_AU

protected static final double LIGHTDAYS_PER_AU
Constant used in calculation of light-time corrections

See Also:
Constant Field Values
Constructor Detail

SolarWorld

protected SolarWorld()
Restricted constructor

Method Detail

getIdentification

public Identification getIdentification()
Return the Identification of this world

Specified by:
getIdentification in interface Identifiable
Returns:
the Identification of this world

getEllipsoid

public Ellipsoid getEllipsoid()
Return the reference ellipsoid of the world

Specified by:
getEllipsoid in interface World
Returns:
the ellipsoid

getGravitationalConstant

public double getGravitationalConstant()
Return the gravitational constant of the world. The gravitational constant is the product of the universal gravitational constant (G) and the mass of the world. The constant is in units of km^3 sec^2 and is used in the calculations of orbital elements of objects in orbit about the world.

Specified by:
getGravitationalConstant in interface World
Returns:
the gravitational constant

getReferenceFrame

public ReferenceFrame getReferenceFrame()
Return the identifier of the reference frame in which this world orbits.

Specified by:
getReferenceFrame in interface KineticBody
Returns:
the ReferenceFrame identifier

getCoordinate

public void getCoordinate(double julianDay,
                          Spherical coordinate)
Calculate the position of the world referenced to it's orbital plane about it's parent world at the specified time and initialize the passed Spherical object with the position coordinate. If the argument Spherical object is null, a new object will be created and returned.

Specified by:
getCoordinate in interface KineticBody
Parameters:
julianDay - the time instant for calculating the world's position
coordinate - the object to initialize with the world's position coordinate.

getCoordinate

public void getCoordinate(double julianDay,
                          Cartesian cartesian)
Calculate the position of the world referenced to it's orbital plane about it's parent world at the specified time and initialize the passed Cartesian object with the position coordinate.

Specified by:
getCoordinate in interface KineticBody
Parameters:
julianDay - the time instant for calculating the world's position
cartesian - the object to initialize with the world's position coordinate

getOrbitalElements

public OrbitalElements getOrbitalElements(double julianDay)
Return the orbital elements for the world at the specified time

Specified by:
getOrbitalElements in interface OrbitalBody
Parameters:
julianDay - the time instant for which the elements should be calculated
Returns:
the orbital elements of the world at the specified time

getRotationalAxis

public abstract Spherical getRotationalAxis(double julianDay)
Return the position on the celestial sphere that is intersected by a vector along the rotational axis of the world - from it's origin, through the world's the North Pole.

Specified by:
getRotationalAxis in interface World
Parameters:
julianDay - the time instant at which to calculate the rotational axis alignment
Returns:
the position on the celestial sphere that is 'pointed to' by the rotational axis of the world.

getSiderealRotation

public double getSiderealRotation(double julianDay)
Return the sidereal rotation of the world about it's axis at the specified instant in time. The default behavior of this method is to generate a synchronous rotation for the world. (i.e. It rotates about it's axis once for every orbital cycle about it's parent world. This is essentially the behaviour of Earth's moon, which rotates to always face the same 'side' towards the Earth.)

Specified by:
getSiderealRotation in interface World
Parameters:
julianDay - the time instant at which to calculate the rotational axis
Returns:
the rotation in units of radians.

getLongitudeNormalization

public AngleNorm getLongitudeNormalization()
Return the normalization option to be used to format longitude coordinates.

Specified by:
getLongitudeNormalization in interface World
Returns:
the normalization option desired for the longitudes of this world.

getGeocentricEclipticCoordinate

public void getGeocentricEclipticCoordinate(double julianDay,
                                            Spherical earthHeliocentricEcliptic,
                                            Spherical geocentricEcliptic)
Return the geocentric ecliptic coordinate of the world on the Julian day given the Earth's heliocentric ecliptic coordinate

Specified by:
getGeocentricEclipticCoordinate in interface GeocentricWorld
Parameters:
julianDay - the Julian day
earthHeliocentricEcliptic - the Earth's heliocentric ecliptic coordinate
geocentricEcliptic - the Spherical object to initialize with the world's geocentric ecliptic coordinate

getLightTimeCorrectedGeocentricEclipticCoordinate

public void getLightTimeCorrectedGeocentricEclipticCoordinate(double julianDay,
                                                              Spherical earthHeliocentricEcliptic,
                                                              Spherical geocentricEcliptic)
Return the geocentric ecliptic coordinate of the world, adjusted to compensate for the difference in it's apparent position due to the time it takes for it's reflected light to travel to earth, given the Earth's heliocentric ecliptic coordinate

Specified by:
getLightTimeCorrectedGeocentricEclipticCoordinate in interface GeocentricWorld
Parameters:
earthHeliocentricEcliptic - the Earth's heliocentric ecliptic coordinate
geocentricEcliptic - the Spherical object to initialize with the world's geocentric ecliptic coordinate, adjusted for light time effects
julianDay - the Julian day

read_periodic_terms

protected java.lang.Object read_periodic_terms()
                                        throws java.io.IOException
Obsolete, or at least, hasn't been tried in a while. A routine to read the full set of VSOP87 terms for a world from a precreated data file.

Throws:
java.io.IOException

Jeospace API

Copyright © 2006 - jeospace.org