Jeospace API

org.jeospace.physics.orbit
Class Earth

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

public class Earth
extends SolarWorld

Earth, third planet from the Sun. Earth implements utility methods for calculating Earth related physical parameters useful in calculating the apparent positions of astronomical objects and for transforming coordinates into and between Earth based reference frames. The calculations of orbital motion are derived from an abbreviated form of the VSOP87 as described in Meeus, Astronomical Algorithms, Chapter 31. Additional physical data contained in the class has been obtained from: http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html

Version:
$Revision: 1.1.1.1 $
Author:
Rex Melton

Field Summary
 
Fields inherited from class org.jeospace.physics.orbit.SolarWorld
LIGHTDAYS_PER_AU
 
Constructor Summary
Earth()
          Construct an Earth instance
 
Method Summary
 void getAberrationCorrection(double julianDay, Spherical geocentricEcliptic, Spherical correction)
          Get the aberration correction for the geocentric ecliptic coordinate of an object.
 void getApparentSiderealTime(double julianDay, Ellipsoidal position, Angle angle)
          Get the apparent sidereal time ( theta ), the local hour angle corrected for nutation for the specified position on the Earth's surface at the specified Julian Day.
 Angle getEquationOfTime(double julianDay)
          Get the equation of time value for the Julian Day.
 void getEquatorialCoordinate(double julianDay, Spherical geocentricEcliptic, Spherical geocentricEquatorial)
          Convert from geocentric ecliptic to geocentric equatorial coordinates ( Right Ascension, Declination ).
static void getEquatorialCoordinate(Ellipsoidal ellipsodial, Spherical horizontal, Spherical equatorial)
          Calculate the equatorial coordinates ( right ascension & declination ) from a horizontal coordinate ( altitude & azimuth ) and a position on the Earth's surface.
static void getFK5Correction(double julianDay, Spherical eclipticCoordinate, Spherical correction)
          Calculate the FK5 system correction for a geocentric ecliptic coordinate for the Julian Day.
 Spherical getGeocentricEclipticCoordinate(double julianDay, Spherical geocentricEquatorial)
          Convert from geocentric equatorial coordinates ( Right Ascension & Declination ) to geocentric ecliptic coordinates for the specified Julian Day.
 void getGeocentricEclipticCoordinate(double julianDay, Spherical heliocentricEcliptic, Spherical geocentricEcliptic)
          Convert the heliocentric ecliptic coordinate to a geocentric ecliptic coordinate for the given Julian day.
 void getGeocentricFixedCoordinate(double julianDay, Spherical geocentricEquatorialInertial, Spherical geocentricFixed)
          Convert from geocentric equatorial inertial (ECI - Earth Centered Inertial) to geocentric fixed coordinates (ECEF - Earth Centered Earth Fixed).
 void getHorizontalCoordinate(double julianDay, Ellipsoidal ellipsoidal, Spherical equatorial, Spherical horizontal)
          Calculate the local horizontal coordinates ( altitude & azimuth ) from the object's equatorial coordinate and the observer's position on the Earth's surface for the specified Julian Day.
 void getMeanObliquityOfEcliptic(double julianDay, Angle angle)
          Get the mean obliquity of the ecliptic ( epsilon_0 ) for the specified Julian Day
static void getMeanSiderealTime(double julianDay, Ellipsoidal position, Angle angle)
          Get the mean sidereal time ( theta ) at the specified position on the Earth's surface for the Julian Day.
static void getMeanSiderealTimeAtGreenwich(double julianDay, Angle angle)
          Get the mean sidereal time at Greenwich ( theta_0 ) for the Julian Day.
 void getNutationInLongitude(double julianDay, Angle angle)
          Get the nutation in longitude ( delta_psi ) for the specified Julian Day.
 void getNutationInObliquity(double julianDay, Angle angle)
          Get the nutation in obliquity ( delta_epsilon ) for the specified Julian Day
 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 North Pole.
 double getSiderealRotation(double julianDay)
          Return the sidereal rotation of the Earth about it's axis for the specified Julian Day.
 void getTopoCentricHorizonCoordinate(double julianDay, Ellipsoidal ellipsoidal, Spherical equatorial, Spherical horizontal)
          Calculate the topo-centric horizontal coordinate (the look at angle) of an earth orbiting satellite.
 void getTrueObliquityOfEcliptic(double julianDay, Angle angle)
          Get the true obliquity of the ecliptic ( epsilon = epsilon_0 + delta_epsilon ) for the specified Julian Day.
 
