public final class BasicObservationData
extends java.lang.Object
The basic model includes a position vector for the observer relative to the
target's Body
, a velocity vector, and a view vector, all in
rectangular coordinates. The view vector is a line between the target site
and the observer; the position vector is a line between the center of the
target body and the observer. The observer's east-leading longitude,
planetocentric latitude, and altitude above the target body's reference
spheroid are also components of the model.
The model includes the position of the subsolar point on the target body at that time and the local photometric angles (incidence, phase, and emission angles), as well as the solar longitude, Ls.
All calculations are performed at construction using the JPL NAIF SPICE
library. It is assumed that all necessary SPICE kernels are loaded into the
SPICE kernel pool when the observation is constructed; if not, a SpiceException
will be thrown.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ID
Class identification name with source code version and date.
|
Constructor and Description |
---|
BasicObservationData(Observer observer,
Target target,
double et)
Creates a new observation data model for an observer viewing a target at a
particular ephemeris time.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o)
Indicates whether some other object is "equal to" this one.
|
double |
getAltitude()
Gets the altitude of the observer in kilometers above the target body's
reference ellipsoid.
|
double |
getEmissionAngle()
Gets the emission angle at the target site for this observation.
|
double |
getEt()
Gets the ephemeris time of this observation.
|
double |
getIncidenceAngle()
Gets the incidence angle at the target site for this observation.
|
double |
getLatitude()
Gets the planetocentric latitude of the observer with respect to the target
body in the observer's reference frame.
|
double |
getLongitude()
Gets the east-leading longitude of the observer with respect to the target
body in the observer's reference frame.
|
Observer |
getObserver()
Gets this observation's observer.
|
double |
getPhaseAngle()
Gets the phase angle at the target site for this observation.
|
Triplet |
getPositionVector()
Gets the position vector of the observer with respect to the target body at
this observation's ephemeris time.
|
double |
getSolarAltitude()
Gets the altitude of the sun at the time of the observation.
|
double |
getSolarAzimuth()
Gets the azimuth of the sun at the time of the observation.
|
double |
getSolarDeclination()
Gets the declination of the sun at the time of the observation.
|
double |
getSolarLongitude()
Gets the solar longitude at the time of the observation.
|
double |
getSolarRightAscension()
Gets the right ascension of the sun at the time of the observation.
|
double |
getSubsolarLatitude()
Gets the planetocentric latitude of the subsolar point on the target body.
|
double |
getSubsolarLatitudeSlope()
Gets the time rate of change of the planetocentric latitude of the subsolar
point on the target body.
|
double |
getSubsolarLongitude()
Gets the east-leading longitude of the subsolar point on the target body.
|
double |
getSubsolarLongitudeSlope()
Gets the time rate of change of the east-leading longitude of the subsolar
point on the target body.
|
Target |
getTarget()
Gets the target of this observation.
|
Triplet |
getVelocityVector()
Gets the velocity vector of the observer with respect to the target body at
this observation's ephemeris time.
|
Triplet |
getViewVector()
Gets the vector between the observer and the target site at this
observation's ephemeris time.
|
int |
hashCode()
Returns a hash code value for this observation.
|
java.lang.String |
toString()
Gets a string representation of this observation.
|
public static final java.lang.String ID
public BasicObservationData(Observer observer, Target target, double et)
At construction, the location of the observer is calculated with respect to the target body in the observer's frame of reference at that time. The position of the subsolar point on the target body at that time and the local photometric angles (incidence, phase, and emission angles) are also calculated, as is the solar longitude, Ls.
It is assumed that all necessary SPICE kernels are loaded into the SPICE
kernel pool when the observation is constructed; if not, a SpiceException
will be thrown.
observer
- the observer.target
- the target site being observed.et
- the ephemeris time of the observation.java.lang.NullPointerException
- if either the observer or the target are
null.edu.asu.jmars.layer.obs.mro.SpiceException
- if the SPICE kernel pool lacks the necessary kernels
for calculating the observation data.public Observer getObserver()
public Target getTarget()
public double getEt()
public Triplet getPositionVector()
public Triplet getVelocityVector()
public Triplet getViewVector()
public double getLongitude()
public double getLatitude()
public double getAltitude()
public double getSolarLongitude()
public double getSolarRightAscension()
public double getSolarDeclination()
public double getSolarAltitude()
Altitude is also known as elevation.
public double getSolarAzimuth()
public double getSubsolarLongitude()
public double getSubsolarLatitude()
public double getSubsolarLongitudeSlope()
public double getSubsolarLatitudeSlope()
public double getPhaseAngle()
public double getIncidenceAngle()
public double getEmissionAngle()
public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object o)
Two observations are equal if and only if they have the same observer, target, ephemeris time, label, comment, and derived values.
equals
in class java.lang.Object
o
- the object to which this object is compared.Copyright \ (C) Arizona Board of Regents on behalf of the \ Planetary Image Research Laboratory, Lunar and \ Planetary Laboratory at the University of Arizona