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()