Methods inherited from class org.jeospace.physics.orbit.SolarWorld
getCoordinate, getCoordinate, getEllipsoid, getGravitationalConstant, getIdentification, getLightTimeCorrectedGeocentricEclipticCoordinate, getLongitudeNormalization, getOrbitalElements, getReferenceFrame, read_periodic_terms
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Earth

public Earth()
Construct an Earth instance

Method Detail

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

Specified by:
getRotationalAxis in interface World
Specified by:
getRotationalAxis in class SolarWorld
Parameters:
julianDay - the time 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 Earth.

getSiderealRotation

public double getSiderealRotation(double julianDay)
Return the sidereal rotation of the Earth about it's axis for the specified Julian Day.

Specified by:
getSiderealRotation in interface World
Overrides:
getSiderealRotation in class SolarWorld
Parameters:
julianDay - the time at which to calculate the rotation
Returns:
the rotation in units of radians.

getMeanSiderealTime

public static void getMeanSiderealTime(double julianDay,
                                       Ellipsoidal position,
                                       Angle angle)
Get the mean sidereal time ( theta ) at the specified position on the Earth's surface for the Julian Day.

Parameters:
julianDay - the Julian Day
position - the Ellipsoidal position on the Earth
angle - the Angle object to initialize with the local mean sidereal time.

getMeanSiderealTimeAtGreenwich

public static void getMeanSiderealTimeAtGreenwich(double julianDay,
                                                  Angle angle)
Get the mean sidereal time at Greenwich ( theta_0 ) for the Julian Day.

Parameters:
julianDay - the Julian Day
angle - the Angle object to initialize with the mean sidereal time at Greenwich.

getFK5Correction

public static void getFK5Correction(double julianDay,
                                    Spherical eclipticCoordinate,
                                    Spherical correction)
Calculate the FK5 system correction for a geocentric ecliptic coordinate for the Julian Day. The correction is in longitude and latitude only. The distance component of the coordinate is set to 0.

Parameters:
julianDay - the Julian Day to calculate the correction for
eclipticCoordinate - the geocentric ecliptic coordinate to calculate the correction for.
correction - the Spherical object to initialize with the FK5 system correction

getEquatorialCoordinate

public static void getEquatorialCoordinate(Ellipsoidal ellipsodial,
                                           Spherical horizontal,
                                           Spherical equatorial)
Calculate the equatorial coordinates ( right ascension & declination ) from a horizontal coordinate ( altitude & azimuth ) and a position on the Earth's surface. The returned coordinate is in latitude and longitude only. The distance component of the coordinate is set to 0.

Parameters:
ellipsodial - the position on the Earth's surface from which the horizontal coordinate is being observed.
horizontal - the horizontal coordinate.
equatorial - the Spherical object to initialize with the calculated Earth geocentric equatorial coordinate

getApparentSiderealTime

public void getApparentSiderealTime(double julianDay,
                                    Ellipsoidal position,
                                    Angle angle)
Get the apparent sidereal time ( theta ), the local hour angle corrected for nutation for the specified position on the Earth's surface at the specified Julian Day.

Parameters:
julianDay - the Julian Day
position - the Ellipsodial position on the Earth's surface
angle - the Angle object to initialize with the local apparent sidereal time.

getNutationInLongitude

public void getNutationInLongitude(double julianDay,
                                   Angle angle)
Get the nutation in longitude ( delta_psi ) for the specified Julian Day.

Parameters:
julianDay - the Julian Day
angle - the Angle object to initialize with the the nutation in longitude

getNutationInObliquity

public void getNutationInObliquity(double julianDay,
                                   Angle angle)
Get the nutation in obliquity ( delta_epsilon ) for the specified Julian Day

Parameters:
julianDay - the Julian Day
angle - the Angle object to initialize with the the nutation in obliquity

getTrueObliquityOfEcliptic

public void getTrueObliquityOfEcliptic(double julianDay,
                                       Angle angle)
Get the true obliquity of the ecliptic ( epsilon = epsilon_0 + delta_epsilon ) for the specified Julian Day.

Parameters:
julianDay - the Julian Day
angle - the Angle object to initialize with the the true obliquity of the ecliptic

getMeanObliquityOfEcliptic

public void getMeanObliquityOfEcliptic(double julianDay,
                                       Angle angle)
Get the mean obliquity of the ecliptic ( epsilon_0 ) for the specified Julian Day

Parameters:
julianDay - the Julian Day
angle - the Angle object to initialize with the the mean obliquity of the ecliptic

getGeocentricEclipticCoordinate

public Spherical getGeocentricEclipticCoordinate(double julianDay,
                                                 Spherical geocentricEquatorial)
