MKSPK User's Guide |
Table of ContentsMKSPK User's Guide Abstract Summary Usage Setup, Input, and Output File Options Append Option Information Options Setup File Template Options Execution of MKSPK Setup File Format and Contents Required Assignments Conditional Assignments Optional Assignments Detailed Description of Setup File Keywords ICRF vs J2000 Description of Input Data Format Description of Input Data Parameters Description of Input Data Types and Content Input Type STATES Input Type ELEMENTS Input Type EQ_ELEMENTS Input Type TL_ELEMENTS Relation Between Number of Input Records and Output Types Examples of Input Data and Setup Files Data Order and Data Delimiters Example 1 Example 2 Example 3 Example 4 Using Time Wrappers Complete Examples Input Data Type STATES / Output SPK Type 05 Input Data Type STATES / Output SPK Type 08 Input Data Type STATES / Output SPK Type 09 Input Data Type STATES / Output SPK Type 12 Input Data Type STATES / Output SPK Type 13 Input Data Type STATES / Output SPK Type 15 Input Data Type STATES / Output SPK Type 17 Input Data Type ELEMENTS / Output SPK Type 05 Input Data Type ELEMENTS / Output SPK Type 08 Input Data Type ELEMENTS / Output SPK Type 09 Input Data Type ELEMENTS / Output SPK Type 12 Input Data Type ELEMENTS / Output SPK Type 13 Input Data Type ELEMENTS / Output SPK Type 15 Input Data Type ELEMENTS / Output SPK Type 17 Input Data Type EQ_ELEMENTS / Output SPK Type 17 Input Data Type TL_ELEMENTS / Output SPK Type 10 Skipping Input Data Record Tokens Two Epochs in the Input Data Records MKSPK User's Guide
Abstract
Summary
The MKSPK program accepts one ASCII text file containing descriptions of input data (setup file) and a second ASCII text file (input file) containing the source ephemeris data to be processed. Source ephemeris data can be time ordered lists of states (positions and velocities), sets of conic elements, sets of two-line elements, or a single set of equinoctial elements. All input data must be defined in a reference frame and relative to a body center both of which are specified in the setup file. The program allows the user to optionally specify some descriptive text in a separate file (comment file) to be placed into the ``comment area'' of the SPK ephemeris file. (Doing this is highly recommended.) For archival documentation purposes the content of the MKSPK setup file is automatically placed at the end of the ``comment area'' of the SPK file. Usage
> mkspk [-setup <setup file name>] [-input <input data file name>] [-output <output SPK file name>] [-append] [-u|-usage] [-h|-help] [-t|-template] [<input data type> <output spk type>]Command lines options can be provided in any order. Option keys must be strictly lowercase. Setup, Input, and Output File Options
The input file must already exist. The output must not exist unless the -append key or the corresponding setup file keyword tells the program to run in the append mode. Append Option
If the -append key or the corresponding setup file keyword is provided and the SPK file specified after the -output key exists, then new data will be appended to it. If the -append key or the corresponding setup file keyword is provided but the SPK file specified after the -output key doesn't exist, then a new SPK file with the name specified after the -output key will be created. Caution: if the program fails for any reason, it, in most cases, deletes the output file, even if it was appending data to an existing SPK file. Therefore, users should always make a backup copy of an SPK file to which new data is going to be appended before running the program in append mode. Also, the program cannot append data to an existing SPK file if its format is not native to the platform on which the program is running. Refer to the CONVERT User's Guide (convert.ug) for details. Information Options
If -u or -usage is specified, the program displays the usage information. If -h or -help is specified, the program displays a brief summary of its functionality. Setup File Template Options
If -t or -template is specified by itself, the program displays the complete setup file template including all required, optional, and conditional setup file keywords. Since the total number of recognized setup keywords is rather large and some of the keywords are specific for just one input data type or output SPK type, using this complete template as the starting point in creating a setup for the case at hand may be cumbersome and inefficient. To display a more concise, type-specific template, the input data type -- ``states'', ``elements'', ``eq_elements'', or ``tl_elements'' -- and the output SPK type -- 5, 8, 9, 10, 12, 13, 15, or 17 -- can be specified following the -t or -template key. Such templates will include only keywords applicable for the specified type combination. For example, to display a template with keywords applicable to creating a type 13 SPK file from a table of states, use this option:
> mkspk -t states 13To display a template with keywords applicable to creating a type 10 SPK file from a table of two-line elements, use this option:
> mkspk -t tl_elements 10 Execution of MKSPK
As it executes, the program will display a brief summary of its action. Only one SPK ephemeris file using a single SPK type and containing one or more segments may be generated during a single MKSPK session. Setup File Format and Contents
KEYWORD = VALUEEach assignment is restricted to a single line. Sets of these assignments must be enclosed between
\begindata \begintexttokens, each of which must also be placed on a line by itself. Free-form descriptive/explanatory text may occur after the
\begintexttoken. Still more assignments could follow another
\begindatatoken. The names of the setup file keywords must be strictly uppercase while the standard value of keywords may be upper, lower or mixed case. Any white space preceding or following keyword names, values and equal sign is ignored. All character string values and time strings must be enclosed in single quotes, provided on a single line and be no longer than 80 characters. When multiple value are allowed and used, enclose the complete set in the "()" characters: KEYWORD = ( 'value1' 'value2' 'value3' ... ) All assignments are either required, conditional or optional as described below. A setup file may contain blank lines. Non-printing characters including TAB should not be used in setup file lines containing keyword assignments or blank lines separating them within the data sections of a setup file. The program may not be able to parse correctly any of the setup file lines that contain non-printing characters and will signal a setup file parsing error on some computer platforms. Required Assignments
INPUT_DATA_TYPE = 'STATES' or 'ELEMENTS' or 'EQ_ELEMENTS' or 'TL_ELEMENTS' OUTPUT_SPK_TYPE = 5 or 8 or 9 or 10 or 12 or 13 or 15 or 17 OBJECT_ID = Numeric code assigned to the object, or TLE s/c code ('TL_ELEMENTS'/SPK 10 only) or OBJECT_NAME = 'NAIF supported object name' or TLE_INPUT_OBJ_ID = code of the object to look for in the input TLE file TLE_SPK_OBJ_ID = NAIF ID to use in the output TLE-based SPK file CENTER_ID = Numeric code assigned to the body which is the center of motion for the object or CENTER_NAME = 'NAIF supported body name' REF_FRAME_NAME = 'reference frame name' PRODUCER_ID = 'producer identifier' DATA_ORDER = 'ordered list of input parameter names' DATA_DELIMITER = 'delimiter separating input data items' LEAPSECONDS_FILE = 'leapseconds file name'The following assignments are required in the setup file if their values are not provided on the command line:
INPUT_DATA_FILE = 'input data file name' OUTPUT_SPK_FILE = 'output SPK file name' Conditional Assignments
PCK_FILE = ( 'PCK_1 file name' 'PCK_2 file name' ... 'PCK_n file name' ) FRAME_DEF_FILE = 'frame definition file name' COMMENT_FILE = 'comment file name' INPUT_DATA_UNITS = ( 'ANGLES = angle unit' 'DISTANCES= distance unit' ) EPOCH_STR_LENGTH = length of epoch string IGNORE_FIRST_LINE = number of initial lines to be ignored while reading input file LINES_PER_RECORD = number of lines in one input record TIME_WRAPPER = '# time wrapper' START_TIME = 'start time' or TLE_START_PAD = 'duration units' STOP_TIME = 'stop time' or TLE_STOP_PAD = 'duration units' PRECESSION_TYPE = 'NO PRECESSION' or 'APSIDE PRECESSION ONLY' or 'NODE PRECESSION ONLY' or 'APSIDE AND NODE PRECESSION' POLYNOM_DEGREE = polynomial degree of Lagrange or Hermite interpolation CENTER_GM = center GM value CENTER_POLE_RA = the right ascension of the center's north pole given with respect to the reference frame CENTER_POLE_DEC = the declination of the center's north pole given with respect to the reference frame CENTER_J2 = center's J2 value CENTER_EQ_RADIUS = center's equatorial radius Optional Assignments
SEGMENT_ID = 'segment identifier' APPEND_TO_OUTPUT = flag indicating whether new segments should or shouldn't be appended to an existing SPK file Detailed Description of Setup File Keywords
NAIF_ID = -100000 - TLE_ID
RADIANS DEGREES ARCMINUTES ARCSECONDS HOURANGLE MINUTEANGLE SECONDANGLE METERS KM CM MM FEET INCHES YARDS STATUTE_MILES NAUTICAL_MILES AU PARSECS LIGHTSECS LIGHTYEARS
"#"
TIME_WRAPPER = '# TDT'
TIME_WRAPPER = '# ETSECONDS'
ICRF vs J2000
The rotational offset between the J2000 frame and the ICRS has magnitude of under 0.1 arcseconds. Certain JPL data products are referenced to the ICRF or later versions of it. These include, but are not limited to,
Modern spacecraft ephemerides and attitude data, other than those for Earth orbiters, are likely referenced to the ICRF. Users should consult documentation or data providers to verify this for data sets of interest. SPK and binary PCK files produced by NAIF from the data sources listed above are referenced to the same version of the ICRF as the corresponding data sources. For historical and backward compatibility reasons, these data products are labeled as being referenced to the J2000 frame. No transformation is required to convert state vectors or orientation data from the J2000 frame to the ICRF (or later version), if the vectors or orientation data are computed using SPICE kernels created from the data sources listed above. For example:
SPICE users who export kernel data to non-SPICE file formats may need to transform the data, depending on the frame to which the SPICE data are actually referenced (as opposed to the frame to which the kernel indicates the data are referenced), and depending on the desired output frame. Description of Input Data Format
All lines in the input file, including the last line, must be terminated with the line terminators native to the computer platform on which the program is run. If the lines are terminated with a non-native terminator, the program will not be able to process the input file correctly. If the last line of the input file is not terminated with the proper line terminator, the program will ignore it causing the data written to the output SPK file be incomplete. The input file must contain a number of data records sufficient to generate an SPK file of a specified type (see subsection below). Each of the records must occupy the same number of non-blank lines and contain the same set of input data items, provided in the same order. Blank lines can appear anywhere between non-blank record lines and are not taken into account by the program. The data set contained in each record must correspond to a single epoch. Data records in an input file must be provided in strictly increasing time order based on the values of the data item EPOCH. Data records with duplicate EPOCHs are not allowed. An input file may also contain one or more initial lines that do not represent a valid data record (for example a table header). These lines can be ignored by specifying their count in the IGNORE_FIRST_LINE setup file keyword. The order of the data items in each input data record must be specified in the DATA_ORDER keyword. Input data items within each data record must be separated by one of the following delimiters:
'TAB' or 'EOL' or ';' or ',' or ' 'The delimiter is not required but is permitted after the last data item on a line. Any spaces between the delimiter and preceding or following data items are ignored. In the case when white space is used as the delimiter, multiple spaces between data items are treated as a single space. If tabulation ('TAB'), end-of-line ('EOL') or semicolon (';') is used as the data delimiter then only two setup file keywords are required for MKSPK in order to parse input data -- DATA_ORDER and DATA_DELIMITER. If comma (',') or white space (' '), which are also allowed in SPICE time strings, is used as the data delimiter and the input data records contain only one time parameter (EPOCH), then the number of lines in each input data record must be specified using the setup file keyword LINES_PER_RECORD. The DATA_ORDER and DATA_DELIMITER keywords must also be used. If comma (',') or white space (' ') is used as the data delimiter and the input data records contain two times (EPOCH and EPOCHP), then both input times must have the same width, from the first though the last non-blank character, and this width must be specified in the setup file keyword EPOCH_STR_LENGTH. The DATA_ORDER and DATA_DELIMITER keywords must also be used. Description of Input Data Parameters
Listed below are the names of all the input data known to MKSPK--you would use just a subset of these in any one MKSPK session. How you use these parameter names to tell MKSPK what kind of input data are to be processed is described below. Note that one parameter name, "SKIP", is used to indicate that some item(s) in your input data file are to be ignored by MKSPK.
'# ETSECONDS'
'# ETSECONDS'
Description of Input Data Types and Content
STATES, ELEMENTS, EQ_ELEMENTS, TL_ELEMENTSIf input type is STATES, you can create an SPK of output types: 5, 8, 9, 12, 13, 15 and 17. If input type is ELEMENTS, you can create an SPK of output types: 5, 8, 9, 12, 13, 15 and 17. If input type is EQ_ELEMENTS, you can create only an SPK of output type 17. If input type is TL_ELEMENTS, you can create only an SPK of output type 10. Input Type STATES
If you use the STATES input type to produce an SPK of Type 17, you must also include three equinoctial parameters:
DPER/DT, DMPN/DT, DNOD/DTin addition to the state vector. Any other allowed parameters in the DATA_ORDER value for the input type STATES are treated by the program program as SKIP. Input Type ELEMENTS
If you use the ELEMENTS input type to produce an SPK of Type 17, you must also include three equinoctial parameters:
DPER/DT, DMPN/DT, DNOD/DTin addition to the base elements. Any other allowed parameters in the DATA_ORDER value for the input type ELEMENTS are treated by the program program as SKIP. Input Type EQ_ELEMENTS
Any other allowed parameters in the DATA_ORDER value for the input type EQ_ELEMENTS are treated by the program program as SKIP. Input Type TL_ELEMENTS
Relation Between Number of Input Records and Output Types
An SPK of Types 8, 9 requires input records of time ordered STATES or ELEMENTS. The degree of Lagrange polynomial specified by the keyword POLYNOM_DEGREE must be less than the number of the data records. An SPK of Type 10 requires one or more input records of time ordered TL_ELEMENTS for the spacecraft with the TLE ID specified in the OBJECT_ID setup file keyword. An SPK of Types 12, 13 requires input records of time ordered STATES or ELEMENTS. The degree of Hermite polynomial specified by the keyword POLYNOM_DEGREE must be an odd number and less than the number of the data records times 2. An SPK of Type 15 requires only one input record of STATES or ELEMENTS. If the input file contains more than one record, only the first is used by the program. An SPK of Type 17 requires only one input record of EQ_ELEMENTS or one input record of STATES or ELEMENTS with DPER/DT, DMNP/DT, DNOD/DT added. If the input file contains more than one record, only the first is used by the program. Examples of Input Data and Setup FilesData Order and Data Delimiters
DATA_ORDER = '<param1> <param2> ... <paramN>' DATA_DELIMITER = '<selection>'In some situations it is necessary to use the keyword EPOCH_STR_LENGTH to define input epoch string length, or the keyword LINES_PER_RECORD to define the number of lines used for each input record. One of these assignments may be needed to allow MKSPK to determine which characters are part of the epoch parameter as opposed to being one of the state or elements parameters. Example 1
Case 1. ------ It this example the data delimiter is the comma. You have a time ordered set of states with each record consisting of one line.
epoch1, x1, y1, z1, vx1, vy1, vz1 [,] (record 1) epoch2, x2, y2, z2, vx2, vy2, vz2 [,] (record 2) epoch3, x3, y3, z3, vx3, vy3, vz3 [,] (record 3) epoch4, x4, y4, z4, vx4, vy4, vz4 [,] (record 4) ..................................... .......... ..................................... ..........Note that the data delimiter at the end of each line ( record ) is optional (as indicated by the square brackets) and may be omitted. Let the format of each epoch string be:
1998 DEC 12 10:23:20You can define this input data using the following specifications in the setup file:
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'epoch x y z vx vy vz' DATA_DELIMITER = ',' EPOCH_STR_LENGTH = 20Alternatively we can use this set of specifications:
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'epoch x y z vx vy vz ' DATA_DELIMITER = ',' LINES_PER_RECORD = 1This alternative method is possible because MKSPK is told that there are seven data items per line, of which the last six are the state. Therefore all other character strings are part of the epoch. Case 2. ------ The epoch can occur in any position on the input line. For example, the input line could contain:
x, y, z, epoch, vx, vy, vz [,]Relative to case 1 you need to change only the order of parameters in DATA_ORDER:
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'x y z epoch vx vy vz' DATA_DELIMITER = ',' EPOCH_STR_LENGTH = 20or
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'x y z epoch vx vy vz' DATA_DELIMITER = ',' LINES_PER_RECORD = 1Case 3. ------ The input data use a blank (white space) as the delimiter. For example, the input line could contain:
x y z epoch vx vy vzYou need to change only the value of DATA_DELIMITER:
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'x y z epoch vx vy vz' DATA_DELIMITER = ' ' EPOCH_STR_LENGTH = 20or
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'x y z epoch vx vy vz' DATA_DELIMITER = ' ' LINES_PER_RECORD = 1If the delimiter used to separate input data items is one that is not allowed as a delimiter in SPICE time strings (white space or comma), then the specifications needed in the setup file are fewer -- neither EPOCH_STR_LENGTH nor LINE_PER_RECORD is needed. Case 4. ------ The input data use one of 'TAB', 'EOL' or ';' as delimiter. For example, if an input line contains:
x; y; z; epoch; vx; vy; vz [;]You should change the value of DATA_DELIMITER and omit the keyword EPOCH_STR_LENGTH or LINES_PER_RECORD:
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'x y z epoch vx vy vz' DATA_DELIMITER = ';' Example 2
The input type is STATES and the delimiter is ',' which is also allowed in SPICE time strings. You have a time ordered set of states with epochs, and each input record consists of a few lines. There are some unused parameters ('not_used') between input data values and there are blank lines between significant lines. Each input record consists of 2 significant lines with none to several intervening blank lines:
epoch1, not_used, not_used [,] blank line x1, y1, z1, vx1, vy1, vz1 [,] (record 1) epoch2, not_used, not_used [,] x2, y2, z2, vx2, vy2, vz2 [,] (record 2) epoch3, not_used, not_used [,] x3, y3, z3, vx3, vy3, vz3 [,] (record 3) epoch4, not_used, not_used [,] blank line blank line x4, y4, z4, vx4, vy4, vz4 [,] (record 4) .............................. .......... .............................. ..........The delimiter at the end of each line (record) is optional (as indicated by the square brackets) and may be omitted. Let the format of each epoch string look like this:
1998 DEC 12 10:23:20.617You can define this input data using the following specification in the setup file:
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'epoch skip skip x y z vx vy vz' DATA_DELIMITER = ',' EPOCH_STR_LENGTH = 24or
INPUT_DATA_TYPE = 'STATES' DATA_ORDER = 'epoch skip skip x y z vx vy vz' DATA_DELIMITER = ',' LINES_PER_RECORD = 2Note that the LINES_PER_RECORD assignment specifies the number of ``significant'' data lines per record -- it does not need to account for any number of intervening blank lines. All modifications like the cases of Example 1 are possible. Example 3
The input type is ELEMENTS. We consider the case when the data delimiter is one of those also allowed in SPICE time strings -- white space (' ') or comma (','). For example assume the delimiter is the comma character. You have a time ordered set of conic elements with epochs and each input record consists of a few lines. There are some unused parameters ('not_used') between input data values and occasionally some blank lines between significant lines. Each input record consists of 2 significant lines:
epoch1, not_used, not_used [,] blank line e1,a1,inc1, per1, nod1, mean1 [,] (record 1) epoch2, not_used, not_used [,] e2,a2,inc2, per2, nod2, mean2 [,] (record 2) epoch3, not_used, not_used [,] e3,a3,inc3, per3, nod3, mean [,] (record 3) epoch4, not_used, not_used [,] blank line blank line e4,a4,inc4, per4, nod4, mean4 [,] (record 4) .............................. .......... .............................. ..........The delimiter at the end of each line (record) is optional (as indicated by the square brackets) and may be omitted. Let the format of each epoch string look like this:
1998 DEC 12 10:23:20.3You can define this input data using the following specification in the setup file:
INPUT_DATA_TYPE = 'ELEMENTS' DATA_ORDER = 'epoch skip skip e a inc per nod mean' DATA_DELIMITER = ',' EPOCH_STR_LENGTH = 22or
INPUT_DATA_TYPE = 'ELEMENTS' DATA_ORDER = 'epoch skip skip e a inc per nod mean' DATA_DELIMITER = ',' LINES_PER_RECORD = 2You could use, by the same rules, other elements included in the list of parameters for input type ELEMENTS, except the case when the existing epoch of periapsis is also included in the input data. Case 2: ------- In this example you need epoch of periapsis as an additional input data item and the data delimiter is one of those also allowed in SPICE time strings -- white space (' ') or comma (','):
epoch1, not_used, not_used [,] blank line e1,a1,inc1, per1, nod1, epochp1 [,] (record 1) epoch2, not_used, not_used [,] e2,a2,inc2, per2, nod2, epochp2 [,] (record 2) epoch3, not_used, not_used [,] e1,a1,inc1, per1, nod1, epochp3 [,] (record 3) epoch4, not_used, not_used [,] blank line blank line e1,a1,inc1, per1, nod1, epochp4 [,] (record 4) .............................. .......... .............................. ..........The value of epochp must use the same format as for the epoch string:
1998 DEC 12 09:12:34.9and the length of the time string (must be the same for epoch and epochp) must be defined using the keyword EPOCH_STR_LENGTH:
INPUT_DATA_TYPE = 'ELEMENTS' DATA_ORDER = 'epoch skip skip e a per nod epochp' DATA_DELIMITER = ',' EPOCH_STR_LENGTH = 22All other modifications like the cases of Example 1 are possible. Example 4
For example assume the delimiter is the comma character. Each data record consists of two lines. There are some not used parameters ('not_used') between some of the input data values of nine equinoctial elements.
epoch1, eq(1), eq(2), eq(3), eq(4), eq(5), eq(6) [,] not_used, not_used, eq(7), eq(8), eq(9), no_used [,]The delimiter at the end of each line (record) is optional (as indicated by the square brackets) and may be omitted. Let the format of each epoch string look like this:
1998 DEC 12 10:23You can define this input data using the following specification in the setup file:
INPUT_DATA_TYPE = 'EQ_ELEMENTS' DATA_ORDER = 'epoch eq_a eq_h eq_k eq_ml eq_p eq_q skip skip dper/dt dmnp/dt dnod/dt skip' (*) DATA_DELIMITER = ',' EPOCH_STR_LENGTH = 17or
INPUT_DATA_TYPE = 'EQ_ELEMENTS' DATA_ORDER = 'epoch eq_a eq_h eq_k eq_ml eq_p eq_q skip skip dper/dt dmnp/dt dnod/dt skip' (*) DATA_DELIMITER = ',' LINES_PER_RECORD = 2(*) In a real setup file the assignment for the DATA_ORDER keywords must be on a single line. It was split to be on two lines only to fit onto the page in this document. Using Time Wrappers
"#"character to indicate where the given time string data are to be placed relative to the characters being added. As an example of providing a time string identifier, suppose the input data has ET Julian Date epoch values that look like this:
2554617.231The SPICE's time conversion routine STR2ET will not be able to process these tags unless a modifier known to the SPICE system is added. You must indicate to STR2ET that these values are Julian Dates in ET (now called Barycentric Dynamical Time, abbreviated as TDB) using the following assignment:
TIME_WRAPPER = '# JD TDB'As another example suppose the time strings are given in calendar format Pacific Standard Time and look like this:
1999 MAR 10 14:31:22.376You must then use the TIME_WRAPPER assignment as follows:
TIME_WRAPPER = '# PST'to add ``PST'' to each time string so that SPICE time parsing software inside MKSPK will properly interpret these time tags. You can also use this assignment to add missing information. Suppose your data look like this:
MAR 10 14:31:22.376You should use the following TIME_WRAPPER assignment:
TIME_WRAPPER = '1999 # UTC'This will prefix your data with '1999 ' and suffix your data with ' UTC' so the input to the time parsing software inside MKSPK will look like:
1999 MAR 03 10:14:22.376 UTCA special value must be assigned to the TIME_WRAPPER keyword when input times are given as DP numbers representing ET seconds past J2000. Such time tags are not processed by STR2ET; instead, they are buffered directly as DP numbers. To process this kind of input times the TIME_WRAPPER keyword must be set as follows:
TIME_WRAPPER = '# ETSECONDS' Complete Examples
If you cut and paste one of these examples to help construct your own setup file be sure to change all values that need to be updated for your particular situation. Input Data Type STATES / Output SPK Type 05
The PCK file 'Gravity.tpc' containing GM of the central body (Jupiter) is specified using the PCK_FILE keyword. Alternatively, Jupiter's GM can be specified using the CENTER_GM keyword. The GM value will be stored in the output SPK file together with the states. The IGNORE_FIRST_LINE keyword is used to skip the header (three lines) of the input file and the LINES_PER_RECORD keyword is used to specify that each record of the input file occupies two lines, which the program must know because the input data delimiter ' ' is one that can be used in a SPICE time string. Setup file:
\begindata INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 5 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH X Y Z VX VY VZ' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = 'Gravity.tpc' SEGMENT_ID = 'SPK_STATES_05' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, R,V ------- 1979 MAR 05 00:00:00 -178932.619 -28063.045 -17448.755 4.733702 -23.495860 -11.041956 1979 MAR 05 00:02:00 -178337.419 -30878.143 -18771.071 5.186043 -23.421245 -10.996084 1979 MAR 05 00:04:00 -177688.033 -33683.859 -20087.682 5.636786 -23.339517 -10.946873 ... Input Data Type STATES / Output SPK Type 08
The POLYNOM_DEGREE keyword is used to specify the polynomial degree that will be used to interpolate over discreet states stored in the output SPK file; this parameter is required for SPK Type 8. The IGNORE_FIRST_LINE keyword is used to skip the header (three lines) of the input file and the LINES_PER_RECORD keyword is used to specify that each record of the input file occupies two lines, which the program must know because the input data delimiter ' ' is one that can be used in a SPICE time string. To ensure the continuity of the interpolating polynomials over the time span covered by an SPK Type 08 segment the degree of the polynomial should be odd. Setup file:
\begindata INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 8 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH X Y Z VX VY VZ' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 9 SEGMENT_ID = 'SPK_STATES_08' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, R,V ------- 1979 MAR 05 00:00:00 -178932.619 -28063.045 -17448.755 4.733702 -23.495860 -11.041956 1979 MAR 05 00:02:00 -178337.419 -30878.143 -18771.071 5.186043 -23.421245 -10.996084 1979 MAR 05 00:04:00 -177688.033 -33683.859 -20087.682 5.636786 -23.339517 -10.946873 ... Input Data Type STATES / Output SPK Type 09
The POLYNOM_DEGREE keyword is used to specify the polynomial degree that will be used to interpolate over discreet states stored in the output SPK file; this parameter is required for SPK Type 9. The IGNORE_FIRST_LINE keyword is used to skip the header (three lines) of the input file and the LINES_PER_RECORD keyword is used to specify that each record of the input file occupies two lines, which the program must know because the input data delimiter ' ' is one that can be used in a SPICE time string. To ensure the continuity of the interpolating polynomials over the time span covered by an SPK Type 09 segment the degree of the polynomial should be odd. Setup file:
\begindata INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 9 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH X Y Z VX VY VZ' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 9 SEGMENT_ID = 'SPK_STATES_09' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, R,V ------- 1979 MAR 05 00:00:00 -178932.619 -28063.045 -17448.755 4.733702 -23.495860 -11.041956 1979 MAR 05 00:02:00 -178337.419 -30878.143 -18771.071 5.186043 -23.421245 -10.996084 1979 MAR 05 00:04:00 -177688.033 -33683.859 -20087.682 5.636786 -23.339517 -10.946873 ... Input Data Type STATES / Output SPK Type 12
The POLYNOM_DEGREE keyword is used to specify the polynomial degree that will be used to interpolate over discreet states stored in the output SPK file; this parameter is required for SPK Type 12 and its value must be an odd number. The IGNORE_FIRST_LINE keyword is used to skip the header (three lines) of the input file and the LINES_PER_RECORD keyword is used to specify that each record of the input file occupies two lines, which the program must know because the input data delimiter ' ' is one that can be used in a SPICE time string. To ensure the continuity of the interpolating polynomials over the time span covered by an SPK Type 12 segment the degree of the polynomial should be equivalent to 3 mod 4 (3, 7, 11, etc.) Setup file:
\begindata INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 12 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'B.V.Semenov, NAIF/JPL' DATA_ORDER = 'EPOCH X Y Z VX VY VZ' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 7 SEGMENT_ID = 'SPK_STATES_12' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, R,V ------- 1979 MAR 05 00:00:00 -178932.619 -28063.045 -17448.755 4.733702 -23.495860 -11.041956 1979 MAR 05 00:02:00 -178337.419 -30878.143 -18771.071 5.186043 -23.421245 -10.996084 1979 MAR 05 00:04:00 -177688.033 -33683.859 -20087.682 5.636786 -23.339517 -10.946873 ... Input Data Type STATES / Output SPK Type 13
The POLYNOM_DEGREE keyword is used to specify the polynomial degree that will be used to interpolate over discreet states stored in the output SPK file; this parameter is required for SPK Type 13 and its value must be an odd number. The IGNORE_FIRST_LINE keyword is used to skip the header (three lines) of the input file and the LINES_PER_RECORD keyword is used to specify that each record of the input file occupies two lines, which the program must know because the input data delimiter ' ' is one that can be used in a SPICE time string. To ensure the continuity of the interpolating polynomials over the time span covered by an SPK Type 13 segment the degree of the polynomial should be equivalent to 3 mod 4 (3, 7, 11, etc.) Setup file:
\begindata INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 13 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'B.V.Semenov, NAIF/JPL' DATA_ORDER = 'EPOCH X Y Z VX VY VZ' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 7 SEGMENT_ID = 'SPK_STATES_13' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, R,V ------- 1979 MAR 05 00:00:00 -178932.619 -28063.045 -17448.755 4.733702 -23.495860 -11.041956 1979 MAR 05 00:02:00 -178337.419 -30878.143 -18771.071 5.186043 -23.421245 -10.996084 1979 MAR 05 00:04:00 -177688.033 -33683.859 -20087.682 5.636786 -23.339517 -10.946873 ... Input Data Type STATES / Output SPK Type 15
The PCK file, e.g. 'Gravity.tpc', containing GM and J2 of the central body (Jupiter) is specified using the PCK_FILE keyword. Alternatively, Jupiter's GM and J2 can be specified using the CENTER_GM and CENTER_J2 keywords. The CENTER_POLE_RA and CENTER_POLE_DEC keywords contain Jupiter's pole RA and DEC with respect to the reference frame specified in the REF_FRAME_NAME keyword -- in this case B1950. If these keywords wouldn't be present in the setup file the program would compute these values from data present in the PCK file 'pck00005.tpc' provided using the keyword PCK_FILE. The START_TIME and STOP_TIME keywords specifying the file coverage interval, and the PRECESSION_TYPE keyword specifying the type of precession due to J2 are required for the output SPK Type 15. Also The IGNORE_FIRST_LINE keyword is used to skip the header (three lines) of the input file and the LINES_PER_RECORD keyword is used to specify that each record of the input file occupies two lines, which the program must know because the input data delimiter ' ' is one that can be used in a SPICE time string. Setup file:
\begindata INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 15 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH X Y Z VX VY VZ' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') START_TIME = '1979 MAR 05' STOP_TIME = '1979 MAR 06' DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = ('pck00005.tpc' 'Gravity.tpc' ) PRECESSION_TYPE = 'NO PRECESSION' CENTER_POLE_RA = 268.001 CENTER_POLE_DEC = 64.504 SEGMENT_ID = 'SPK_STATES_15' \begintextThough the input file in this example contains multiple records, only the first of them will used to create the output SPK file. Input data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, R,V ------- 1979 MAR 05 00:00:00 -178932.619 -28063.045 -17448.755 4.733702 -23.495860 -11.041956 1979 MAR 05 00:02:00 -178337.419 -30878.143 -18771.071 5.186043 -23.421245 -10.996084 1979 MAR 05 00:04:00 -177688.033 -33683.859 -20087.682 5.636786 -23.339517 -10.946873 ... Input Data Type STATES / Output SPK Type 17
The PCK file, e.g. 'Gravity.tpc', containing GM of the central body (Jupiter) is specified using the PCK_FILE keyword. Alternatively, Jupiter's GM can be specified using the CENTER_GM keyword. The GM value is required to convert states from the input file to a set of equinoctial elements stored in the output SPK file. The CENTER_POLE_RA and CENTER_POLE_DEC keywords contain Jupiter's pole RA and DEC with respect to the reference frame specified in the REF_FRAME_NAME keyword -- in this case B1950. If these keywords wouldn't be present in the setup file the program would compute these values from data present in the PCK file 'pck00005.tpc' provided using the PCK_FILE keyword. The START_TIME and STOP_TIME keywords specifying file coverage interval are required for the output SPK Type 17. The IGNORE_FIRST_LINE keyword is used to the header (three lines) of the input file and the LINES_PER_RECORD keyword is used to specify that each record of the input file occupies three lines, which the program must know because the input data delimiter ' ' is one that can be used in a SPICE time string. Setup file (In this example the value of DATA_ORDER is line-wrapped due to document formatting restrictions; it must be contained on a single line in an actual MKSPK setup file):
\begindata INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 17 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH X Y Z VX VY VZ DPER/DT DMPN/DT DNOD/DT' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') START_TIME = '1979 MAR 05' STOP_TIME = '1979 MAR 06' DATA_DELIMITER = ' ' LINES_PER_RECORD = 3 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = ('pck00005.tpc' 'Gravity.tpc') CENTER_POLE_RA = 268.001 CENTER_POLE_DEC = 64.504 SEGMENT_ID = 'SPK_STATES_17' \begintextSince only one state is needed to create an output SPK file of type 17, the input file in this example contains a just one record. Input data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, R,V, EQ_EL(7), EQ_EL(8), EQ_EL(9) ------------------------------------ 1979 MAR 05 00:00:00 -178932.619 -28063.045 -17448.755 4.733702 -23.495860 -11.041956 2.912548790268837E-05 8.363793086428307E-03 -2.898889191844143E-05 Input Data Type ELEMENTS / Output SPK Type 05
Setup file:
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 5 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH RP E INC NOD PER MEAN SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = 'Gravity.tpc' SEGMENT_ID = 'SPK_ELEMENTS_05' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, RP, ECC, INC, LNODE, ARGP, M0, T0 ------------------------------------- 1979 MAR 05 00:00:00 181803.245 0.001067 25.415 357.216 114.445 78.346 -657287949.8 1979 MAR 05 00:02:00 181814.040 0.001008 25.415 357.216 115.117 78.678 -657287829.8 1979 MAR 05 00:04:00 181824.846 0.000949 25.415 357.216 115.809 78.990 -657287709.8 ... Input Data Type ELEMENTS / Output SPK Type 08
Setup file:
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 8 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH RP E INC NOD PER MEAN SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 8 PCK_FILE = 'Gravity.tpc' SEGMENT_ID = 'SPK_ELEMENTS_08' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, RP, ECC, INC, LNODE, ARGP, M0, T0 ------------------------------------- 1979 MAR 05 00:00:00 181803.245 0.001067 25.415 357.216 114.445 78.346 -657287949.8 1979 MAR 05 00:02:00 181814.040 0.001008 25.415 357.216 115.117 78.678 -657287829.8 1979 MAR 05 00:04:00 181824.846 0.000949 25.415 357.216 115.809 78.990 -657287709.8 ... Input Data Type ELEMENTS / Output SPK Type 09
Setup file:
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 9 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH RP E INC NOD PER MEAN SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 8 PCK_FILE = 'Gravity.tpc' SEGMENT_ID = 'SPK_ELEMENTS_09' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, RP, ECC, INC, LNODE, ARGP, M0, T0 ------------------------------------- 1979 MAR 05 00:00:00 181803.245 0.001067 25.415 357.216 114.445 78.346 -657287949.8 1979 MAR 05 00:02:00 181814.040 0.001008 25.415 357.216 115.117 78.678 -657287829.8 1979 MAR 05 00:04:00 181824.846 0.000949 25.415 357.216 115.809 78.990 -657287709.8 ... Input Data Type ELEMENTS / Output SPK Type 12
Setup file:
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 12 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'B.V.Semenov, NAIF/JPL' DATA_ORDER = 'EPOCH RP E INC NOD PER MEAN SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 7 PCK_FILE = 'Gravity.tpc' SEGMENT_ID = 'SPK_ELEMENTS_12' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, RP, ECC, INC, LNODE, ARGP, M0, T0 ------------------------------------- 1979 MAR 05 00:00:00 181803.245 0.001067 25.415 357.216 114.445 78.346 -657287949.8 1979 MAR 05 00:02:00 181814.040 0.001008 25.415 357.216 115.117 78.678 -657287829.8 1979 MAR 05 00:04:00 181824.846 0.000949 25.415 357.216 115.809 78.990 -657287709.8 ... Input Data Type ELEMENTS / Output SPK Type 13
Setup file:
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 13 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH RP E INC NOD PER MEAN SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' POLYNOM_DEGREE = 7 PCK_FILE = 'Gravity.tpc' SEGMENT_ID = 'SPK_ELEMENTS_13' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, RP, ECC, INC, LNODE, ARGP, M0, T0 ------------------------------------- 1979 MAR 05 00:00:00 181803.245 0.001067 25.415 357.216 114.445 78.346 -657287949.8 1979 MAR 05 00:02:00 181814.040 0.001008 25.415 357.216 115.117 78.678 -657287829.8 1979 MAR 05 00:04:00 181824.846 0.000949 25.415 357.216 115.809 78.990 -657287709.8 ... Input Data Type ELEMENTS / Output SPK Type 15
Setup file:
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 15 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH RP E INC NOD PER MEAN SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') START_TIME = '1979 MAR 05' STOP_TIME = '1979 MAR 06' DATA_DELIMITER = ' ' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = ('pck00005.tpc' 'Gravity.tpc' ) PRECESSION_TYPE = 'NO PRECESSION' CENTER_POLE_RA = 268.001 CENTER_POLE_DEC = 64.504 SEGMENT_ID = 'SPK_ELEMENTS_15' \begintextThough the input file in this example contains multiple records, only the first of them will used to create the output SPK file. Input data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, RP, ECC, INC, LNODE, ARGP, M0, T0 ------------------------------------- 1979 MAR 05 00:00:00 181803.245 0.001067 25.415 357.216 114.445 78.346 -657287949.8 1979 MAR 05 00:02:00 181814.040 0.001008 25.415 357.216 115.117 78.678 -657287829.8 1979 MAR 05 00:04:00 181824.846 0.000949 25.415 357.216 115.809 78.990 -657287709.8 ... Input Data Type ELEMENTS / Output SPK Type 17
Setup file (In this example the value for DATA_ORDER is wrapped due to document formatting; it must be on a single line in the actual setup file):
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 17 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH RP E INC NOD PER MEAN SKIP DPER/DT DMPN/DT DNOD/DT' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') START_TIME = '1979 MAR 05' STOP_TIME = '1979 MAR 06' DATA_DELIMITER = ' ' LINES_PER_RECORD = 3 IGNORE_FIRST_LINE = 3 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = ('pck00005.tpc' 'Gravity.tpc' ) CENTER_POLE_RA = 268.001 CENTER_POLE_DEC = 64.504 SEGMENT_ID = 'SPK_ELEMENTS_17' \begintextInput data file:
Test: 505 relative to 599 in frame B1950. GM= 126686536.75178 JD, RP, ECC, INC, LNODE, ARGP, M0, T0, EQ_EL(7), EQ_EL(8), EQ_EL(9) ------------------------------------------------------------------ 1979 MAR 05 00:00:00 181803.245 0.001067 25.415 357.216 114.445 78.346 -657287949.8 2.912548790268837E-05 8.363793086428307E-03 -2.898889191844143E-05 Input Data Type EQ_ELEMENTS / Output SPK Type 17
Setup file (In this example the value of DATA_ORDER is wrapped due to document formatting; it must be on a single line in actual setup file):
\begindata INPUT_DATA_TYPE = 'EQ_ELEMENTS' OUTPUT_SPK_TYPE = 17 OBJECT_ID = 505 OBJECT_NAME = 'AMALTHEA' CENTER_ID = 599 CENTER_NAME = 'JUPITER' REF_FRAME_NAME = 'B1950' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'EPOCH EQ_A EQ_H EQ_K EQ_ML EQ_P EQ_Q DPER/DT DMPN/DT DNOD/DT' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') START_TIME = '1979 MAR 05' STOP_TIME = '1979 MAR 06' DATA_DELIMITER = ',' IGNORE_FIRST_LINE = 6 LINES_PER_RECORD = 10 LEAPSECONDS_FILE = 'naif0007.tls' TIME_WRAPPER = '# JD' CENTER_POLE_RA = 268.001 CENTER_POLE_DEC = 64.504 SEGMENT_ID = 'SPK_EQ_ELEMENTS_17' \begintextInput data file:
LABEL = 'Astrometric and Voyager data solution - JUP101', RCKEQX = 2.433282500000000E+06, RCKNAM(01) = 'AMALTH', RCKNUM(01) = 505, RCKCTR(01) = 'JUPITE', RCKTYP(01) = 'EQUIN ', 2443937.5, 1.813655610000000E+05, 1.713267736805066E-03, 2.975197760058551E-03, 1.920818611670669E+02, -2.939839894519083E-03, -7.170730998150093E-04, 2.912548790268837E-05, 8.363793086428307E-03, -2.898889191844143E-05, Input Data Type TL_ELEMENTS / Output SPK Type 10
Setup file:
\begindata INPUT_DATA_TYPE = 'TL_ELEMENTS' OUTPUT_SPK_TYPE = 10 TLE_INPUT_OBJ_ID = 20580 TLE_SPK_OBJ_ID = -48 CENTER_ID = 399 REF_FRAME_NAME = 'J2000' TLE_START_PAD = '2 days' TLE_STOP_PAD = '2 days' LEAPSECONDS_FILE = 'naif0010.tls' INPUT_DATA_FILE = 'hst.tle' OUTPUT_SPK_FILE = 'hst.bsp' PCK_FILE = 'geophysical.ker' SEGMENT_ID = 'HST TLE-based Trajectory' PRODUCER_ID = 'Boris Semenov, NAIF/JPL' \begintextInput data file (the first two characters on each line of the sample two-line elements record -- '1 ' for the lines '20580U ...' and '2 ' for the line '20580 ...' -- were taken out to fit the sample records into the page width):
HST 20580U 90037B 11314.94749233 .00003090 00000-0 21896-3 0 8850 20580 028.4690 137.5655 0003283 242.5328 117.5009 15.01775268981733 20580U 90037B 11315.94434408 .00003238 00000-0 23007-3 0 8867 20580 028.4688 131.0487 0003214 253.7100 106.3240 15.01782439981885 20580U 90037B 11317.87157937 .00003609 00000-0 25771-3 0 8873 20580 028.4683 118.4462 0003166 275.3438 084.7068 15.01797410982177 20580U 90037B 11320.79562259 .00003707 00000-0 26491-3 0 8885 20580 028.4689 099.3382 0003154 305.4602 054.5787 15.01818525982619 20580U 90037B 11321.79244620 .00003773 00000-0 26982-3 0 8894 20580 028.4692 092.8211 0003105 314.0907 045.9515 15.01826226982768 20580U 90037B 11322.78926485 .00003833 00000-0 27427-3 0 8904 20580 028.4692 086.3040 0003046 325.5674 034.4772 15.01833969982915 20580U 90037B 11324.71643569 .00003868 00000-0 27677-3 0 8914 20580 028.4696 073.7054 0003038 348.1091 011.9461 15.01848383983203 20580U 90037B 11326.31132196 .00003790 00000-0 27084-3 0 8928 20580 028.4700 063.2810 0003036 006.5468 353.5081 15.01859302983446 20580U 90037B 11328.63717918 .00003484 00000-0 24790-3 0 8938 20580 028.4709 048.0757 0003427 034.0326 326.0183 15.01873175983799 20580U 90037B 11330.29849794 .00003476 00000-0 24722-3 0 8948 20580 028.4707 037.2200 0003253 052.9678 307.1201 15.01883931984047 20580U 90037B 11331.29528001 .00003398 00000-0 24132-3 0 8953 20580 028.4706 030.7027 0003373 062.5805 297.5054 15.01889630984199 Skipping Input Data Record Tokens
Setup file:
\begindata INPUT_DATA_FILE = 'good_inputs/states:commas' OUTPUT_SPK_FILE = 'good_outputs/states_commas.bsp' INPUT_DATA_TYPE = 'STATES' OUTPUT_SPK_TYPE = 5 OBJECT_ID = -557 OBJECT_NAME = 'GRANAT' CENTER_ID = 399 CENTER_NAME = 'EARTH' REF_FRAME_NAME = 'J2000' PRODUCER_ID = 'B.V. Semenov' DATA_ORDER = 'X Y Z VX VY VZ SKIP SKIP EPOCH SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') DATA_DELIMITER = ',' LINES_PER_RECORD = 2 IGNORE_FIRST_LINE = 1 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = ('pck00005.tpc' 'Gravity.tpc') SEGMENT_ID = 'TEST' \begintextInput data file:
X,Y,Z,VX,VY,VZ,,,Epoch,, -79376.312,94802.228,152149.381,-.537457,.057167,.299857, ,,1990-01-01 00:00:00.000,, -111902.474,71404.027,136526.217,.031594,-.434385,-.559425, ,,1990-01-02 09:02:02.774,, -70048.213,14411.561,47294.006,1.324262,-.933652,-1.728348, ,,1990-01-03 09:23:15.101,, ... Two Epochs in the Input Data Records
Setup file (in this example the value of DATA_ORDER is wrapped due to document formatting; it must be on a single line in the actual setup file):
\begindata INPUT_DATA_TYPE = 'ELEMENTS' OUTPUT_SPK_TYPE = 5 OBJECT_ID = -557 OBJECT_NAME = 'GRANAT' CENTER_ID = 399 CENTER_NAME = 'EARTH' REF_FRAME_NAME = 'J2000' PRODUCER_ID = 'N.G.Khavenson, IKI RAS, Russia' DATA_ORDER = 'SKIP EPOCH E RP INC NOD PER EPOCHP SKIP SKIP SKIP SKIP SKIP SKIP' INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km') START_TIME = '1998 JAN 01' STOP_TIME = '1999 JAN 01' DATA_DELIMITER = ',' TIME_WRAPPER = '# TDB' EPOCH_STR_LENGTH = 30 IGNORE_FIRST_LINE = 1 LEAPSECONDS_FILE = 'naif0007.tls' PCK_FILE = ('pck00005.tpc' 'Gravity.tpc') SEGMENT_ID = 'TEST' \begintextInput data file:
JDTDB, T, e, q, i, LAN, APF, ToP, n, MA, TA, a, AD, PER 2450819.000000000, A.D. 1998-Jan-05 12:00:00.0000, 0.9998547684834859E+00, 0.3450736825384300E+08, 0.1249344272957001E+03, 0.1880167631634887E+03, 0.1301649235108716E+03,A.D. 1998-JUL-05 12:00:00.0000, 0.1802195911346396E-09, 0.9563896596356295E-02, 0.1601180118692756E+03, 0.2376024783190921E+12, 0.4751704492699304E+12, 0.1997563071436828E+13, |