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

Access

Observation Type

BRTS UTDF files

Read

BRTS observations

FF Ground Observation files

Read/Write

Ground Station observations

UTDF files

Read

GPS Pivot Point Solution files

Read/Write

Point Solution observations

BlackJack Point Solution files

Read/Write

RINEX files

Read/Write

Pseudorange observations

Spacecraft Observation files

Read/Write

Spacecraft observations

TDRS UTDF files

Read

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;

    GroundStationObservations[i].SetObjectBeingObserved(Spacecraft1);

    GroundStationObservations[i].SetObserver(GroundStation1.Antenna);

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

End;

 

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

 

    Spacecraft1.SimulateTrackingData(GroundStationObservations[i]);

     Step Spacecraft1;

    i = i+1;

 

End;

 

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;

 

    SpacecraftObservations[i].SetObjectBeingObserved(Spacecraft2);

    SpacecraftObservations[i].SetObserver(Spacecraft1.Sensors[0]);

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

End;

 

// Populate the List of SpacecraftObservations with data

While (Spacecraft1.ElapsedTime < duration);

 

    Spacecraft1.SimulateTrackingData(SpacecraftObservations[i]);

     Step Spacecraft1;

     Step Spacecraft2;

    i++;

 

End;

 

 

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.