Initial Orbit Determination (IOD)

The IOD object is represented in the Browser and in the ODTK toolbar by the icon. Click the IOD object in the Browser to expose its properties, and select HerrickGibbs, GoodingAnglesOnly or GNSSNavSolution as the Method.

HerrickGibbs Properties

The Herrick-Gibbs IOD method uses three sets of range plus direction measurements to generate an initial orbit solution for a geocentric spacecraft. The directional information can be in the form of azimuth/elevation angles or direction cosines. The following properties are available for the HerrickGibbs method:

HerrickGibbs Properties
Property Description
SelectedFacility Select the desired tracking station from the dropdown list. If the IOD object is created after tracking data has been loaded in the scenario object, then by default the selected Facility will be the first Facility with tracking data for the associated satellite.
MeasurementPass The Herrick-Gibbs IOD method allows you to select three (3) observations from the tracking data. You are offered a list of measurements to select from, which may span several orbit revolutions or several passes of tracking data. You are responsible for choosing a span of data that is consistent with the Herrick Gibbs algorithm. The Herrick Gibbs algorithm is valid for a selection that spans substantially less than one orbit period, and is typically applied to three measurements from the same tracking pass.

To assist you in selecting data, time is presented in two ways, as seconds since the first point in the file and as a full date-time string, together with the range and elevation for each observation.
MeasurementSampleSize Allows you to set a limit on the number of points displayed when you select the measurement set (see below). This value is 300 by default, so that no matter how many measurements are in the first pass, you will see only the first 300 points.
MinimumElevation Allows you to exclude measurements when the satellite is less than the specified angular distance above the horizon.
SelectedMeasurements Click where indicated to display a List window, which provides a means of selecting points to define your measurement set. The list contains 3 columns:
  • 1st column: time in seconds into the pass
  • 2nd column: the UTC time of the observation
  • 3rd column: range in km
  • 4th column: elevation in deg
Click the Add... button and select the number of points required for the IOD method (3 for Herrick-Gibbs).

Note: A facility must be selected prior to selecting measurements.

Output Set the OrbitState field to Cartesian or Keplerian. When IOD is run, read-only fields display the orbit state and the satellite's epoch (based on that of the middle point in the measurement set).
Output.DataArchive Set the "OutputStateHistory" to true to output an .iodrun state history file. Name the run file with the "Filename" property. The state history will contain one record with the output IOD orbit state at the IOD epoch time.

Note: Herrick-Gibbs IOD uses satellite transponder bias as well as the facility measurement biases in its calculation process. The ODTK Herrick-Gibbs IOD accepts standard range (eMTRange) and laser normal-point range (eMTNPRange) as a valid range type. Range plus directional measurements must be loaded as part of the same observation set in the tracking data loader to be recognized as usable by the Herrick-Gibbs algorithm.

GoodingAnglesOnly Properties

The GoodingAnglesOnly IOD method uses three sets of angles-only measurements to determine the orbit of a geocentric spacecraft. In ODTK the angle set may be ground based azimuth and elevation, ground based RA and DEC, ground based X and Y, ground based Direction Cosines, ground based phased array Face Angles, or space based RA and DEC. Measurements may come from a single or multiple tracking stations (or satellites). Measurements are not limited to a specific range in orbital arc, although white noise and two-body dynamic considerations may apply in choosing the measurement sets (see the Wright reference, below).

REFERENCE: R. H. Gooding, A New Procedure for Orbit Determination Based on Three Lines of Sight (Angles Only), Technical Report 93004, Defence Research Agency, Farnborough, Hampshire, April 1993.

REFERENCE: J. R. Wright, Implementation of Gooding's Angles-Only IOD, Analytical Graphics, Inc.

More detailed information on the use of this method follows this table:

GoodingAnglesOnly Properties
Property Description
TrackerList List of trackers to consider.
StartTime Only display measurements after (and including) this time.
StopMode Select among:
  • Last Measurement - Display all measurements (with correct tracking id) after start time


  • StopTime - Only display measurements before (and including) the StopTime parameter


  • TimeSpan - Only display measurements from StartTime to StartTime + TimeSpan


