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