Convert from geocentric equatorial coordinates ( Right Ascension & Declination ) to geocentric ecliptic coordinates for the specified Julian Day.

Parameters:
geocentricEquatorial - the geocentric equatorial coordinate to convert from
julianDay - the Julian Day
Returns:
the geocentric ecliptic coordinate

getEquatorialCoordinate

public void getEquatorialCoordinate(double julianDay,
                                    Spherical geocentricEcliptic,
                                    Spherical geocentricEquatorial)
Convert from geocentric ecliptic to geocentric equatorial coordinates ( Right Ascension, Declination ).

Parameters:
julianDay - the Julian Day
geocentricEcliptic - the geocentric ecliptical coordinate to convert from
geocentricEquatorial - the Spherical object to initialize with the calculated geocentric equatorial coordinate

getGeocentricFixedCoordinate

public void getGeocentricFixedCoordinate(double julianDay,
                                         Spherical geocentricEquatorialInertial,
                                         Spherical geocentricFixed)
Convert from geocentric equatorial inertial (ECI - Earth Centered Inertial) to geocentric fixed coordinates (ECEF - Earth Centered Earth Fixed).

Parameters:
julianDay - the Julian Day
geocentricEquatorialInertial - the geocentric equatorial inertial coordinate to convert from.
geocentricFixed - the Spherical object to initialize with the calculated geocentric fixed coordinate

getGeocentricEclipticCoordinate

public void getGeocentricEclipticCoordinate(double julianDay,
                                            Spherical heliocentricEcliptic,
                                            Spherical geocentricEcliptic)
Convert the heliocentric ecliptic coordinate to a geocentric ecliptic coordinate for the given Julian day.

Specified by:
getGeocentricEclipticCoordinate in interface GeocentricWorld
Overrides:
getGeocentricEclipticCoordinate in class SolarWorld
Parameters:
julianDay - the Julian day
heliocentricEcliptic - the target Spherical coordinate to convert
geocentricEcliptic - the Spherical object to initialize with the world's geocentric ecliptic coordinate

getHorizontalCoordinate

public void getHorizontalCoordinate(double julianDay,
                                    Ellipsoidal ellipsoidal,
                                    Spherical equatorial,
                                    Spherical horizontal)
Calculate the local horizontal coordinates ( altitude & azimuth ) from the object's equatorial coordinate and the observer's position on the Earth's surface for the specified Julian Day. This method does not consider the distance components of the coordinates (neither the elevation of the observer's position above the ellipsoid nor the distance of the object from the Earth) and therefore only produces reasonable results for objects at very large distances such as planetoids and stars. The returned coordinate has longitude (azimuth) and latitude (altitude) only. The distance component of the coordinate (range) is set to 0.

Parameters:
julianDay - the Julian Day
ellipsoidal - the observer's position on the Earth's surface
equatorial - the object's geocentric equatorial coordinate
horizontal - the Spherical object to initialize with the calculated local horizontal coordinate of the object

getTopoCentricHorizonCoordinate

public void getTopoCentricHorizonCoordinate(double julianDay,
                                            Ellipsoidal ellipsoidal,
                                            Spherical equatorial,
                                            Spherical horizontal)
Calculate the topo-centric horizontal coordinate (the look at angle) of an earth orbiting satellite. This method does evaluate the distance components of the coordinates (both the elevation of the observer's position above the ellipsoid and the distance of the object from the Earth). Therefore this method is useful for obtaining results for objects in close proximity to the Earth such as satellites and the Moon. From Orbital Coordinate Systems, Part II.

Parameters:
julianDay - the Julian Day
ellipsoidal - the observer's position on the Earth's surface
equatorial - the satellite's geocentric equatorial coordinate
horizontal - the Spherical object to initialize with the calculated local horizontal coordinate of the object

getAberrationCorrection

public void getAberrationCorrection(double julianDay,
                                    Spherical geocentricEcliptic,
                                    Spherical correction)
Get the aberration correction for the geocentric ecliptic coordinate of an object. The coordinate correction is in longitude and latitude only. The distance component of the coordinate is set to 0.

Parameters:
julianDay - the Julian Day
geocentricEcliptic - the geocentric ecliptic coordinate.
correction - the Spherical object to initialize with the coordinate correction

getEquationOfTime

public Angle getEquationOfTime(double julianDay)
Get the equation of time value for the Julian Day. The equation of time describes the variation between clock time and solar time due primarily to eccentricity in the earth's orbit. The value is positive when sun time is before clock time and negative when sun time is after clock time.

Parameters:
julianDay - the Julian Day
Returns:
the equation of time value

Jeospace API

Copyright © 2006 - jeospace.org