Least Squares

The Least Squares (LS) object is represented in the Browser and in the ODTK toolbar by the icon. You can introduce the LS object manually and configure it in the Object Properties window, as described below.

The following table describes LS attributes that you can configure:

Least Squares Properties
Property Description
RelaySatList

When processing TDRSS, TDOA or FDOA measurements, use this list to select the relay satellites that will be used to process measurements. To configure a satellite as a relay satellite for use in Least Squares, set its EstimateOrbit flag to false and assign a valid reference ephemeris. Also make certain that no measurement statistics are defined for it. When these conditions are met, the satellite will appear in the RelaySatList as an available relay satellite.

When you select one or more satellites for the list, LS will not process measurements relating to the unselected satellites. However, if you do not select any relay satellites (empty list), LS will process all valid relay satellites.

You can also use the RelaySatList to facilitate the estimation of satellites with tracking instruments that are tracking other satellites. In this case, the estimated satellite is taking observations of one or more secondary satellites, where the secondary satellites are entered into the RelaySatList.

TrackerList ODTK uses the TrackerList attribute to subselect the trackers available for LS. If the list is empty, LS will use all available trackers. If you add trackers to the list, then LS will only process the measurements that are related to the trackers in the list. You must configure tracker satellites to use a reference ephemeris.

If a satellite is a tracker (using Eph Pos and Eph Vel), that satellite is automatically a tracker if you specify Pos Eph and or Pos Vel statistics.

EmitterList This attribute enables you to select a unique selection of emitters to use in a Least Squares solution. ODTK displays the emitter list in the Data Limiting section of the Static Product Builder; however, ODTK does not use it to actually limit the display of Least Squares residual data.
MeasTypes Use the MeasTypes list to select the measurement types for LS. An empty list is equivalent to including all measurement types.
CalcNumMeasurements

When opening the Stages list, ODTK reads through the measurement file to determine the span of data and to determine how many measurements are in any currently defined stages. If the scenario contains many measurements and the process consumes too much time, you can skip the tabulation of measurements. If you set this attribute to false, when you open the Stages list you will see that NumMeasurements is set to 0.

By setting this attribute to false, you can speed up the display of the stages list by skipping calculations of the number of measurements for each stage. This is very useful when you are dealing with large measurement files.

FinalSigmaEditIteration

Specify the latest iteration when ODTK will make updated sigma editing decisions. Later iterations will continue to use the same editing decisions. This option can accelerate convergence when changing editing decisions result in a moving optimization target.

Stages Select the Stages property and click where indicated to display a List window that enables you to define one or more LS stages.
StartFromLastSolution

This property enables you to restart LS using the last LS solution estimates (i.e., those that appear in the “Output” properties). This is useful for restarting LS when the previous LS hit maximum iterations. This property is not available when a “last solution” is not available, such as in a new scenario when the previous LS failed before reaching maximum iterations. The default is false. If you set it to true and the subsequent LS run again hits maximum iterations, it will stay true; if LS runs to normal completion, it will revert to false.

Restarting may not be an exact match when compared to an LS solution that ran entirely to completion. This pertains primarily to when you use the LevenbergMarquardt LineSearch method. In this case, ODTK will use the initial deweighting on the next iteration since the deweighting algorithm parameters don't carry over.

CustomDataEditing These attributes enable you to thin, include, or exclude tracking data in any combination of time/measurement type/tracking strand/primary object, where primary object refers to all or any satellite, GNSS satellite, or emitter.
ResidualEditing These attributes mimic the CustomDataEditing attributes but are intended to store the results from using the Graphical Residual Editing tool.
OrbitStateUpdateRepresentation Select the coordinates to be used when updating the nonlinear orbit trajectory at the end of each iteration. The choices are Cartesian coordinates and equinoctial elements. ODTK always computes the state update in Cartesian coordinates, but it can linearly transform the state update to equinoctial elements. For closed orbits where the motion is dominated by the two-body dynamics, the equinoctial option typically leads to faster convergence and an increased capture region. You can use Cartesian coordinates for all classes of orbits, including open orbits.
SolveForMethod

If you enable MKL then the SolveForMethod optionenables you to select either the MKL QR, Factorization, SVD, or DivAndConquer Linear Least Squares (LLS) method as the ODTK LS solve for method. For new scenarios, "Factorization" is the default; for scenarios created prior to ODTK 6.1.1, QR is the default. If you do not enable MKL, then you can only select the non-MKL QR algorithm.

QR uses the QR factorization method.

Factorization computes the minimum-norm solution using the complete orthogonal factorization of the A matrix.

SVD computes the minimum-norm solution using the singular value decomposition of the A matrix.

DivAndConquer computes the minimum-norm solution using the singular value decomposition of the A matrix and a divide and conquer method.

Reference the LAPACK User's Guide for more details.

CombineMeasUncertainty Measurement statistics typically contain two sources of uncertainty: white noise and serially correlated uncertainty modeled as a Gauss-Markov process. When set to true, this option will compute an effective measurement noise variance for least squares estimation by summing the white noise variance and the Gauss-Markov variance. When set to false, it uses the white noise variance from the measurement statistics.
LineSearch

This property is intended to aid in those cases where the LS corrections become so large that the solution diverges. Method choices include:

None: ODTK will not use a line search method.


FractionalShift: When ODTK detects divergence, it scales the most recent state correction byt the input “Fraction” and retries LS. It continues this process until achieving a better RMS or until it reaches the MaxTrys limit. This method changes the length of the correction vector but not the direction.


