Generating Tracking Data Files

Top  Previous  Next

For each of the observation types discussed on the Simulating Tracking Data page, FreeFlyer can be used to generate tracking data in standardized file formats. The available observation and file types are shown in the table below. These files can then be included as data sources in an estimation process (Kalman Filter, Square Root Information Filter, Unscented Kalman Filter, or Batch Least Squares).


File Type


Observation Type



BRTS observations

FF Ground Observation files


Ground Station observations

UTDF files


GPS Pivot Point Solution files


Point Solution observations

BlackJack Point Solution files


RINEX files


Pseudorange observations

Spacecraft Observation files


Spacecraft observations



TDRS observations


The first step is to create an object of the desired file type. An example of the creation of each available file type is shown below.


BRTSUTDFFile               BRTSUTDFFile1;

FFGroundObservationFile    FFGroundObservationFile1;

UTDFFile                   UTDFFile1;

DSN60ByteObservationFile   DSN60ByteObservationFile1;

GPSPivotPointSolutionFile  GPSPivotPointSolutionFile1;

BlackJackPointSolutionFile BlackJackPointSolutionFile1;

RinexObsFile               RinexObsFile1;

SpacecraftObservationFile  SpacecraftObservationFile1;

TDRSUTDFFile               TDRSUTDFFile1;


There are a variety of Sample Mission Plans (included with your FreeFlyer installation) that demonstrate various applications of these topics. Continue to the Orbit Determination Samples page to view descriptions and images of these examples or jump to one of the Mission Plans listed below.


Orbit Determination Samples

Generate Tracking Data



Create a List of Observations

Once the file object has been created, you can use the WriteValidDataToFile method to generate an output file. This method takes an argument of a List of Observations. So, before writing the data, you will want to create and configure the observation List, as shown in the example below.


// Set up List of GroundStationObservations

List<GroundStationObservation> GroundStationObservations;

GroundStationObservations.Count = numSteps;


For i = 0 to numSteps-1;



    // See the Simulating Data page for more on configuring the different Observation types



Once the objects have been set up, you can use a loop to populate the List of observations with data:


// Populate the List of GroundStationObservations with data


TimeSpan duration = TimeSpan.FromDays(5);


While (Spacecraft1.ElapsedTime < duration);



     Step Spacecraft1;

    i = i+1;




A List of SpacecraftObservations can be generated in a similar fashion. Note the observation settings that are assigned for each SpacecraftObservation object in the List.


/ Set up List of SpacecraftObservations

List<SpacecraftObservation> SpacecraftObservations;

SpacecraftObservations.Count = numSteps;


For i = 0 to numSteps-1;

    SpacecraftObservations[i].UseRange = 0;

    SpacecraftObservations[i].UseRangeRate = 0;


    SpacecraftObservations[i].UseRightAscension = 1;

    SpacecraftObservations[i].UseDeclination = 1;


    SpacecraftObservations[i].UseObserverPosition = 1;

    SpacecraftObservations[i].UseLightTimeCorrection = 1;




    // See the Simulating Data page for more on configuring the different Observation types



// Populate the List of SpacecraftObservations with data

While (Spacecraft1.ElapsedTime < duration);



     Step Spacecraft1;

     Step Spacecraft2;






Write Data to a File

Then, write the observations out to a file using the WriteValidDataToFile method:


// Write List of GroundStationObservations to an output file

FFGroundObservationFile1.WriteValidDataToFile("FFGroundObservationSampleData.txt", GroundStationObservations);


// -- OR --


FFSpacecraftObservationFile1.WriteValidDataToFile("FFSpacecraftObservationSampleData.txt", SpacecraftObservations);


This newly generated file can now be used as a data source for FreeFlyer's Kalman Filter, Square Root Information Filter, Unscented Kalman Filter, or Batch Least Squares orbit determination processes. See Including Tracking Data in an Estimation Process for more information.


If you would like to view a graphical representation of the data in this file and edit out certain data points or bad passes before including it in an estimation process, see the page on Using the Tracking Data Editor.