public final class MroStereoPair extends AbstractStereoPair
To instantiate a new MRO stereo pair, use the MroStereoPair.Builder
. Create a new
builder with the two MRO observations, optionally set a label and/or
comment, and invoke its build
method. For example,
to create a new MRO stereo pair from two observations of a Target
called aramChaos, one on orbit 13071 and the other on orbit 13137,
use the following code:
MroObservation obs1 = new MroObservation.Builder ( MroObservation.OrbitalData.findData (aramChaos, 13071) ).label ("ESP_013071_1825").comment ("Stereo-1 of Aram Chaos").build (); MroObservation obs2 = new MroObservation.Builder ( MroObservation.OrbitalData.findData (aramChaos, 13137) ).label ("ESP_013137_1825").comment ("Stereo-2 of Aram Chaos").build (); MroStereoPair pair = new MroStereoPair.Builder ( obs1, obs2 ).label ("Aram Chaos Pair").comment ("Candidate").build ();
The two observations must be of the same target site or an IllegalArgumentException
is thrown at construction.
Modifier and Type | Class and Description |
---|---|
static class |
MroStereoPair.Builder
A builder for an immutable MRO stereo pair.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ID
Class identification name with source code version and date.
|
stereo1, stereo2
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o)
Indicates whether some other object is "equal to" this one.
|
boolean |
equivalent(MroStereoPair p)
Indicates whether an MRO stereo pair is "equivalent to" this one.
|
java.lang.String |
getComment()
Gets the stereo pair's optional comment.
|
java.lang.String |
getLabel()
Gets the stereo pair's optional label.
|
double |
getShadowTipChange()
Gets the change in shadow tip position for a hypothetical unit-length pole
between the stereo-1 observation and the stereo-2 observation.
|
double |
getSolarSeparation()
Gets the solar separation angle for the pair.
|
double |
getStereoSeparation()
Gets the stereo separation angle for the pair.
|
int |
hashCode()
Returns a hash code value for this stereo pair.
|
java.lang.String |
toString()
Gets a string representation of this MRO stereo pair.
|
getEmissionAngleDifference, getIncidenceAngleDifference, getPhaseAngleDifference, getSolarAzimuthChange, getSolarAzimuthDifference, getSolarLongitudeDifference, getStereo1, getStereo2, getSubsolarLatitudeChange
public static final java.lang.String ID
public java.lang.String getLabel()
getLabel
in interface StereoPair
getLabel
in class AbstractStereoPair
public java.lang.String getComment()
getComment
in interface StereoPair
getComment
in class AbstractStereoPair
public double getStereoSeparation()
θ = acos ((u ⋅ v) / (||u|| ||v||))
The separation angle is also known as the stereo convergence angle.
getStereoSeparation
in interface StereoPair
getStereoSeparation
in class AbstractStereoPair
AbstractStereoPair.getStereoSeparation()
public double getSolarSeparation()
Mathematically, the angle θ, is computed as follows. For solar altitude a and azimuth z, for observations 1 and 2, the separation is
θ = acos (cos a1 cos a2 cos (z1 - z2) + sin a1 sin a2)
(This equation is the same as for getStereoSeparation()
, but for the
sun's position in spherical coordinates with unit vectors described by
a and z.)
getSolarSeparation
in interface StereoPair
getSolarSeparation
in class AbstractStereoPair
public double getShadowTipChange()
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.public boolean equivalent(MroStereoPair p)
equal
, or
if the stereo-1 and stereo-2 observations are reversed while the label and
comment are the same.
Note that if two pairs are equivalent but not equal, signed
differences between the two pairs will be opposite in sign. The AbstractStereoPair.getSolarAzimuthChange()
method, in particular, will return oppositely
signed results.
p
- the MRO stereo pair to which this pair 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