StopTime If StartMode = StopTime, this gives the time to stop displaying measurements. Otherwise, the attribute is hidden.
TimeSpan If StartMode = TimeSpan, this gives time duration past the StartTime to display measurements. Otherwise, the attribute is hidden.
MeasurementSampleSize Allows you to set a limit on the number of points displayed when you select the measurement set.
MinimumElevation Allows you to exclude measurements when the satellite is less than the specified angular distance above the horizon.
SelectedMeasurements Click where indicated to display a List window, which provides a means of selecting points to define your measurement set. The list contains 5 columns:
  • 1st column - time in seconds relative to StartTime
  • 2nd column - Tracker ID
  • 3rd column - angle set descriptor
  • 4th column - angle 1 either (RA or Az or X or Face Horizontal) in deg or DirectionCosineEast
  • 5th column - angle2 either (DEC or El or Y or Face Vertical) in deg or DirectionCosineNorth
Click the Add... button and select the number of points required for the IOD method (3 for Gooding Angles-Only).
HalfRevEstimate Estimate of the Number of Half Revs between the first and last (third) observation set. Half revs are considered in a "true anomaly" sense, not orbit period. HalfRev input is rounded down, i.e. 0 to 1/2 rev is input as 0, 1/2 to 1 rev is input as 1, etc.

NOTE: This is an important parameter to get correct; if it is incorrect it is likely that no good orbit solution will be found.

