The smoother object is represented in the Browser and in the ODTK toolbar by the icon. Smoothing may be performed over the results of one or more filter runs. If smoothing over multiple filter runs is desired, the .rough files from the filter runs must be given unique names so that data is not overwritten.
The following smoother settings can be viewed and/or edited in the Object Properties window:
NOTE: To understand some of the definitions in the following table, it is essential to bear in mind that the smoother runs backward in time, so that typically one would start smoothing at the latest filter time in the enabled .rough file(s) and smooth backward to some time. For further discussion, see the section following the table.
|Input - Files||Click here to launch a dialog that allows you to add one or more .rough files to be processed by the smoother.|
|Input - Remove||This option allows you to specify whether you want to delete all .rough files in the Files list after the smoother run is complete. The .rough files are deleted regardless of the Enabled flag associated with each rough file.|
|ProcessControl - StateTransitionMode||Select between:
|ProcessControl - StartMode||Select between:
|ProcessControl - StartTime||If StartMode (above) is set to StartTime, enter the desired start time (within the time span covered by the .rough file(s)) here; the default is based on the scenario's start time. If StartMode is set to LatestFilterTime, this field is a read-only display of the latest filter time.|
|ProcessControl - StopMode||Select among:
|ProcessControl - StopTime||If StopMode (above) is set to StopTime, enter the desired stop time (within the time span covered by the .rough file(s)) here; the default is based on the scenario's stop time. If StopMode is set to EarliestFilterTime, this field is a read-only display of the earliest filter time. If StopMode is set to TimeSpan, this field does not display.|
|ProcessControl - TimeSpan||If StopMode (above) is set to TimeSpan, enter the desired time interval for the smoother to run. Depending on the selection made for StartMode (above), the interval will begin with the selected StartTime or the latest filter time based on the enabled .rough file(s). If StopMode is not set to TimeSpan, this field does not display.|
|ProcessControl - OutputLag||Enter a time value representing the desired output lag. The latest time in the smoothed output will be at the process start time (specific time or last data in the .rough file) minus the output lag.|
|ProcessControl - OrbitTypeDivergenceCheck||Enables a divergence monitoring check which stops smoother processing if the smoother and filter orbit states represent different types of orbits (one elliptical orbit and one hyperbolic orbit). By default, this check is enabled. Certain situations, such as a transition between a closed orbit and an escape trajectory, will necessitate the disabling of this check for smoothing operations.|
|Controls for simulating deviations in selected atmospheric density model parameters.|
|Output - DataArchive||Various Data Archive options are available.|
|Output - STKEphemeris||
Configure the STKEphemeris attribute to write the smoother output to a file in your Ephemeris directory during the smoothing process. The file is assigned a default name based on the name of the satellite:
where SMOOTHER REF TIME is one of the following:
And where ext is one of the following:
Note: If Predict.Generate is set to false, PredictStop is the filter stop time.
Note: Smoother start time > smoother stop time, while ProcessStart < ProcessStop.
Note: The smoother ephemeris files may also contain position or position and velocity covariance information.
|Output - SP3Ephemeris||
Only applies to scenarios containing one or more Constellation objects where Constellation.SVEstimated states include the ephemeris and clock.
The SP3Ephemeris parameter is used to optionally reformat the output ephemeris and clock data into a sp3 (http://igscb.jpl.nasa.gov/components/formats.html) file. One file is generated for each Constellation object for which ephemeris and clocks were estimated.
You can generate the sp3 data over:
Data over the process interval requires that STKEphemeris be generated over the process interval and that clock data be added to the process run file.
Data over the predict interval requires that the STKEphemeris be generated over the predict interval.
The granularity for the STKEphemeris may be different than the SP3 ephemeris.
The output file name is in the form:
<GNSS Name>_<Process Type>_yyymmdd_hhmmss.sp3
<Process_Type> = “Truth”| “Filter| “Smoother”
yyymmdd_hhmmss refers to the start time of the SP3 file in Scenario.Units.DateFormat system.
Example filename is:GPS_Filter_20120601_120000.sp3
|Output - FilterDifferencingControls||
Controls whether a Filter - Smoother State Difference run file (.difrun) will be generated during Smoother processing.
Note: The generation of this file does not require that corresponding filter run file(s) or smoother run file be generated. Filter data is extracted from the rough file(s) and the Smoother data is saved from smoother computations.
|Output - Debug||See below.|
The following is intended to clarify the relationships among OutputLag, IntervalLength, and the Start and Stop options defined in the above table:
The smoothed state is initialized to the filtered state at the StartTime, which, if you do not specify it, is the latest filter time in the enabled .rough file(s). As the smoother runs (backwards in time), if the filter has processed measurements, the smoother will smooth the ephemeris discontinuities based on state corrections and fold the measurement covariance into the remaining smoother span. Another way to say this is that once the smoothed data is initialized to the filtered data and begins running backwards, there is no improvement in smoothed data until the smoother processes a measurement update.
For example, suppose you ran the filter for 24 hours, and the last measurement pass ended at 22:30. When you run the smoother, the smoothed results will be identical from 24:00 to 22:30. If your OutputLag is 0, you will see that the smoothed state and covariance are the same over this region. If you want to output state and covariance only after the smoother has made improvements, then you might set your OutputLag to 2 hours, or 4 hours, or whatever you have determined is a good time based on the mission.
To illustrate the above, suppose that you have two back-to-back 24-hour .rough files, and that you want to get smoothed data over the first 36 hours, running the smoother with the following settings:
StartTime = day 2 24:00
OutputLag = 6 hours
With these settings, the smoother will open the day 2 rough file, begin processing at 24:00 backwards to 18:00 and, at 18:00, start outputting results, and run to completion at 00:00 on day 1.
WARNING: When you use multiple .rough files, there must not be any gaps in time between the file contents, and the state structure must match between the files. This is typically not a problem unless you select the wrong restart file.
TIP: To create multiple .rough files, you can run the filter in restart mode and create a unique .rough file name for each restart run.
The Debug attributes control whether informational internal smoother data will be dumped to a text file. Such a file can become quite large very quickly depending on state size and the number of steps taken during a smoother run.
The Eigenvalues attribute allows logging of determinants and eigenvalues of smoothed covariance matrices. The matrix names can be related directly to the smoother equations in Chapter 6 of ODTK Orbit Determination: Theorems & Equations.
To write eigenvalues and determinants of each smoother covariance matrix to a file, set the Generate attribute to true and specify a Filename.
A sample of an eigenvalue text file (generated during a filter run) accompanies this help system. The contents are the same for a smoother, except that the values generated are for the smoother matrices rather than the filter matrices.