public class RinexNavigationRecord extends Object implements IAvailability
Constructor and Description |
---|
RinexNavigationRecord(int prn)
Initializes a new instance.
|
Modifier and Type | Method and Description |
---|---|
Platform |
createSatellite()
Creates a GPS satellite for this RINEX record.
|
Platform |
createSatellite(BehaviorBeyondAvailability evaluationBehavior)
Creates a GPS satellite for this RINEX record.
|
RinexNavigationEphemeris[] |
getAllEphemerisData()
Retrieves the
RinexNavigationEphemeris defining all the characteristics of this satellite. |
IGpsElements[] |
getAllGpsElementsFromEphemerisData()
Retrieves the
IGpsElements defining the orbit of this satellite. |
TimeIntervalCollection |
getAvailabilityIntervals()
Gets a
TimeIntervalCollection over which data is available. |
TimeIntervalCollection |
getAvailabilityIntervals(TimeIntervalCollection consideredIntervals)
Gets the intervals over which data is available.
|
RinexNavigationEphemeris |
getDataFromMostRecentEphemeris(GlobalPositioningSystemDate date)
Retrieves the
RinexNavigationEphemeris defining all characteristics of this satellite
which represent the most recent ephemeris prior to date , compared to TransmissionTime (get ). |
IGpsElements |
getElementsFromMostRecentEphemeris(GlobalPositioningSystemDate date)
Retrieves the
IGpsElements defining the orbit of this satellite
which represent the most recent ephemeris prior to date . |
int |
getNumberOfEphemerides()
Gets the number of ephemerides in this record for this
PseudoRandomNumber (get ). |
int |
getPseudoRandomNumber()
Gets the Pseudo Random Number (PRN).
|
boolean |
isAvailable(JulianDate date)
Determines if valid data is available for the given
JulianDate . |
void |
readEphemerisBlock(String[] ephemerisBlock)
Reads a record from a stream.
|
public RinexNavigationRecord(int prn)
prn
- The pseudo-random number (PRN) of satellite associated with this record.public TimeIntervalCollection getAvailabilityIntervals(TimeIntervalCollection consideredIntervals)
getAvailabilityIntervals
in interface IAvailability
consideredIntervals
- The intervals over which availability information is needed. Note that the returned availability
intervals may indicate availability outside of these intervals of consideration.public final boolean isAvailable(@Nonnull JulianDate date)
JulianDate
.isAvailable
in interface IAvailability
date
- The date for which to check availability.true
if valid data is available for this date; otherwise false
.@Nonnull public final TimeIntervalCollection getAvailabilityIntervals()
TimeIntervalCollection
over which data is available.
If the availability interval is infinite, this returns
Infinite
(get
).
It is recommended that you call RinexNavigationRecord.isAvailable(agi.foundation.time.JulianDate)
to determine availability instead of
calling this method and checking for yourself.
public final void readEphemerisBlock(@Nonnull String[] ephemerisBlock)
ephemerisBlock
- The block of eight lines representing the ephemeris for a
single GPS PRN.ArgumentNullException
- Thrown when ephemerisBlock
is null
.ArgumentException
- Thrown when the length of the ephemerisBlock
is less than 8.IllegalStateException
- Thrown when the ephemerisBlock
has an invalid pseudo-random number (PRN)
in its first line.@Nonnull public final Platform createSatellite()
@Nonnull public final Platform createSatellite(@Nonnull BehaviorBeyondAvailability evaluationBehavior)
evaluationBehavior
- Instructs the GpsRinexPropagator
what to do outside of this record's availability.public final IGpsElements getElementsFromMostRecentEphemeris(@Nonnull GlobalPositioningSystemDate date)
IGpsElements
defining the orbit of this satellite
which represent the most recent ephemeris prior to date
.date
- The date to consider.public final RinexNavigationEphemeris getDataFromMostRecentEphemeris(@Nonnull GlobalPositioningSystemDate date)
RinexNavigationEphemeris
defining all characteristics of this satellite
which represent the most recent ephemeris prior to date
, compared to TransmissionTime
(get
).
The ephemeris blocks are ordered according to the TransmissionTime
(get
)
within the current GPS week. The GpsWeek
(get
) parameter is not used in the comparison because that
week is referenced to the TimeOfEphemeris
(get
) and not the TransmissionTime
(get
).
While there is a GPS week parameter downlinked by GPS in Subframe 1 (word 3), it is not included in the RINEX format.
date
- The date to consider.public final IGpsElements[] getAllGpsElementsFromEphemerisData()
IGpsElements
defining the orbit of this satellite.
The array is sorted to be sequentially increasing
according to TransmissionTime
(get
).
public final RinexNavigationEphemeris[] getAllEphemerisData()
RinexNavigationEphemeris
defining all the characteristics of this satellite.
The array is sorted to be sequentially increasing
according to TransmissionTimeGpsDate
(get
).
public final int getNumberOfEphemerides()
PseudoRandomNumber
(get
).public final int getPseudoRandomNumber()