LevenberqMarquardt (LM): If the “direction” of the actual solution is too far from the nominal LS correction, then ODTK changes both the direction and length to find a solution. The LM algorithm tries to accomplish this by deweighting the diagonals of the ATWA matrix such that the deweighting is small if it is determined that the correction is in the correct direction, but the deweighting is large if not in the correct direction. The deweighting is initially controlled by the input parameter “tau”; a larger tau value means more the deweighting. Subsequent to the first iteration, the algorithm adjusts tau. The larger the value of tau the more likely is convergence, but convergence may be slower than necessary. An initial tau of 0.001 to 1 is recommended for cases that you expect to be difficult; a value of 0.000001 (or less) should behave similar to a nominal LS run. You can control the deweighting on successive iterations by one of two Damping Control methods: “GainRatio” or “FixedDamping.” If you select GainRatio, ODTK calculates the change in the deweighting by the code based on the change of the actual RMS to the predicted RMS. If you select FixedDamping, then ODTK controls the change by the “AcceptDampingFactor” and “Reject DampingFactor”. If the correction improves the RMS, then ODTK will use the “AcceptDampingFactor” to lower the deweighting factor (factor_new = factor_old/AcceptDampingFactor). If the correction does not improve the RMS, then ODTK uses the “RejectDampingFactor” to raise the deweighting factor (factor_new = factor_old x RejectDampingFactor).


For the FractionalShift and LM methods, the MaxOrbitChange attribute is the maximum fractional position or velocity (or both) change allowed in one iteration before applying a fractional shift or increasing the LM dampening (or both).

Epoch Control The EpochControl attributes enable you to set the epoch of the reported LS solution, which is by default at the start time of each stage. ODTK determines the Output.OrbitState.Epoch attribute by these settings.
UseAprioriCovariance This control enables you to include apriori covariance information into the LS solution. When you select to use it, ODTK considers the apriori states to be pseudo-observations with uncertainty as specified by associated settings in the satellite object. You can choose to include apriori information individually for any of the following: the postion and velocity of the satellite, solved-for drag states, solved-for solar pressure states, transponder biases, and measurement biases. When LS runs, it will skip a check of the satellite's covariance eigenvalues unless it is using the apriori covariance.
TransBias For transponder biases, you must enable the Transponder estimates flag.
ConsiderStates

Consider states are constant parameters that ODTK does not estimate as part of the solution vector; instead, ODTK accounts for their uncertainty in the output covariance matrix. The assumptions for the consider states are that they are constant and their a priori estimates and a priori covariances are known.


Current consider state choices are:

  • Drag (ballistic coefficient)
  • Solar Pressure
  • Measurement Biases

To designate these as a consider state, you must:

  1. Enable the LS.ConsiderStates parameter
  2. Not mark the corresponding LS.Stages parameter for estimation
  3. For force model parameters, enable the Satellite option force model use flag and estimate flag
  4. For measurement biases, enable the corresponding measurement type and the corresponding Measurement Statistics estimateBias fag

If you mark a state for both estimation (in LS Stages) and Consider, then ODTK will estimate it and ignore the consider selection.

Tapley, Schutz, and Born, 2004, “Statistical Orbit Determination”, Elsevier Academic Press, Section 6.3.

OutputUncertainty This is the LS orbit solution uncertainty in RIC sigma-correlation form. It accounts for the effects of both estimated states and consider states. This is a read-only property and reflects the orbit uncertainty that ODTK transfers to the satellite object if you apply the transfer state button or function.
CheckForDivergence Divergence is defined as two successive increases in RMS. If you set this attribute to true, then the Least Squares process will terminate if divergence occurs. Otherwise, Least Squares will run until it either reaches a solution or reaches the maximum number of iterations.
NumDivergingIterations This is the number of consecutive iterations with increasing values for the weighted RMS required to declare LS divergence. For example, a value of 1 will cause the LS process to stop based on divergence upon the first time the weighted RMS increases from one iteration to the next.
CheckConditionNumber Set this to true to have the LS process compute the condition number of the LS normal matrix on the first iteration of each stage. If the condition number is greater than 10^14, ODTK will print a warning message to the message viewer.
AbsoluteRMSChecks

When you enable this, the LS process will use the absolute RMS in conjunction with the standard relative ratio criteria to test for convergence. Here RMS refers to the weighted RMS where the residuals are weighted by the reciprocal of the white noise sigma of the associated measurement type (i.e., the lower the sigma, the higher the weight). When enabled, ODTK will consider LS converged when (and only when) either (1) the relative ratio criteria is met and the RMS is less than the "AcceptableRMS", or 2) the RMS is less than the "ConvergedRMS".

  • Enabled: This enables the Absolute RMS tests.
  • AcceptableRMS: Use this to deny convergence even if the relative ratio test is met. For convergence, this requires that the RMS be less than this value in addition to a successful ratio test. See the Stage List property "RMSConvergenceCriteria" for the definition of the relative ratio test.
  • ConvergedRMS: Use this to accept convergence even when the relative ratio test is not met. Convergence is achieved if the RMS is less than this value. You can essentially disable this test by setting its value to zero.
MaxIterationsStatus Specify this to tell ODTK whether it should interpret exceeding the maximum number of iterations as Success or Failure. If set to Failure, ODTK will not write a restart record and will not perform ephemeris predictions.
Output Set the output options for the LS run.

LS uses satellite transponder bias in its calculation process.

For practice in setting up and using the LS object, see Exercise 2.1 in Getting Started with ODTK.