The Smoother

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.

Smoother Properties
Property Description
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:
  • Nonlinear – smoothed estimates are transitioned backwards in time using the full non-linear model. Most notably, orbit estimates are numerically integrated in reverse time. This is the heritage mode for ODTK versions prior to v6.1.2.


  • Linear - smoothed estimates are transitioned backwards in time using the linear state error transition function computed during filtering. This method can be significantly more computationally efficient for cases where the numerical integration of the orbit state requires the majority of the time in the smoothing process.

ProcessControl - StartMode Select between:
  • LatestFilterTime - start at the latest filter time based on the enabled .rough file(s).


  • StartTime - enter the desired start time (which must fall within the time span covered by the .rough file(s)).

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:
  • EarliestFilterTime - stop at the earliest filter time based on the enabled .rough file(s).


  • StopTime - enter the desired stop time (which must fall within the time span covered by the .rough file(s)).


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

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.
GlobalAtmosphericDensityEstimation
(Simulator only)
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:

Sat_<SATELLITE NAME>_Smooth_<SMOOTHER REF TIME>.ext

where SMOOTHER REF TIME is one of the following:

  • ProcessStart - smoother stop time
  • ProcessStop - smoother start time
  • PredictStart - smoother start time
  • PredictStop - prediction end time

And where ext is one of the following:

  • e - when using STK Ephemeris formt
  • oem - when using CCSDS 502 format

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:

  1. The process interval only, or
  2. The predict interval only, or
  3. The process & predict interval

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

where

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

  • Generate = true if the difference file is to be generated
  • Filename is the name of the output state difference run file. This attribute is hidden unless Generate = true.
  • SaveCrossCorrelations is an option whether to store the full covariances (true) in the .difrun file or only the covariance block diagonals (false). The blocks are defined as for the Output.DataArchive.SaveCrossCorrelations property. The full covariances are currently only needed in the .difrun file to support certain URE calculations. If URE calculations are not needed then setting this option to false will save storage space as well as speed up reporting and graphing time.
Output - Debug See below.

More On Smoother Properties

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.

Debug

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.

Debug.Eigenvalues

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.

 

 

ODTK 6.5