LambertIndicator Identifies which Lambert solution to use in the Newton-Raphson iteration. Set to 0 to use the first Lambert solution, 1 to use the second Lambert solution (this follows Gooding's convention). When the HalfRevEstimate (above)is 0 or 1, then there is only 1 Lambert solution and the LambertIndicator is set to 0 and greyed out. When the HalfRevEstimate is greater than 1, then there are exactly two Lambert solutions (or there are none), and the LambertIndicator may bet set to 0 or 1.
Range1Estimate Estimate of the tracker-to-target range at the time of the first observation set. In most cases this does not have to be very accurate (the default of 5 Re will work for LEO, HEO and GEO), but in some cases an accurate range estimate is needed for the solution to converge.
Range3Estimate Estimate of the tracker-to-target range at time of the third observation set.
MaxIterations Maximum number of iterations.
ConvergenceValue The solution vector convergence criterion. The default of 10-12 is Gooding's recommendation.
HalleyNewtonLimit Halley/Newton-Raphson control parameter. 0 for pure Newton-Raphson, 0.5 for Halley, 1.0 for modified Newton-Raphson. Nominally the Halley method is used, but Gooding found that when two or more solutions are close together relative to the starting point, then modified Newton-Raphson works better.
NumericPartialEpsilon Standard partial derivative "increment factor"
T12 Read-only parameter giving time between the first and second observation set. Currently this is not updated after the SelectedMeasurements field is updated, but only after the IOD method is run.
T13 Read-only parameter giving time between the first and third observation set. Currently this is not updated after the SelectedMeasurements field is updated, but only after the IOD method is run.
Solutions - NumberOfSolutions Read-only parameter giving the number of solutions returned by the GoodingAnglesOnly algorithm.
Solutions - UseSolution For multiple solution cases, determines which solution is displayed in the Output - OrbitState field. The user can cycle through the different solutions by resetting this parameter and rerunning the IOD method.
Output - OrbitState Set the OrbitState field to Cartesian or Keplerian. When IOD is run, read-only fields display the orbit state and the satellite's epoch. The epoch time is the time of the second observation set. The solution displayed (for multiple solution cases) is controlled by the "UseSolution" parameter.
Output.DataArchive Set the "OutputStateHistory" to true to output an .iodrun state history file. Name the run file with the "Filename" property. The state history will contain one record with the output IOD orbit state at the IOD epoch time.
EllipticSolutionsOnly When set to true only elliptic solutions are considered. When set to false both elliptic and hyperbolic solutions are considered.

Using the GoodingAnglesOnly Method

Inputs

  1. You must select three sets of angles measurements. To do this you first limit the tracking data by Tracker ID and time interval, and then choose the three measurement sets from the remaining list.


  2. You must estimate the number of Half Revs (HalfRevEstimate) between the first and last observation set. This is an important parameter to get correct; if it is incorrect it is likely that no good orbit solution will be found. Half revs are considered in a "true anomaly" sense, not orbit period. HalfRev input is rounded down, i.e. 0 to 1/2 rev is input as 0, 1/2 to 1 rev is input as 1, etc.


  3. You must supply a tracker-to-target range estimate at the time of first observation (Range1Estimate) and at the time of the third observation (Range3Estimate). Our testing has shown that, in most cases, this does not need to be very accurate. A 5 Re default estimate usually worked well for GEO and LEO cases. There were cases, however, that would not converge to a good solution without a good range estimate.


  4. The defaults for the rest of the inputs are from Gooding and will generally apply. See the detailed definitions in the above table.


  5. In this initial implementation, not all of Gooding's options have been incorporated. Generally these are strategems that may help in finding a solution in some difficult cases or may speed up convergence.


  6. Gooding IOD default values are valid for near earth orbits (HEO, GEO, LEO), but not necessarily for longer ranges. Consider a case with eccentricity = 0.91, the satellite at approx 50 Re range during tracking, with 3 observations spanning 2/3 day, default values will fail to converge with error messages to check various input data. Range 1 or 2 values of 40-60 Re , ConvergenceValue >= 1.e-005, NumericalPartialEpsilon <= 1.e-008, and HalleyNewtonLimit of 0.5 or 1 will converge in this case. A comprehensive study of parameter settings for all orbits has not been performed, but this result should illustrate the amount of change required.


Outputs

Running the method may result in 0 solutions, 1 solution or multiple solutions:

  1. 0 solutions - The method was unable to converge to any solution. Verify HalfRevEstimate, Range1Estimate and Range3Estimate inputs. A different set of measurements may improve results.


  2. 1 solution - The best case. You can transfer the satellite orbit and try Least Squares (or Filter).


  3. Multiple solutions - The higher the number of half revs, the greater the chance and the higher the number of multiple solutions. Also in SB applications, one solution may be that of the tracking satellite. You can cycle through the different solutions by resetting the UseSolution parameter and rerunning the IOD method. Looking at the solution orbit in Keplerian elements may be helpful in determining the "good" solution. For each solution you can transfer the satellite orbit and try Least Squares (or Filter).


GNSSNavSolution Properties

The IOD solution uses either GNSS Pseudo-range observations or CA/DF Nav Sol observations as inputs. The method of the solution can be broken into two steps. When using pseudo-range measurements, we first compute user S/C Position and Clock Phase estimates using an analytical NAV solution algorithm developed by Yang and Chen for several points around the time of interest. When the Nav Sol measurements are used, the clock phase is not calculated and the position estimates are taken directly from the measurements. The second step, regardless of measurement type, is to use LaGrange interpolation on the position estimates to compute the velocity estimates.

REFERENCE: Ming Yang and Kuo-Hwa Chen, "Performance Assessment of a Noniterative Algorithm for GNSS Absolute Positioning", Proc. Nat'l Sci. Counc. ROC(A) Vol. 25, No. 2, 2001, pp. 102-106.

When using this method in conjunction with GNSS Pseudo-range measurements, it is necessary to have measurements from 4 satellites at considered measurement times, including at the solution epoch.

The following options are available for the GNSSNavSolution method:

GNSSNavSolution Properties
Property Description
SelectedReceiver Open the dropdown list to select a GNSSReceiver object attached to the same satellite as the current IOD object.
SolutionEpoch The epoch time of interest. This time must be within one hour of an actual measurements time. The actual solution time is reset to match an observation time closest to the requested SolutionEpoch.
GNSSObsType

The measurement type to be used. Choices can be:

  • SF L1 Pseudo-range – this will process all available GNSS L1/E1 single-frequency pseudo-range measurements.
  • DF L2_L1 Pseudo-range – this will process GNSS L1/L2 dual frequency pseudo-measurements by combining available {P1, P2}, {L1 CA, L2 C}, or {L1 C, L2C} measurements. If both are available, {L1 CA, L2 C} will take precedence over {L1 C, L2C} unless data delimited by the user through the receiver measurement statistics, or satellite measurement types properties.
  • DF L5_L1 Pseudo-range – this will process GNSS L1/L5 dual frequency measurements and/or Galileo dual-frequency E1/E5 measurements by combining GNSS {L1 CA, L5}, or {L1 C, L5}, or Galileo {E1, E5a}, or {E1, E5b} measurements as available.
  • CA Nav Sol – CA Nav Sol - superseded by SF Nav Sol.
  • DF Nav Sol - this will process dual-frequency Nav Sol measurements.
  • SF Nav Sol - this will process single-frequency Nav Sol measurements.
  • CA Pseudo-range
  • DF Pseudo-range
Note that the Singly Differenced measurements cannot be used.
LaGrangeOrder The interpolation order to use for velocity computation.
Output - OrbitState Set the OrbitState field to Cartesian or Keplerian. When IOD is run, read-only fields display the orbit state and the satellite's epoch.
Output - ClockPhaseError The clock phase error is the difference between the GNSS receiver clock and the GNSS master clock. The clock phase is one of the elements of a GNSS navigation solution.
Output.DataArchive Set the "OutputStateHistory" to true to output an .iodrun state history file. Name the run file with the "Filename" property. The state history will contain one record with the output IOD orbit state at the IOD epoch time.

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

ODTK 6.5