public class YumaAlmanacRecord extends Object implements IGpsElements
Constructor and Description |
---|
YumaAlmanacRecord()
Initializes a new instance.
|
Modifier and Type | Method and Description |
---|---|
Platform |
createSatellite()
Creates a GPS satellite for this YUMA almanac record.
|
double |
getArgumentOfPerigee()
Gets the argument of perigee.
|
double |
getCosineCorrectionToArgumentOfLatitude()
Gets the amplitude of the cosine harmonic correction term to the Argument of Latitude.
|
double |
getCosineCorrectionToInclination()
Gets the amplitude of the cosine harmonic correction term to the angle of inclination.
|
double |
getCosineCorrectionToOrbitRadius()
Gets the amplitude of the sine harmonic correction term to the orbit radius.
|
double |
getEccentricity()
Gets eccentricity.
|
GlobalPositioningSystemDate |
getEpoch()
Gets the epoch at which these elements are specified.
|
double |
getFirstOrderClockCorrection()
Gets the first order clock correction.
|
int |
getHealth()
Gets the satellite health code.
|
double |
getInclinationAngle()
Gets the inclination angle.
|
double |
getIssueOfData()
Gets the issue of data ephemeris (IODE).
|
double |
getLongitudeOfAscendingNode()
Gets the longitude of ascending node of orbit plane at weekly epoch.
|
double |
getMeanAnomaly()
Gets the mean anomaly.
|
double |
getMeanMotionDifference()
Gets the mean motion difference from computed value.
|
int |
getPseudoRandomNumber()
Gets the Pseudo Random Number (PRN).
|
double |
getRateOfInclinationAngle()
Gets the rate of inclination angle (IDOT).
|
double |
getRateOfRightAscension()
Gets the rate of right ascension.
|
double |
getSineCorrectionToArgumentOfLatitude()
Gets the amplitude of the sine harmonic correction term to the Argument of Latitude.
|
double |
getSineCorrectionToInclination()
Gets the amplitude of the sine harmonic correction term to the angle of inclination.
|
double |
getSineCorrectionToOrbitRadius()
Gets the amplitude of the sine harmonic correction term to the orbit radius.
|
double |
getSquareRootOfSemimajorAxis()
Gets the square root of the semi-major axis (sqrt(meters)).
|
double |
getZerothOrderClockCorrection()
Gets the zeroth order clock correction.
|
static YumaAlmanacRecord |
readFrom(BufferedReader reader,
int rolloverCount)
Reads a record from a reader.
|
void |
setArgumentOfPerigee(double value)
Sets the argument of perigee.
|
void |
setEccentricity(double value)
Sets eccentricity.
|
void |
setEpoch(GlobalPositioningSystemDate value)
Sets the epoch at which these elements are specified.
|
void |
setFirstOrderClockCorrection(double value)
Sets the first order clock correction.
|
void |
setHealth(int value)
Sets the satellite health code.
|
void |
setInclinationAngle(double value)
Sets the inclination angle.
|
void |
setLongitudeOfAscendingNode(double value)
Sets the longitude of ascending node of orbit plane at weekly epoch.
|
void |
setMeanAnomaly(double value)
Sets the mean anomaly.
|
void |
setPseudoRandomNumber(int value)
Sets the Pseudo Random Number (PRN).
|
void |
setRateOfRightAscension(double value)
Sets the rate of right ascension.
|
void |
setSquareRootOfSemimajorAxis(double value)
Sets the square root of the semi-major axis (sqrt(meters)).
|
void |
setZerothOrderClockCorrection(double value)
Sets the zeroth order clock correction.
|
@Nullable public static YumaAlmanacRecord readFrom(@Nonnull BufferedReader reader, int rolloverCount)
The following list represents the rollover dates for the GPS week parameter. On or after the date listed below, you will need to use the specified rollover count.
Date | Rollover Count |
---|---|
January 6, 1980 | 0 |
August 22, 1999 | 1 |
April 7, 2019 | 2 |
November 21, 2038 | 3 |
July 7, 2058 | 4 |
To compute the rollover count for a given date, construct a
GlobalPositioningSystemDate
and use the value of
RolloverCount
(get
/ set
).
reader
- The reader to read from.rolloverCount
- The number of times the GPS week counter had rolled over when this almanac was created.
See below for more information.null
if there are no records left to be read.ArgumentNullException
- Thrown when reader
is null
.ArgumentOutOfRangeException
- Thrown when rolloverCount
is less than zero.NumberFormatException
- Thrown when the Yuma Almanac is not well-formed.RuntimeException
- Thrown when the values in the Yuma almanac are too large.IndexOutOfBoundsException
- Thrown when a line in the Yuma almanac is not well-formed.@Nonnull public final GlobalPositioningSystemDate getEpoch()
getEpoch
in interface IGpsElements
public final void setEpoch(@Nonnull GlobalPositioningSystemDate value)
public final int getPseudoRandomNumber()
public final void setPseudoRandomNumber(int value)
public final double getZerothOrderClockCorrection()
public final void setZerothOrderClockCorrection(double value)
public final double getFirstOrderClockCorrection()
public final void setFirstOrderClockCorrection(double value)
public final double getInclinationAngle()
rad
getInclinationAngle
in interface IGpsElements
public final void setInclinationAngle(double value)
rad
public final double getMeanAnomaly()
rad
getMeanAnomaly
in interface IGpsElements
public final void setMeanAnomaly(double value)
rad
public final double getArgumentOfPerigee()
rad
getArgumentOfPerigee
in interface IGpsElements
public final void setArgumentOfPerigee(double value)
rad
public final double getRateOfRightAscension()
rad / s
getRateOfRightAscension
in interface IGpsElements
public final void setRateOfRightAscension(double value)
rad / s
public final double getLongitudeOfAscendingNode()
rad
getLongitudeOfAscendingNode
in interface IGpsElements
public final void setLongitudeOfAscendingNode(double value)
rad
public final int getHealth()
public final void setHealth(int value)
@Nonnull public final Platform createSatellite()
public final double getCosineCorrectionToArgumentOfLatitude()
rad
This property always returns 0.0 because Yuma almanacs do not include this information.
getCosineCorrectionToArgumentOfLatitude
in interface IGpsElements
public final double getCosineCorrectionToInclination()
rad
This property always returns 0.0 because Yuma almanacs do not include this information.
getCosineCorrectionToInclination
in interface IGpsElements
public final double getCosineCorrectionToOrbitRadius()
m
This property always returns 0.0 because Yuma almanacs do not include this information.
getCosineCorrectionToOrbitRadius
in interface IGpsElements
public final double getEccentricity()
unitless
getEccentricity
in interface IGpsElements
public final void setEccentricity(double value)
unitless
public final double getIssueOfData()
This property always returns 0 because Yuma almanacs do not include this information.
getIssueOfData
in interface IGpsElements
public final double getMeanMotionDifference()
rad / s
This property always returns 0.0 because Yuma almanacs do not include this information.
getMeanMotionDifference
in interface IGpsElements
public final double getRateOfInclinationAngle()
rad / s
This property always returns 0.0 because Yuma almanacs do not include this information.
getRateOfInclinationAngle
in interface IGpsElements
public final double getSineCorrectionToArgumentOfLatitude()
rad
This property always returns 0.0 because Yuma almanacs do not include this information.
getSineCorrectionToArgumentOfLatitude
in interface IGpsElements
public final double getSineCorrectionToInclination()
rad
This property always returns 0.0 because Yuma almanacs do not include this information.
getSineCorrectionToInclination
in interface IGpsElements
public final double getSineCorrectionToOrbitRadius()
m
This property always returns 0.0 because Yuma almanacs do not include this information.
getSineCorrectionToOrbitRadius
in interface IGpsElements
public final double getSquareRootOfSemimajorAxis()
sqrt(m)
getSquareRootOfSemimajorAxis
in interface IGpsElements
public final void setSquareRootOfSemimajorAxis(double value)
sqrt(m)