Jeospace API

org.jeospace.physics.orbit
Class Moon

java.lang.Object
  extended byorg.jeospace.physics.orbit.Moon
All Implemented Interfaces:
GeocentricWorld, Identifiable, KineticBody, OrbitalBody, World

public class Moon
extends java.lang.Object
implements World, GeocentricWorld

The Moon, primary satellite of the Earth. The calculations orbital of motion are derived from an abbreviated form of the ELP-2000/82 as described in Meeus, Astronomical Algorithms, Chapter 45. Additional physical data contained in the class has been obtained from: http://nssdc.gsfc.nasa.gov/planetary/factsheet/moonfact.html

Version:
$Revision: 1.1.1.1 $
Author:
Rex Melton

Constructor Summary
Moon()
          Construct the default instance
 
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 given the Earth's heliocentric ecliptic coordinate.
 double getGravitationalConstant()
          Return the gravitational constant of the world in units of km^3 sec^2.
 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.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Moon

public Moon()
Construct the default instance

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 in units of km^3 sec^2.

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 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.

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 given the Earth's heliocentric ecliptic coordinate. Since the Moon is in the Terran system and it's coordinate is calculated in the ecliptic plane, this method returns the same value as getCoordinate( );

Note: The Moon's calculation is light time and aberration corrected

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. Since the Moon is in the Terran system, it's coordinate is calculated in the ecliptic plane and the calculation is already light time and aberration corrected, this method returns the same value as getCoordinate( );

Specified by:
getLightTimeCorrectedGeocentricEclipticCoordinate 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, adjusted for light time effects

Jeospace API

Copyright © 2006 - jeospace.org