public final class MroObservation extends AbstractObservation
To instantiate a new MRO observation, use the MroObservation.Builder
. Create a new
builder with an MroObservation.OrbitalData
model derived from a Target
and
orbit number of interest, optionally set a label and/or comment, and invoke
the builder's build
method. For example, to create a
new observation of a target called aramChaos on orbit 13203, use
the following code:
OrbitalData orbitalData = MroObservation.OrbitalData.findData ( aramChaos, 13203 ); MroObservation observation = new MroObservation.Builder ( orbitalData ).label ("ESP_013203_1825").comment ("Stereo-1 of Aram Chaos").build ();
Alternatively, if the ephemeris time and roll angle are already known via another source, the builder may be instantiated with the target, orbit, ephemeris time, and roll angle directly. For exmaple, the same observation may be obtained with the following code:
MroObservation observation = new MroObservation.Builder ( aramChaos, Orbit.valueOf ("13203a"), 296161196.352, Math.toRadians (-23.653) ).label ("ESP_013203_1825").comment ("Stereo-1 of Aram Chaos").build ();
Note that the builder (and the resultant observation) assume the roll angle
is in radians. If the angle is obtained via the MTT findTargeted
method in particular, the roll angle is
in degrees and must be converted to radians as shown above.
The NAIF ID
of the target's body
must be 499 (Mars). If not, an IllegalArgumentException
will be thrown.
At construction, the location of MRO with respect to the target's body at
that time is calculated, as are the subsolar point on the target's body, the
photometric angles (phase, incidence, and emission), and 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.
If the builder's optional label (or comment) is null, the MRO observation's label (or comment) will be set to the empty string ("") at construction; neither will be null.
Modifier and Type | Class and Description |
---|---|
static class |
MroObservation.Builder
A builder for an immutable MRO observation.
|
static class |
MroObservation.Orbit
An immutable MRO orbit.
|
static class |
MroObservation.OrbitalData
A simple data model representing a subset of orbital data necessary for
planning an MRO-based observation.
|
static class |
MroObservation.OrbitPass
An enumeration of the MRO orbit "passes." The orbit pass indicates whether
the spacecraft is on the ascending or descending portion of the orbit.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ID
Class identification name with source code version and date.
|
basicObservationData
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o)
Indicates whether some other object is "equal to" this one.
|
java.lang.String |
getComment()
Gets the observation's optional comment.
|
java.lang.String |
getLabel()
Gets the observation's optional label.
|
static Observer |
getMro()
Gets the MRO observer associated with the MRO observation class.
|
MroObservation.Orbit |
getOrbit()
Gets the observation's orbit.
|
double |
getRollAngle()
Gets the observation's roll angle in radians.
|
int |
hashCode()
Returns a hash code value for this MRO observation.
|
java.lang.String |
toString()
Gets a string representation of this MRO observation.
|
getAltitude, getEmissionAngle, getEt, getIncidenceAngle, getLatitude, getLongitude, getObserver, getPhaseAngle, getPositionVector, getSolarAltitude, getSolarAzimuth, getSolarDeclination, getSolarLongitude, getSolarRightAscension, getSubsolarLatitude, getSubsolarLatitudeSlope, getSubsolarLongitude, getSubsolarLongitudeSlope, getTarget, getVelocityVector, getViewVector
public static final java.lang.String ID
public java.lang.String getLabel()
getLabel
in interface Observation
getLabel
in class AbstractObservation
public java.lang.String getComment()
getComment
in interface Observation
getComment
in class AbstractObservation
public MroObservation.Orbit getOrbit()
public double getRollAngle()
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)
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