Using a Broadcast Ephemeris

Top  Previous  Next

FreeFlyer also allows the user to propagate a Spacecraft using a Broadcast Ephemeris. Broadcast Ephemerides are set up differently than the other supported ephemeris formats discussed on the Setting up an Ephemeris page.


RinexNavFiles (also known as Broadcast Ephemerides) contain position, velocity, and clock information for navigation constellations in the Global Navigation Satellite System (GNSS). The GPS and Galileo constellations both use the RINEX format. The time system is GPS Time, and positions and velocities are in the ECEF reference frame, which FreeFlyer converts into the MJ2000 frame.


FreeFlyer can propagate a Spacecraft or a Formation from Rinex Navigation files using the BroadcastEphemeris propagator and can read and write Rinex Navigation files using the RinexNavFile object, but cannot generate new data in this format (Broadcast Ephemeris data can be read in and then written out to a new file, but cannot be simulated independently).


For more information on Rinex Navigation files, also known as Broadcast Ephemerides, including an example and instructions on how to obtain historical examples, see the Rinex Nav File page of the Ephemerides and AHF section of the Appendix. FreeFlyer supports the RINEX 2 and RINEX 3 formats.


Note: Due to its discontinuous nature, Broadcast Ephemeris data should not be used to propagate Spacecraft objects while detecting events using Interval Methods. Instead, the Broadcast Ephemeris should be used to set the initial state of the Spacecraft and then an integration-based propagator, such as an RK89 or Cowell integrator, should be used to propagate it.



Configuring a Spacecraft to use a Broadcast Ephemeris

To configure a Spacecraft to use a Broadcast Ephemeris, double-click the Spacecraft in the Object Browser and then select the Propagator page from the menu on the left. Once the Propagator page has been selected, use the "Motion Source" radio buttons to select propagation via Broadcast Ephemeris. The Broadcast Ephemeris Definition panel of the Propagator page is shown below.


Propagator Object Editor

Propagator Object Editor


Choose a Rinex Navigation file from the file browser and choose the step size on the Broadcast Ephemeris Definition panel. The Spacecraft PRN refers to the Spacecraft.SatelliteID property, which is set on the Orbit Determination - General page of the Spacecraft object editor. Note that the PRN must match one of the PRNs in the Rinex Navigation file. Finally, you must add a GNSSReceiver on the Orbit Determination - GNSSReceivers page of the Spacecraft object editor before propagating the Spacecraft with a Broadcast Ephemeris, since the Broadcast Ephemeris format requires the presence of a receiver in order to be parsed and loaded correctly.


To create a Spacecraft with a BroadcastEphemeris propagator via FreeFlyer script, use the following syntax:


Spacecraft Spacecraft1;

RinexNavFile RinexNavFile1("..\_Support_Files\GPS_Nav_File_08012008.08n");



The Spacecraft.LoadRinexNavFile method will also create a Sensor and attach it to the Spacecraft.


To set the propagation step size via FreeFlyer script, use type casting to access the BroadcastEphemeris propagator:


(Spacecraft1.Propagator AsType BroadcastEphemeris).StepSize = TIMESPAN(300 seconds);


Note: As of FreeFlyer 7.3, the default timing precision mode is nanosecond precision mode. For older Mission Plans that have not yet been converted from millisecond precision mode, the syntax for working with times such as step sizes is different. A sample is shown below; see the timing precision mode page for more information.


(Spacecraft1.Propagator AsType BroadcastEphemeris).StepSize = 300;


To learn more about related topics, see the Object Constructors and Type Casting references in the Working with Objects Guide.



Working with Broadcast Ephemeris propagator

Once a Spacecraft has been set up to use a Broadcast Ephemeris, you can access information about the GPS Broadcast Ephemeris data via FreeFlyer script. There are two ways to access GPS Broadcast Ephemeris information:


Via the BroadcastEphemeris Propagator Object

Properties of the BroadcastEphemeris object will give the Time of Ephemeris of the initial and final ephems, the number of ephems, as well as the file name and step size.


Alias prop = (Spacecraft1.Propagator AsType BroadcastEphemeris);


Report prop.NumberOfEphems, prop.InitialTOE, prop.FinalTOE;


Via the RinexNavFile Object

Properties of the RinexNavFile object will give information on the PRNs, Comments, and ephems contained in the file, as well as extensive information regarding the almanac and timing characteristics used in writing the file.


Report RinexNavFile1.NumberOfPRNs, RinexNavFile1.PRNs;

Report RinexNavFile1.NumberOfComments, RinexNavFile1.Comments;

Report RinexNavFile1.A0, RinexNavFile1.IonAlpha, RinexNavFile1.LeapSeconds;



See Also

BroadcastEphemeris Properties and Methods

RinexNavFile Properties and Methods

Rinex Nav File in Ephemerides Appendix