| SPKDIFF User's Guide |
Table of ContentsSPKDIFF User's Guide Abstract Summary If You Are in a Hurry To Check if Two SPK Files Provide Identical Data To Assess Difference Between Two SPK Files To Sample Trajectory from an SPK File To Sample Trajectory from a set of Kernels Usage Options Kernel Files Primary Kernel Files Additional Kernel Files Comparison Runs vs. Sampling Runs Runs with Two, One, and No Primary SPK(s) Runs with Two Primary SPK Files Runs with One Primary SPK File Runs Without Primary SPK Files Specifying/Picking Defaults for Bodies, Centers, and Frames Specifying/Picking Defaults for Bodies Specifying/Picking Defaults for Centers Specifying/Picking Defaults for Frames Body, Center, and Frame Selection Scenarios Times for Comparison/Sampling Coverage Window Times within Coverage Window Times for Comparison/Sampling Selection Scenarios Output Overview of Report Types Time Tag Format for ``dump*'' Reports Numeric Format for ``dump*'' Reports Report Header Report Header for Comparing Two Trajectories Report Header for Coverage/Gaps for Two Trajectories Report Header for Sampling Trajectory Report Header for Coverage/Gaps for Trajectory Report Formats Basic Report (no ``-t'' option or with ``-t basic'') View Frame Statistics Report (``-t stats'') Dump Report (no ``-t'' option or with ``-t dump'') View Frame Dump Report (``-t dumpvf'') Coverage Intervals Dump Report (``-t dumpc''): Coverage Gaps Dump Report (``-t dumpg'') Troubleshooting Examples Comparison: Checking if Two SPKs Provide the Same Trajectory Comparison: Checking if Two SPK files Differ Enough to Matter Comparison: Checking the Down Track Timing Error Comparison: Checking Trajectory Differences Over Time Sampling: States from a Single SPK File Sampling: States from Many SPKs Listed in Meta-Kernel(s) Coverage: Coverage for a Single Body Coverage: Coverage Overlap for Two Bodies Coverage: Gaps in Coverage SPKDIFF User's Guide
Abstract
Summary
To compare trajectories the program computes a set of geometric states of a body as seen from a center in a reference frame over an interval of time with a fixed or variable time step using one SPK file, computes a set of geometric states for the same or different body-center-frame combination at the same times using the other SPK file, and then subtracts the corresponding states from each other. Depending on the type of output report requested the program prints to the screen only the maximum differences in position and velocity, or a complete table of position and velocity differences, or a complete table of differences expressed in ``view frame'' coordinates, or results of a simple statistical analysis of the differences expressed in ``view frame'' coordinates. To sample trajectory of a body the program computes a set of geometric states of a body as seen from a center in a reference frame over an interval of time with fixed or variable time step, using a given set of kernel files, and prints to the screen a table containing these states. If You Are in a Hurry
To Check if Two SPK Files Provide Identical Data
% spkdiff -s <step> <spk1> <spk2>where ``<spk1>'' and ``<spk2>'' are the names of the two SPK files, and ``step'' is the time step, in seconds. If the maximum position and velocity difference magnitudes in the output are zero (or close to zero, accounting for round off), then the SPKs contain the same data. To Assess Difference Between Two SPK Files
% spkdiff -t dump -s <step> <spk1> <spk2>where ``<spk1>'' and ``<spk2>'' are the names of the two SPK files; ``-t dump'' sets the output format to the dump report showing differences between individual states computed from the files; and ``step'' is the time step, in seconds. The program's output, which can be rather lengthy, can be re-directed to a file using the ``>'' pipe. Using the data captured in the file the difference in position (columns 2-4) and velocity (columns 5-7) can be plotted against time, given as TDB seconds (column 1), to analyze the difference between the trajectories. To print output time tags as UTC in ISO date format instead of TDB seconds, add
-k <lsk> -f 'YYYY-MM-DDTHR:MN:SC.### ::RND'before the ``-t'' option. These additional options specify the name of an LSK file required to convert times to any form other than TDB seconds and the desired output time format using the SPICE TIMOUT routine output time picture notation. To use the view frame dump report output instead of the dump report output, replace ``dump'' with ``dumpvf'', like this:
% spkdiff -t dumpvf -s <step> <spk1> <spk2> To Sample Trajectory from an SPK File
% spkdiff -s <step> <spk>where ``<spk>'' is the name of an SPK file and ``step'' is the time step, in seconds. The program's output -- position (columns 2-4) and velocity (columns 5-7) tagged with time, given as TDB seconds past J2000 (column 1) -- can be re-directed to a file using the ``>'' pipe. To print output time tags as UTC in ISO date format, add
-k <lsk> -f 'YYYY-MM-DDTHR:MN:SC.### ::RND'before ``-s''. These additional options specify the name of an LSK file required to convert times to any form other than TDB seconds and the desired output time format using the SPICE TIMOUT routine output time picture notation. If the SPK file contains data for more than one body and a body different from the body picked by SPKDIFF as default is desired, the name or NAIF ID of the desired body can be specified using ``-b1 <body>'' option, like this:
% spkdiff -b1 <body> -s <step> <spk> To Sample Trajectory from a set of Kernels
% spkdiff -k <kernels> -s <step>
-b1 <body> -c1 <center> -r1 <frame>
where ``<kernels>'' are the names of SPK and other kernel files
and/or meta-kernels needed to compute trajectory; ``step'' is the time
step, in TDB seconds; ``<body>'' and ``<center>'' are the
names or NAIF IDs of the body and center; and ``<frame>'' is the
name of the reference frame. For lengthy reports the program's output
should be re-directed to a file using the ``>'' pipe.
Usage
% spkdiff [options] <first SPK name> <second SPK name> % spkdiff [options] <SPK name> % spkdiff [options]The options are:
-k <supporting kernel(s) name(s)>
-b1 <first body name or ID>
-c1 <first center name or ID>
-r1 <first reference frame name>
-k1 <additional supporting kernel(s) for first SPK>
-b2 <second body name or ID>
-c2 <second center name or ID>
-r2 <second reference frame name>
-k2 <additional supporting kernel(s) for second SPK>
-b <interval start time>
-e <interval stop time>
-s <time step in seconds>
-n <number of states: 2 to 1000000 (default: 1000)>
-f <output time format (default: TDB seconds past J2000)>
-d <number of significant digits: 6 to 17 (default: 14)>
-t <report type: basic|stats|dump|dumpvf|dumpc|dumpg
(def.: basic|dump)>
The order of options and case of the option keys are not significant.
The values provided after the option keys must be separated from the
keys by one or more spaces. Un-recognized options are not specifically
checked for; instead they are treated as continuation of the value
provided using the preceding recognized option.
Options
'YYYY-MM-DDTHR:MN:SC.### ::RND'
'JULIAND.######### ::TDB'
basic to display only the absolute and
relative maximum and average
differences in magnitude of
position and velocity vectors
stats to display statistics on position
differences rotated into the view
frame
dump to display a table of positions and
velocities or their differences
dumpvf to display a table of position and
velocity differences rotated into
the view frame
dumpc to display a table of coverage
intervals
dumpg to display a table of gaps in
coverage
Kernel Files
Primary SPK files -- two, one, or none -- are provided at the end of the command line without any command line keys. Normally these SPKs are the ones containing trajectories that differ (for example, predicted and reconstructed SPKs for the same body and time period), or the trajectory to be sampled. These SPK files are also examined by the program to determine the default values for the body, center, and frame, and to determine the coverage window boundaries. Additional kernel files -- none, or as many as needed -- are provided anywhere on the command line (except at the very end) using the ``-k'', ``-k1'', and ``-k2'' keys. Normally these kernel files contain additional SPICE data needed to compute requested trajectories or generate other than TDB seconds time tags for output (for example, an LSK file providing supporting time conversion data, FK files providing frame definitions needed by SPICE to recognize specified frames, PCK files providing rotation data for computing trajectories in body-fixed frames, etc). Primary Kernel Files
On the other hand, if any of the options for specifying additional kernel files (``-k'', ``-k1'', ``-k2'') followed by actual file names is provided at the end of the command line (for the case of no primary SPKs) or immediately preceding the only primary SPK file (for the case of one primary SPK), and the last one or the last two additional kernels are SPKs, they are mistakenly picked as the primary kernel(s). In this situation the program usually signals an error indicating that trajectory could not be computed because insufficient data was loaded. Additional Kernel Files
Comparison Runs vs. Sampling Runs
To run the program in comparison mode, it is enough to satisfy any of the following guidelines for specifying inputs that tell the program to compute two different trajectories:
Runs with Two, One, and No Primary SPK(s)
Runs with Two Primary SPK Files
Runs with One Primary SPK File
Runs Without Primary SPK Files
Specifying/Picking Defaults for Bodies, Centers, and Frames
If a body or a center is specified using its name, this name must be known to SPICE, i.e. it must either be the name of a built-in object or one of the names defined in the text kernels provided as additional kernels. If the name specified on the command line is not recognized after loading the kernel files provided using ``-k''/``-k1'' for the ``-b1'' and ``-c1'' names, or provided using ``-k''/``-k2'' for the ``-b2'' and ``-c2''names, the program signals an error. The name of a frame specified on the command line or associated with the frame ID picked from one of the primary SPK files must be known to SPICE as well. It must either be a name of a built-in frame or of one of the frames defined in the FK file(s) provided as additional kernels. If the frame name specified on the command line or frame ID picked from the primary SPK file is not recognized after loading the kernel files provided using ``-k''/``-k1'' for the ``-r1'' frames, or provided using ``-k''/``-k2'' for the ``-r2'' frames, the program signals an error. Not all six items have to be specified for every program run. In many cases only one body, center, or frame is given and the program will set the rest to default values based on the given body, center, or frame and/or by examining the primary SPK file(s). The three subsections below discuss specifying and picking defaults for the bodies, centers, and frames frames. Specifying/Picking Defaults for Bodies
Specifying/Picking Defaults for Centers
Specifying/Picking Defaults for Frames
Body, Center, and Frame Selection Scenarios
Times for Comparison/Sampling
The coverage window begin and end times specified using the ``-b'' and ``-e'' options can be in any format accepted by SPICE's str2et_c function (see str2et_c header for details). If one or both of these times are provided, an LSK file must be provided as one of the additional kernels. The number of points specified using the ``-n'' key must be an integer between 2 to 1,000,000 while the step specified using the ``-s'' key must be in seconds and be greater than 1.0E-8. If both ``-n'' and ``-s'' are specified, ``-s'' takes precedence. The coverage window determined by examining the primary SPK file(s) or additional SPK files may consist of many intervals, some of which may be singletons (with the interval begin time equal to the interval end time). Whether the coverage window consists of only one interval or of many intervals, the program computes times within the window in such a way that the interval ends are always included in the set of points. The rest of times are distributed within the intervals, stepping from the beginning of each interval with the specified step. If the number of points is given instead of the step, the step is computed using the measure of the coverage window (the sum of the lengths of the individual intervals) and the specified number of points. Not all of the keys controlling selection of points have to be specified for every program run. In some cases none of these options are required. The two subsections below discuss specifics of providing and picking defaults for the coverage window and step or number of points. Coverage Window
The default coverage window is determined either from the primary SPK files or from the additional SPK files using SPICE's spkcov_c function to get coverages for the bodies either specified using the ``-b1''/``-b2'' keys or set to default values as described earlier in this document. Depending on the kernels provided to the program the default coverage window is determined as follows (in all cases below the first and the second bodies may be the same body or different bodies):
If either ``-b'' or ``-e'', or both ``-b'' and ``-e'' are specified, the default window is truncated according to these begin and end times. If the time specified using ``-b'' is before the start of the default window, this time is ignored. If the time specified using ``-b'' is after the end of the default coverage window, the program signals an error. If the time specified using ``-e'' is after the end of the default window, this time is ignored. If the time specified using ``-e'' is before the start of the default coverage window, the program signals an error. Times within Coverage Window
When neither the number of points is specified using ``-n'' nor the step is specified using ``-s'', the number of points is set to a default value determined by examining the coverage window. If the total number of endpoints -- 2 for each non-singleton interval, 1 for each singleton interval -- for all intervals in the coverage window is greater than 1000, the number of points is set to the number of endpoints and the step is not computed. Otherwise it is set to 1000 or a number less than but close to 1000 (the actual number is determined at run-time based on the lengths of the intervals) and the step is computed by dividing the measure of the coverage window by the number of points minus the number of intervals. When the number of points is specified using ``-n'' but this number is less than the number of the coverage window interval endpoints, the value given using ``-n'' is ignored and the number of points is set to the number of interval endpoints and the step is not computed. Otherwise the number of points is set to the value provided using ``-n'' or a number less than but close to this value (the actual number is determined at run time based on the lengths of the intervals) and the step is computed by dividing the measure of the coverage window by the number of points minus the number of intervals. When step is specified using ``-s'', the number of points is computed by adding the number of interval endpoints to the total of the numbers of points that can fit within each non-singleton interval when it's stepped through with this step. If the resultant number of points is greater than 1,000,000, the program signals an error. Whether the step was provided or computed using the provided or default number of points, the set of times at which trajectory is computed includes all interval ends -- 2 for each non-singleton interval, 1 for each singleton interval -- plus additional points computed by stepping with this step within each non-singleton interval starting from the interval start time. The last point within each non-singleton interval is computed such that it always lies inside the 1.5*step to 0.5*step range off the interval end. In the very unlikely case of the comparison window containing a single singleton interval the program does not pick a single time for it. Depending on the values specified with ``-s'' and ``-n'' it picks the default number of times 1000 (no ``-s'' and ``-n''), 2 (for ``-s'' with any value), or the user specified number of times (``-n'' but no ``-s'') and sets all these times to the same time. Care should be taken when picking the step using ``-s'' or specifying the number of points using ``-n''. Picking a very small step for a large time window, or very many points for any window, leads to very long run times. In some cases the number of points computed using the step may even be greater that 1,000,000, preventing the program from running because its buffers are not large enough to deal with so many points. On the other hand, picking a large step or too few points prevents the program from doing a sufficiently dense sampling or a thorough comparison. Another important point to keep in mind, especially for the sampling runs, is that because of the possibility of multiple intervals within the coverage window and the approach used for picking the last step within each interval, the program will almost never produce a constant step output state or state difference table. One or more steps in the table will almost always be greater or smaller than the others, prohibiting use of the table in any application that requires a constant step size. Times for Comparison/Sampling Selection Scenarios
Output
Overview of Report Types
In sampling runs, the ``dump'' report is the main report used to generate desired trajectory data tables. The ``dumpc'' and ``dumpg'' reports are useful for SPK coverage and coverage overlap analysis. All reports have rigid formats. The only item in the reports that can be altered by command line options is the format of time tags in ``dump'' and ``dumpvf'' reports, which can be changed using the ``-f'' key. Time Tag Format for ``dump*'' Reports
YYYY-MM-DDTHR:MN:SC.### ::RND for UTC ISO date YYYY-DOYTHR:MN:SC.### ::RND for UTC ISO DOY JULIAND.######### ::TDB for Julian day TDB``-f'' does not apply to times in the report header and the statistics report, in which the times are always displayed as TDB in calendar and seconds past J2000 formats. Numeric Format for ``dump*'' Reports
The default format, with 14 significant digits, is usually adequate for output from all comparison runs and from all sampling runs that are intended to produce tables of states for plotting but, due to round off, it may not be adequate for sampling runs that are intended to generate tables of states for subsequent interpolation or packaging into SPK files. For such outputs the number of significant digits should be increased to 16 -- if output states are planned to be packaged into an SPK file using the MKSPK program that employs a custom parser to ingest input numeric data -- or 17 -- if output states will read by an application that uses language-native means to parse input numeric data). Report Header
#as the first character. This allows common plotting programs, such as GNUPLOT, to skip these header lines when plotting the ``dump''-type reports generated by the program. Neither the ``-f'' nor ``-d'' options used to control the time and numeric formats in the data part of the output have any effect on the time and number formats used in all headers. Report Header for Comparing Two Trajectories
1 #
2 # Comparison of N 'FRAME1NAME'-referenced geometric states
3 #
4 # of 'BODY1NAME' (BODY1ID) relative to 'CEN1NAME' (CEN1ID)
5 # from SPK 'SPK1NAME'
6 #
7 # with N 'FRAME2NAME'-referenced geometric states
8 #
9 # of 'BODY2NAME' (BODY2ID) relative to 'CEN2NAME' (CEN2ID)
10 # from SPK 'SPK2NAME'
11 #
12 # evenly-spaced with STEPSEC second (STEPDHMS) step size
13 # within the time interval
14 #
15 # from 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
16 # to 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
17 #
18 # using additional data from these kernels
19 #
20 # -K/KERNEL1 -K/KERNEL2 ... -K/KERNELn
21 #
or the ``new'' format used for all other comparison cases:
1 #
2 # Comparison of N 'FRAME1NAME'-referenced geometric states
3 #
4 # of 'BODY1NAME' (BODY1ID) relative to 'CEN1NAME' (CEN1ID)
5 # computed using
6 #
7 # -K/KERNEL1 -K/KERNEL2 ... -K/KERNELn
8 # -K1/KERNEL1 -K1/KERNEL2 ... -K1/KERNELm
9 # SPK1NAME
10 #
11 # with N 'FRAME2NAME'-referenced geometric states
12 #
13 # of 'BODY2NAME' (BODY2ID) relative to 'CEN2NAME' (CEN2ID)
14 # computed using
15 #
16 # -K/KERNEL1 -K/KERNEL2 ... -K/KERNELn
17 # -K2/KERNEL1 -K2/KERNEL2 ... -K2/KERNELm
18 # SPK2NAME
19 #
20 # with a STEPSEC second (STEPDHMS) step size
21 # within the continuous time period
22 #
23 # from 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
24 # to 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
25 #
26 # TIMESPEC
27 #
where:
DDd HRh MMm SS.###s
DDD:MN:HR:SC.######
Report Header for Coverage/Gaps for Two Trajectories
1 #
2 # Coverage overlap for 'FRAME1NAME'-referenced geometric states
3 #
4 # of 'BODY1NAME' (BODY1ID) relative to 'CEN1NAME' (CEN1ID)
5 # computed using
6 #
7 # -K/KERNEL1 -K/KERNEL2 ... -K/KERNELn
8 # -K1/KERNEL1 -K1/KERNEL2 ... -K1/KERNELm
9 # SPK1NAME
10 #
11 # and 'FRAME2NAME'-referenced geometric states
12 #
13 # of 'BODY2NAME' (BODY2ID) relative to 'CEN2NAME' (CEN2ID)
14 # computed using
15 #
16 # -K/KERNEL1 -K/KERNEL2 ... -K/KERNELn
17 # -K2/KERNEL1 -K2/KERNEL2 ... -K2/KERNELm
18 # SPK2NAME
19 #
20 # with a STEPSEC second (STEPDHMS) step size
21 # within the continuous time period
22 #
23 # from 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
24 # to 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
25 #
26 # TIMESPEC
27 #
where:
DDD:MN:HR:SC.######
Report Header for Sampling Trajectory
1 #
2 # Sampling of N 'FRAMENAME'-referenced geometric states
3 #
4 # of 'BODYNAME' (BODYID) relative to 'CENNAME' (CENID)
5 # computed using
6 #
7 # -K/KERNEL1 -K/KERNEL2 ... -K/KERNELn
8 # -K1/KERNEL1 -K1/KERNEL2 ... -K1/KERNELm
9 # SPKNAME
10 #
11 # with a STEPSEC second (STEPDHMS) step size
12 # within the continuous time period
13 #
14 # from 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
15 # to 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
16 #
17 # TIMESPEC
18 #
where:
DDD:MN:HR:SC.######
Report Header for Coverage/Gaps for Trajectory
1 #
2 # Coverage for 'FRAMENAME'-referenced geometric states
3 #
4 # of 'BODYNAME' (BODYID) relative to 'CENNAME' (CENID)
5 # computed using
6 #
7 # -K/KERNEL1 -K/KERNEL2 ... -K/KERNELn
8 # -K1/KERNEL1 -K1/KERNEL2 ... -K1/KERNELm
9 # SPKNAME
10 #
11 # with a STEPSEC second (STEPDHMS) step size
12 # within the continuous time period
13 #
14 # from 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
15 # to 'YYYY MON DD HR:MN:SC.### TDB' (SSSS.### TDB seconds)
16 #
17 # TIMESPEC
18 #
where:
DDD:MN:HR:SC.######
Report FormatsBasic Report (no ``-t'' option or with ``-t basic'')
This report is generated only for comparison runs if the ``-t'' option is omitted or if it is followed by the value ``basic''. This report has the following format (as for all other comparison reports it follows one of the two comparison information headers):
Relative differences in state vectors:
maximum average
Position: n.nnnnnnnnnnnnnE-nn n.nnnnnnnnnnnnnE-nn
Velocity: n.nnnnnnnnnnnnnE-nn n.nnnnnnnnnnnnnE-nn
Absolute differences in state vectors:
maximum average
Position (km): n.nnnnnnnnnnnnnE-nn n.nnnnnnnnnnnnnE-nn
Velocity (km/s): n.nnnnnnnnnnnnnE-nn n.nnnnnnnnnnnnnE-nn
where ``n.nnnnnnnnnnnnnE-nn'' are the relative and absolute maximum and
average differences in magnitude of position and velocity vectors.
It is important to remember that these maximum values are picked from the sets of states sampled from the SPK files within the given/default comparison windows using the given/default time step, rather than by a true search for the maximum within the window. Thus any change in the window begin and end time and/or time step will result in a different set of states being sampled at different times and then used in the comparison, leading to different maximum and average values appearing in the report. View Frame Statistics Report (``-t stats'')
The view frame into which the differences between states are rotated for statistical analysis is based on states computed using the body-center-frame combination and is defined as follows:
1) Average components of position difference vectors in view
frame coordinates:
1a) Down track (km): n.nnnnnnnnnnnnnn
1b) In orbit plane (km): n.nnnnnnnnnnnnnn
1c) Normal to orbit plane (km): n.nnnnnnnnnnnnnn
1d) Average delta time down track (sec): n.nnnnnnnnnnnnnn
2) Average |components| of position difference vectors in view
frame coordinates:
2a) Down track (km): n.nnnnnnnnnnnnnn
2b) In orbit plane (km): n.nnnnnnnnnnnnnn
2c) Normal to orbit plane (km): n.nnnnnnnnnnnnnn
2d) Average |delta time| down track (sec): n.nnnnnnnnnnnnnn
3) RMS of position difference vectors in view frame coordinates:
3a) Down track (km): n.nnnnnnnnnnnnnn
3b) In orbit plane (km): n.nnnnnnnnnnnnnn
3c) Normal to orbit plane (km): n.nnnnnnnnnnnnnn
3d) RMS delta time down track (sec): n.nnnnnnnnnnnnnn
4) Components of the position difference vector in view frame
coordinates for the states with the MAXIMUM RELATIVE
difference in position:
4a) Down track (km): n.nnnnnnnnnnnnnn
4b) In orbit plane (km): n.nnnnnnnnnnnnnn
4c) Normal to orbit plane (km): n.nnnnnnnnnnnnnn
4d) Delta time down track (sec): n.nnnnnnnnnnnnnn
4e) Epoch (TDB, seconds past J2000): nnnnnnnnn.nnnnnn
4f) Epoch (TDB, calendar format): YYYY-MON-DD-HR:MN:SC
5) Components of the position difference vector in view frame
coordinates for the states with the MAXIMUM ABSOLUTE
difference in position:
5a) Down track (km): n.nnnnnnnnnnnnnn
5b) In orbit plane (km): n.nnnnnnnnnnnnnn
5c) Normal to orbit plane (km): n.nnnnnnnnnnnnnn
5d) Delta time down track (sec): n.nnnnnnnnnnnnnn
5e) Epoch (TDB, seconds past J2000): nnnnnnnnn.nnnnnn
5f) Epoch (TDB, calendar format): YYYY-MON-DD-HR:MN:SC
In addition to the average, average of absolute values, RMS, maximum
relative, and maximum absolute down track, in orbit plane and normal to
orbit plane components, the program includes in each category a delta
time down track in seconds. For the maximum relative and maximum
absolute differences the report also provides the times -- as TDB
seconds past J2000 and calendar format TDB -- at which these states were
computed.
As with the basic report the statistically determined maximum values are based on the sets of states sampled from the SPK files within the given/default comparison windows using the given/default time step rather than by a true search for the maximum within the window. Thus any change in the window begin and end time and/or time step will result in a different set of states being sampled at different times and then used in the comparison, leading to different maximum and average values appearing in the report. While this type of report can be requested for any combination of body, center, and frame, for some of them the notion of the view frame would not be applicable because the motion of the body with respect to the center would be too different from the ``normal'' orbital motion for which using the view frame makes the most sense. In such cases this report may contain meaningless or even incomprehensible numbers. There is also a possibility that the view frame simply cannot be constructed for one or more states computed for the first trajectory because position and velocity components of this state are linearly dependent. In such cases the program reports this fact and does not generate the report. To facilitate parsing, each of the items included in this report is provided on a separate line tagged with a distinct item ``identifier'' (1a, 2b, 5d, etc.), with the value appearing as the last word on the line. Dump Report (no ``-t'' option or with ``-t dump'')
For comparison runs this report has the following format (as for all other comparison reports it follows one of the two comparison information headers):
# time, (x1-x2), (y1-y2), (z1-z2), (vx1-vx2), (vy1-vy2), (vz1-vz2) TIME DELTA_X DELTA_Y DELTA_Z DELTA_VX DELTA_VY DELTA_VZ TIME DELTA_X DELTA_Y DELTA_Z DELTA_VX DELTA_VY DELTA_VZ ... ... ... ... ... ... ... TIME DELTA_X DELTA_Y DELTA_Z DELTA_VX DELTA_VY DELTA_VZFor sampling runs this report has the following format (as for all other sampling reports it follows the sampling information header):
# time, x, y, z, vx, vy, vz TIME X Y Z VX VY VZ TIME X Y Z VX VY VZ ... ... ... ... ... ... ... TIME X Y Z VX VY VZThe first line of the report ``names'' the items provided in the table. As for the lines in the header that this line immediately follows, it is prefixed using the
#character in order to be ignored by common plotting utilities. Each of the subsequent lines contain seven space-delimited items -- a time tag in the format specified using the ``-f'' option (if ``-f'' was not provided the time tag is the number of TDB seconds past J2000) followed by the X, Y, Z, Vx, Vy, and Vz components of the state or the difference between the states. The position components or their differences are provided in kilometers, the velocity components or their differences are provided in kilometers per second. All numbers in the table -- times as TDB seconds past J2000 and state or state difference components -- are printed in scientific notation, +n.nnnnnnnnnnnnnE+nn, either with the default 14 significant digits or with the number of significant digits specified using the ``-d'' option. View Frame Dump Report (``-t dumpvf'')
# time, down_track_p_diff, normal_to_plane_p_diff, in_plane_p_diff, down_track_v_diff, normal_to_plane_v_diff, in_plane_v_diff TIME DELTA_DT DELTA_NTP DELTA_IP DELTA_VDP DELTA_VNTP DELTA_VIP TIME DELTA_DT DELTA_NTP DELTA_IP DELTA_VDP DELTA_VNTP DELTA_VIP ... ... ... ... ... ... ... TIME DELTA_DT DELTA_NTP DELTA_IP DELTA_VDP DELTA_VNTP DELTA_VIPThe first line of the report (which is shown as two lines above to fit into the width of the page) ``names'' the items provided in the table. As for the lines of the comparison information headers that this line immediately follows, it is prefixed using the
#character in order to be ignored by common plotting utilities. Each of the subsequent lines contains seven space-delimited items -- a time tag in the format specified using the ``-f'' option (if the ``-f'' option was not provided the time tag is the number of TDB seconds past J2000) followed by the down track, normal to orbit plane, in orbit plane, down track velocity, normal to orbit plane velocity, and in orbit plane velocity components of the difference between the state computed for the first trajectory and the state computed for the second trajectory, rotated into the view frame defined by the state for the first trajectory. The position component differences are provided in kilometers, the velocity component differences in kilometers per second. All numbers in the table -- times as TDB seconds past J2000 and state difference components -- are printed in scientific notation, +n.nnnnnnnnnnnnnE+nn, either with the default 14 significant digits or with the number of significant digits specified using the ``-d'' option. While this type of report can be requested for any combination of body, center, and frame, for some of them the notion of the view frame would not be applicable because the motion of the body with respect to the center would be too different from the ``normal'' orbital motion for which using the view frame makes the most sense. In such cases this report may contain meaningless or even incomprehensible numbers. There is also a possibility that the view frame simply cannot be constructed for one or more states computed for the first trajectory because position and velocity components of this state are linearly dependent. In such cases the program reports this fact and does not generate the report. Coverage Intervals Dump Report (``-t dumpc''):
The coverage intervals dump report has the following format (and follows either sampling or comparison coverage/gap header):
# int_start_time, int_end_time, int_duration_sec, int_duration_string STARTTIME STOPTIME SECONDS DAYS:HR:MN:SC.MMMMMM ... STARTTIME STOPTIME SECONDS DAYS:HR:MN:SC.MMMMMMwhere:
Coverage Gaps Dump Report (``-t dumpg'')
The coverage gaps dump report has the following format (and follows either sampling or comparison coverage/gap header):
# gap_start_time, gap_end_time, gap_duration_sec, gap_duration_string STARTTIME STOPTIME SECONDS DAYS:HR:MN:SC.MMMMMM ... STARTTIME STOPTIME SECONDS DAYS:HR:MN:SC.MMMMMM
Troubleshooting
Examples
Comparison: Checking if Two SPKs Provide the Same Trajectory
In most cases spacecraft SPK files that are checked for ``sameness'' have the same attributes -- storing spacecraft trajectory with respect to the same center in the same frame -- and need to be compared during the whole period of overlap between their coverages. Therefore, SPKDIFF can be run with ``bare minimum'' inputs -- just the names of the SPK files -- and be allowed to use defaults obtained by examining the files and/or hard-coded into the program. Below, SPKDIFF is invoked to answer this question for a regular, reconstructed SPK file and a merged reconstructed SPK file for Mars Global Surveyor. With just the SPK file names provided on the command line:
> spkdiff spk_m_060508_OD32021-32092_rec_V1.bsp mgs_map_rec.bspthe program produces the following output:
#
# Comparison of 1000 'J2000'-referenced geometric states
#
# of 'MGS' (-94) relative to 'MARS BARYCENTER' (4)
# from SPK 'spk_m_060508_OD32021-32092_rec_V1.bsp'
#
# with 1000 'J2000'-referenced geometric states
#
# of 'MGS' (-94) relative to 'MARS BARYCENTER' (4)
# from SPK 'mgs_map_rec.bsp'
#
# evenly-spaced with 507.387 second (0d 00h 08m 27.387s) step size
# within the time interval
#
# from '2006 MAY 08 15:22:00.000 TDB' (200373720.0 TDB seconds)
# to '2006 MAY 14 12:10:00.000 TDB' (200880600.0 TDB seconds)
#
Relative differences in state vectors:
maximum average
Position: 0.0000000000000E+00 0.0000000000000E+00
Velocity: 0.0000000000000E+00 0.0000000000000E+00
Absolute differences in state vectors:
maximum average
Position (km): 0.0000000000000E+00 0.0000000000000E+00
Velocity (km/s): 0.0000000000000E+00 0.0000000000000E+00
The fact that all differences in the output are zero means that both
files provide the same trajectory for MGS relative to Mars Barycenter
for the whole period of overlap (which should be the case because the
regular reconstructed SPK file is one of the files that was used to
create the merged SPK file).
Comparison: Checking if Two SPK files Differ Enough to Matter
As in the previous example, the SPK files that are compared probably have the same attributes -- storing the spacecraft trajectory with respect to the same center in the same frame -- but the comparison window of interest is likely to be narrower than the whole overlap between the file coverages (for example only during closest approach or during a time window around pericenter). Thus, SPKDIFF should be allowed to get most defaults from the files but should be provided with the comparison window begin and end times on the command line. Below, SPKDIFF is run to check how different the reconstructed MGS trajectories provided by the Mars Global Surveyor Navigation team and the JPL Gravity Group are during the 30 minute window from 2001 APR 04 02:30 to 03:30 UTC (a part of the illuminated portion of the MGS orbit 9266). SPKDIFF, invoked with the comparison window boundaries, LSK file name (to support conversion of boundary UTC times to ET), and SPK file names:
> spkdiff -b 2001 APR 04 02:30 -e 2001 APR 04 03:00 \
-k naif0008.tls \
mgs_ext2.bsp mgs_ext2_ipng_mgs75d.bsp
produces the following output:
#
# Comparison of 1000 'J2000'-referenced geometric states
#
# of 'MGS' (-94) relative to 'MARS BARYCENTER' (4)
# from SPK 'mgs_ext2.bsp'
#
# with 1000 'J2000'-referenced geometric states
#
# of 'MGS' (-94) relative to 'MARS BARYCENTER' (4)
# from SPK 'mgs_ext2_ipng_mgs75d.bsp'
#
# evenly-spaced with 1.801 second (0d 00h 00m 01.801s) step size
# within the time interval
#
# from '2001 APR 04 02:30' (39623464.185 TDB seconds)
# to '2001 APR 04 03:00' (39625264.185 TDB seconds)
#
# using additional data from these kernels
#
# 'naif0008.tls'
#
Relative differences in state vectors:
maximum average
Position: 1.5585888672802E-05 7.4593186410629E-06
Velocity: 1.7161324644915E-05 1.4552469606438E-05
Absolute differences in state vectors:
maximum average
Position (km): 5.9196225803226E-02 2.8215203092988E-02
Velocity (km/s): 5.7990372644310E-05 4.9083689420832E-05
The report shows that the maximum difference in position is about 60
meters, which, given uncertainties in other data (timing, attitude,
etc), may be deemed unimportant in processing data from a low resolution
instrument.
Comparison: Checking the Down Track Timing Error
Below, SPKDIFF is run to determine the down track timing error during the 10 minute window around pericenter of the MEX orbit 3040 ( 2006 MAY 23 21:46 ... 21:56 UTC) for trajectories provided by long-term and short-term predicted SPK files. SPKDIFF, invoked with the comparison window boundaries, LSK file name (to support conversion of boundary UTC times to ET), report type ``stats'', and SPK file names:
> spkdiff -b 2006 MAY 23 21:46 -e 2006 MAY 23 21:56 \
-k NAIF0008.TLS \
-t stats
ORMM__060501000000_00253.BSP ORMF_______________00185.BSP
produces the following output:
#
# Comparison of 1000 'J2000'-referenced geometric states
#
# of 'MARS EXPRESS' (-41) relative to 'MARS' (499)
# from SPK 'ORMM__060501000000_00253.BSP'
#
# with 1000 'J2000'-referenced geometric states
#
# of 'MARS EXPRESS' (-41) relative to 'MARS' (499)
# from SPK 'ORMF_______________00185.BSP'
#
# evenly-spaced with 0.600 second (0d 0h 0m 0.600000s) step size
# within the time interval
#
# from '2006 MAY 23 21:46' (201692825.18509 TDB seconds)
# to '2006 MAY 23 21:56' (201693425.18509 TDB seconds)
#
# using additional data from these kernels
#
# 'NAIF0008.TLS'
#
1) Average components of position difference vectors in view
frame coordinates:
1a) Down track (km): 30.552115284475
1b) In orbit plane (km): 1.2710676287493
1c) Normal to orbit plane (km): -0.011807645604121
1d) Average delta time down track (sec): 7.1913943821391
2) Average |components| of position difference vectors in view
frame coordinates:
2a) Down track (km): 30.552115284475
2b) In orbit plane (km): 1.2710676287493
2c) Normal to orbit plane (km): 0.011807645604121
2d) Average |delta time| down track (sec): 7.1913943821391
3) RMS of position difference vectors in view frame coordinates:
3a) Down track (km): 30.553065680244
3b) In orbit plane (km): 1.2720138468831
3c) Normal to orbit plane (km): 0.012788802634391
3d) RMS delta time down track (sec): 7.1917249241123
4) Components of the position difference vector in view frame
coordinates for the states with the MAXIMUM RELATIVE
difference in position:
4a) Down track (km): 30.708369357832
4b) In orbit plane (km): 1.2758338375402
4c) Normal to orbit plane (km): -0.011447894251492
4d) Delta time down track (sec): 7.1972290201441
4e) Epoch (TDB, seconds past J2000): 201693107.46737
4f) Epoch (TDB, calendar format): 2006-MAY-23-21:51:47
5) Components of the position difference vector in view frame
coordinates for the states with the MAXIMUM ABSOLUTE
difference in position:
5a) Down track (km): 30.767205150213
5b) In orbit plane (km): 1.3086257963549
5c) Normal to orbit plane (km): -0.0080797486007561
5d) Delta time down track (sec): 7.2439115051116
5e) Epoch (TDB, seconds past J2000): 201692992.15206
5f) Epoch (TDB, calendar format): 2006-MAY-23-21:49:52
As seen in the report, the maximum down track timing error is about 7.2
seconds at 2006-MAY-23-21:49:52 TBD.
Comparison: Checking Trajectory Differences Over Time
Below SPKDIFF is run to generate a view frame difference table for the Phobos ephemerides provided by the previous and the latest Martian satellite ephemeris files produced by the Solar System Dynamics group at JPL. To get detailed information on short-term difference trends, the comparison is done over 1 day, which is about three Phobos orbits, using a 30 minute time step (time boundaries and step specified using the ``-b'', ``-e'', and ``-s'' options). Since both SPK files contain data for multiple natural bodies, the body name is explicitly specified on the command line using the ``-b1'' option. Because the trajectory difference with respect to Mars is of interest, Mars is specified as the center using the ``-c1'' option. The time tag format for the output is set to the Julian date TDB using the ``-f'' option. SPKDIFF, run with all of these options and the names of the SPK files:
> spkdiff -b 2006 MAY 10 -e 2006 MAY 11 \
-s 1800 \
-k naif0008.tls \
-b1 PHOBOS -c1 MARS \
-t dumpvf \
-f 'JULIAND.######## ::TDB' \
mar063.bsp mar080.bsp
produces the following output:
#
# Comparison of 49 'J2000'-referenced geometric states
#
# of 'PHOBOS' (401) relative to 'MARS' (499)
# from SPK 'mar063.bsp'
#
# with 49 'J2000'-referenced geometric states
#
# of 'PHOBOS' (401) relative to 'MARS' (499)
# from SPK 'mar080.bsp'
#
# evenly-spaced with 1800.0000000000 second (0d 0h 30m 0.000000s) s
# within the time interval
#
# from '2006 MAY 10 00:01:05.185 TDB' (200491265.18535 TDB secon
# to '2006 MAY 11 00:01:05.185 TDB' (200577665.18533 TDB secon
#
# using additional data from these kernels
#
# 'naif0010.tls'
#
# time, down_track_p_diff, normal_to_plane_p_diff, in_plane_p_diff,
down_track_v_diff, normal_to_plane_v_diff, in_plane_v_diff
2453865.50075450 -1.7677349027774E+00 -3.9612553944752E-01 -8.19662
2453865.52158780 -1.7510452874102E+00 -2.3447359311290E-01 +5.14871
2453865.54242110 -1.8363070174400E+00 -3.2619989185819E-02 +1.71661
...
2453866.29242110 -2.9303145501717E+00 +4.4487716042933E-01 +1.12475
2453866.31325450 -2.9793146648918E+00 +3.0429412064303E-01 -1.74350
2453866.33408780 -2.9280026753345E+00 +1.1481152946733E-01 -1.45238
...
2453866.45908780 -1.7640987370183E+00 -3.8347618122648E-01 -7.25770
2453866.47992110 -1.7510926977361E+00 -2.1663590085367E-01 +5.79403
2453866.50075440 -1.8437324018375E+00 -1.2674806851279E-02 +1.79887
(To fit into the page width, all lines except for the last line of the
header -- ``time, down_track_p_diff, ...'' -- were truncated at 67th
position.)
The table above shows that differences in Phobos' position provided by the SPK files are between -3 and -1.7 km down-track, between -0.6 and 0.6 km normal to the orbit plane, and between -0.3 and 0.3 km in the orbit plane perpendicular to the down-track direction. Sampling: States from a Single SPK File
While such default sampling may be useful in some situations, more commonly users would want to specify the step size using the ``-s'' option to produce a more appropriate sampling for the type of trajectory in question, use the ``-b1'' or ``-b2'' (but not both) option to tell the program to generate states for a particular body rather than for the body picked by default, and supply an LSK file with the ``-k'' option and set the output time format picture with the ``-f'' option to generate more human friendly output time tags. As an example of a simple sampling, below SPKDIFF is run to generate a table of states (no ``-t'' option because ``-t dump'' is the default for sampling cases) of MRO relative to the Mars barycenter in the J2000 inertial reference frame, computed with 60 second step (``-s 60''), with time tags printed as UTCs in ISO date format using options
-k naif0010.tls -f 'YYYY-MM-DDTHR:MN:SC.### ::RND'from an MRO SPK file provided in the MRO SPICE archive (``mro_psp20.bsp''), containing data only for the MRO spacecraft. Note that in this run the program automatically picks the body, center, frame, and coverage window from the specified SPK file. SPKDIFF, run with the options mentioned above and the name of the SPK file:
> spkdiff -k naif0010.tls \
-f 'YYYY-MM-DDTHR:MN:SC.### ::RND' \
-s 60 \
mro_psp20.bsp
produces the following output:
# # Sampling of 132541 'J2000'-referenced geometric states # # of 'MARS RECON ORBITER' (-74) relative to 'MARS BARYCENTER' (4 # computed using # # naif0010.tls # mro_psp20.bsp # # with a 60.000000000000 second (0:00:01:00.000000) step size # within the continuous time period # # from '2011 JUL 01 00:01:06.184 TDB' (362750466.18413 TDB secon # to '2011 OCT 01 01:01:06.182 TDB' (370702866.18235 TDB secon # # Times were generated by TIMOUT using 'YYYY-MM-DDTHR:MN:SC.### ::R # # time, x, y, z, vx, vy, vz 2011-07-01T00:00:00.000 -1.2631831919268E+03 -2.1050939423488E+03 - 2011-07-01T00:01:00.000 -1.2070458592754E+03 -2.2708451713874E+03 - 2011-07-01T00:02:00.000 -1.1470661740673E+03 -2.4293953426217E+03 - ... 2011-10-01T00:59:00.002 +2.4573775413008E+03 -2.6139786726625E+03 + 2011-10-01T01:00:00.000 +2.4222378126552E+03 -2.5767734595725E+03 +(To fit into the page width, the lines were truncated at the 67th position.) Sampling: States from Many SPKs Listed in Meta-Kernel(s)
As an example of sampling trajectory from meta-kernels, below SPKDIFF is run to generate a table of states (no ``-t'' option because ``-t dump'' is the default for sampling cases) of Stardust (``-b1 SDU'') relative to the Sun (``-c1 SUN'') in the Ecliptic of J2000 inertial reference frame (``-r1 ECLIPJ2000''), computed with 86400 second (1 day) step (``-s 86400''), with time tags printed as UTCs in ISO DOY format
-f 'YYYY-DOYTHR:MN:SC.### ::RND'using SPKs listed in the latest Stardust SPICE archive meta-kernel (``-k sdu_v03.tm''). Note that an LSK file does not need to be explicitly provided on the command line because the meta-kernel includes an LSK file. SPKDIFF, run with the options mentioned above:
> spkdiff -k sdu_v03.tm \
-f 'YYYY-DOYTHR:MN:SC.### ::RND' \
-b1 SDU \
-c1 SUN \
-r1 ECLIPJ2000 \
-s 86400
produces the following output:
# # Sampling of 40968 'ECLIPJ2000'-referenced geometric states # # of 'SDU' (-29) relative to 'SUN' (10) # computed using # # sdu_v03.tm # # with a 86400.000000000 second (1:00:00:00.000000) step size # within the non-continuous (with 2 gaps) time period # # from '1999 FEB 07 21:32:10.699 TDB' (-28304869.300000 TDB seco # to '2111 APR 07 00:00:00.000 TDB' (3511080000.0000 TDB secon # # Times were generated by TIMOUT using 'YYYY-DOYTHR:MN:SC.### ::RND # # time, x, y, z, vx, vy, vz 1999-038T21:31:06.515 -1.1081241906831E+08 +9.7436557730578E+07 -3. 1999-040T00:58:55.815 -1.1308778501370E+08 +9.4731491300541E+07 -8. 1999-040T00:58:55.816 -1.1308777975290E+08 +9.4731487534379E+07 -8. ... 2111-095T00:58:53.818 -3.9989092550623E+07 -2.1645212911162E+08 -1. 2111-096T00:58:53.818 -3.8191514897493E+07 -2.1733323167609E+08 -1. 2111-096T23:58:53.814 -3.6465563483695E+07 -2.1815901299532E+08 -1.(To fit into the page width, the lines were truncated at the 67th position.) Coverage: Coverage for a Single Body
As an example of a simple coverage report, below SPKDIFF is run to show coverage (``-t dumpc'') for MRO with time tags printed as UTCs in the ISO date format using options
-k naif0010.tls -f 'YYYY-MM-DDTHR:MN:SC.### ::RND'provided by the MRO SPK file (``mro_psp20.bsp'') containing data only for the MRO spacecraft. Note that in this run the program automatically picks the body from the specified SPK file. SPKDIFF, run with the options mentioned above and the name of the SPK file:
> spkdiff -k naif0010.tls \
-f 'YYYY-MM-DDTHR:MN:SC.### ::RND' \
-t dumpc \
mro_psp20.bsp
produces the following output:
#
# Coverage for 'J2000'-referenced geometric states
#
# of 'MARS RECON ORBITER' (-74) relative to 'MARS BARYCENTER' (4)
# computed using
#
# ../lsk/naif0010.tls
# mro_psp20.bsp
#
# with a 7960.3603585812 second (0:02:12:40.360359) step size
# within the continuous time period
#
# from '2011 JUL 01 00:01:06.184 TDB' (362750466.18413 TDB secon
# to '2011 OCT 01 01:01:06.182 TDB' (370702866.18235 TDB secon
#
# Times were generated by TIMOUT using 'YYYY-MM-DDTHR:MN:SC.### ::R
#
# interval_start, interval_stop, interval_duration_sec, interval_du
2011-07-01T00:00:00.000 2011-10-01T01:00:00.000 7952399.998223
92:00:59:59.998223
(To fit into the page width, all lines but the last were truncated at
the 67th position; the last line was wrapped.)
As seen in the report, the MRO trajectory provided in this SPK covers approximately 92 days and 1 hour. Coverage: Coverage Overlap for Two Bodies
In the example below SPKDIFF is run to show overlap in trajectory coverage (``-t dumpc'') for MRO between two MRO SPKs (``mro_psp19.bsp'' and ``mro_psp20.bsp''), with time tags printed as UTCs in the ISO date format using options
-k naif0010.tls -f 'YYYY-MM-DDTHR:MN:SC.### ::RND'Note that in this run the program automatically picks the body and all other defaults from the first SPK file. SPKDIFF, run with the options mentioned above and the names of the SPK files:
> spkdiff -k naif0010.tls \
-f 'YYYY-MM-DDTHR:MN:SC.### ::RND' \
-t dumpc \
mro_psp19.bsp \
mro_psp20.bsp
produces the following output:
#
# Coverage overlap for 'J2000'-referenced geometric states
#
# of 'MARS RECON ORBITER' (-74) relative to 'MARS BARYCENTER' (4
# computed using
#
# naif0010.tls
# mro_psp19.bsp
#
# and 'J2000'-referenced geometric states
#
# of 'MARS RECON ORBITER' (-74) relative to 'MARS BARYCENTER' (4
# computed using
#
# naif0010.tls
# mro_psp20.bsp
#
# with a 3.6036036024700 second (0:00:00:03.603604) step size
# within the continuous time period
#
# from '2011 JUL 01 00:01:06.184 TDB' (362750466.18413 TDB secon
# to '2011 JUL 01 01:01:06.184 TDB' (362754066.18412 TDB secon
#
# Times were generated by TIMOUT using 'YYYY-MM-DDTHR:MN:SC.### ::R
#
# interval_start, interval_stop, interval_duration_sec, interval_du
2011-07-01T00:00:00.000 2011-07-01T01:00:00.000 3599.999999
0:00:59:59.999999
(To fit into the page width, all lines but the last were truncated at
the 67th position; the last line was wrapped.)
As seen in the report, the overlap between MRO trajectories provided in these SPKs is approximately 1 hour. Coverage: Gaps in Coverage
In the example below SPKDIFF is run to show gaps in trajectory coverage (``-t dumpg'') of Stardust (``-b1 SDU'') relative to the Sun (``-c1 SUN'') in the Ecliptic of J2000 inertial reference frame (``-r1 ECLIPJ2000''), with time tags printed as UTCs in the ISO DOY format
-f 'YYYY-DOYTHR:MN:SC.### ::RND'for all SPKs listed in the latest Stardust SPICE archive meta-kernel (``-k sdu_v03.tm''). Note that an LSK file does not need to be explicitly provided on the command line because the meta-kernel includes an LSK file. SPKDIFF, run with the mentioned above options and the names of the SPK files:
> spkdiff -k sdu_v03.tm \
-f 'YYYY-DOYTHR:MN:SC.### ::RND' \
-b1 SDU \
-c1 SUN \
-r1 ECLIPJ2000 \
-t dumpg
produces the following output:
# # Coverage for 'ECLIPJ2000'-referenced geometric states # # of 'SDU' (-29) relative to 'SUN' (10) # computed using # # sdu_v03.tm # # with a 3550034.9742187 second (41:02:07:14.974219) step size # within the non-continuous (with 2 gaps) time period # # from '1999 FEB 07 21:32:10.699 TDB' (-28304869.300000 TDB seco # to '2111 APR 07 00:00:00.000 TDB' (3511080000.0000 TDB secon # # Times were generated by TIMOUT using 'YYYY-DOYTHR:MN:SC.### ::RND # # gap_start, gap_stop, gap_duration_sec, gap_duration_string 1999-040T00:58:55.815 1999-040T00:58:55.816 0.000982 0:00:00:00.000982 1999-121T00:58:55.815 1999-121T00:58:55.818 0.003000 0:00:00:00.003000(To fit into the page width, all lines but the last two were truncated at the 67th position; the last two lines were wrapped.) As seen in the report, the SDU trajectory provided by the SPK files listed in this meta-kernel has two very small gaps (~0.001 and ~0.003 seconds) close to the start of the coverage.
|