ev2lin |
Table of contents
ProcedureEV2LIN ( Evaluate "two-line" element data, near-earth ) SUBROUTINE EV2LIN ( ET, GEOPHS, ELEMS, STATE ) AbstractDeprecated: This routine has been superseded by the SPICELIB routine EVSGP4. *ALL* TLE evaluations should use that routine. NAIF supports EV2LIN only for backward compatibility. Evaluate NORAD two-line element data for near-earth, earth orbiting spacecraft (that is spacecraft with orbital periods less-than 225 minutes). This evaluator uses algorithms as described in Hoots 1980 [1]. Required_ReadingNone. KeywordsEPHEMERIS DeclarationsIMPLICIT NONE DOUBLE PRECISION ET DOUBLE PRECISION GEOPHS ( * ) DOUBLE PRECISION ELEMS ( * ) DOUBLE PRECISION STATE ( * ) INTEGER NMODL PARAMETER ( NMODL = 6 ) Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- ET I Epoch in seconds past ephemeris epoch J2000. GEOPHS I Geophysical constants ELEMS I Two-line element data STATE O Evaluated state NMODL P Parameter controlling number of buffered elements. Detailed_InputET is the epoch in TDB seconds past ephemeris epoch J2000 at which a state should be produced from the input elements. GEOPHS is a collection of 8 geophysical constants needed for computing a state. The order of these constants must be: GEOPHS(1) = J2 gravitational harmonic for Earth. GEOPHS(2) = J3 gravitational harmonic for Earth. GEOPHS(3) = J4 gravitational harmonic for Earth. These first three constants are dimensionless. GEOPHS(4) = KE: Square root of the GM for Earth where GM is expressed in Earth radii cubed per minutes squared. GEOPHS(5) = QO: High altitude bound for atmospheric model in km. GEOPHS(6) = SO: Low altitude bound for atmospheric model in km. GEOPHS(7) = RE: Equatorial radius of the earth in km. GEOPHS(8) = AE: Distance units/earth radius (normally 1) Below are currently recommended values for these items: J2 = 1.082616D-3 J3 = -2.53881D-6 J4 = -1.65597D-6 The next item is the square root of GM for the Earth given in units of earth-radii**1.5/Minute KE = 7.43669161D-2 The next two items define the top and bottom of the atmospheric drag model used by the type 10 ephemeris type. Don't adjust these unless you understand the full implications of such changes. QO = 120.0D0 SO = 78.0D0 The ER value is the equatorial radius in km of the Earth as used by NORAD. ER = 6378.135D0 The value of AE is the number of distance units per Earth radii used by the NORAD state propagation software. The value should be 1 unless you've got a very good understanding of the NORAD routine SGP4 and the affect of changing this value. AE = 1.0D0 ELEMS is an array containing two-line element data as prescribed below. The elements NDD6O and BSTAR must already be scaled by the proper exponent stored in the two line elements set. Moreover, the various items must be converted to the units shown here. ELEMS ( 1 ) = NDT20 in radians/minute**2 ELEMS ( 2 ) = NDD60 in radians/minute**3 ELEMS ( 3 ) = BSTAR ELEMS ( 4 ) = INCL in radians ELEMS ( 5 ) = NODE0 in radians ELEMS ( 6 ) = ECC ELEMS ( 7 ) = OMEGA in radians ELEMS ( 8 ) = M0 in radians ELEMS ( 9 ) = N0 in radians/minute ELEMS ( 10 ) = EPOCH of the elements in seconds past ephemeris epoch J2000. Detailed_OutputSTATE is the state produced by evaluating the input elements at the input epoch ET. Units are km and km/sec relative to the TEME reference frame. ParametersNMODL is a parameter that controls how many element sets can be buffered internally. Since there are a lot of computations that are independent of time these are buffered and only computed if an unbuffered model is supplied. This value should always be at least 2. Increasing it a great deal is not advised since the time needed to search the buffered elements for a match increases linearly with the NMODL. Empirically, 6 seems to be a good break even value for NMODL. Exceptions1) No checks are made on the reasonableness of the inputs. 2) If the number of iterations for the calculation exceeds the limit for this value, the error SPICE(ITERATIONEXCEEDED) is signaled. This error should signal only for bad (nonphysical) TLEs. FilesNone. ParticularsThis routine evaluates NORAD two-line element sets for near-earth orbiting satellites using the algorithms described in Hoots 1980 [1]. This code is an adaptation of the NORAD routine SGP4 to eliminate common blocks, allow buffering of models and intermediate parameters and double precision calculations. Near earth is as an orbital period of less than 225 minutes. ExamplesThe numerical results shown for this example may differ across platforms. The results depend on the SPICE kernels used as input, the compiler and supporting libraries, and the machine specific arithmetic implementation. 1) Suppose you have a set of two-line elements for the LUME 1 cubesat. This example shows how you can use this routine together with the routine GETELM to propagate a state to an epoch of interest. Use the meta-kernel shown below to load the required SPICE kernels. KPL/MK File name: ev2lin_ex1.tm This meta-kernel is intended to support operation of SPICE example programs. The kernels shown here should not be assumed to contain adequate or correct versions of data required by SPICE-based user applications. In order for an application to use this meta-kernel, the kernels referenced here must be present in the user's current working directory. The names and contents of the kernels referenced by this meta-kernel are as follows: File name Contents --------- ------------------------------------ naif0012.tls Leapseconds geophysical.ker geophysical constants for evaluation of two-line element sets. \begindata KERNELS_TO_LOAD = ( 'naif0012.tls', 'geophysical.ker' ) \begintext End of meta-kernel Example code begins here. PROGRAM EV2LIN_EX1 IMPLICIT NONE C C Local parameters. C CHARACTER*(*) TIMSTR PARAMETER ( TIMSTR = '2020-05-26 02:25:00' ) INTEGER PNAMLN PARAMETER ( PNAMLN = 2 ) INTEGER TLELLN PARAMETER ( TLELLN = 69 ) C C The LUME-1 cubesat is an Earth orbiting object; set C the center ID to the Earth ID. C INTEGER CENTER PARAMETER ( CENTER = 399 ) C C Local variables. C CHARACTER*(PNAMLN) NOADPN ( 8 ) CHARACTER*(TLELLN) TLE ( 2 ) DOUBLE PRECISION ELEMS ( 10 ) DOUBLE PRECISION EPOCH DOUBLE PRECISION ET DOUBLE PRECISION GEOPHS ( 8 ) DOUBLE PRECISION STATE ( 6 ) INTEGER I INTEGER N C C These are the variables that will hold the constants C required by EV2LIN. These constants are available from C the loaded PCK file, which provides the actual values C and units as used by NORAD propagation model. C C Constant Meaning C -------- ------------------------------------------ C J2 J2 gravitational harmonic for Earth. C J3 J3 gravitational harmonic for Earth. C J4 J4 gravitational harmonic for Earth. C KE Square root of the GM for Earth. C QO High altitude bound for atmospheric model. C SO Low altitude bound for atmospheric model. C ER Equatorial radius of the Earth. C AE Distance units/earth radius. C DATA NOADPN / 'J2', 'J3', 'J4', 'KE', . 'QO', 'SO', 'ER', 'AE' / C C Define the Two-Line Element set for LUME-1. C TLE(1) = '1 43908U 18111AJ 20146.60805006 .00000806' . // ' 00000-0 34965-4 0 9999' TLE(2) = '2 43908 97.2676 47.2136 0020001 220.6050 ' . // '139.3698 15.24999521 78544' C C Load the PCK file that provides the geophysical C constants required for the evaluation of the two-line C elements sets. Load also an LSK, as it is required by C GETELM to perform time conversions. Use a meta-kernel for C convenience. C CALL FURNSH ( 'ev2lin_ex1.tm' ) C C Retrieve the data from the kernel, and place it on C the GEOPHS array. C DO I = 1, 8 CALL BODVCD ( CENTER, NOADPN(I), 1, N, GEOPHS(I) ) END DO C C Convert the Two Line Elements lines to the element sets. C Set the lower bound for the years to be the beginning C of the space age. C CALL GETELM ( 1957, TLE, EPOCH, ELEMS ) C C Now propagate the state using EV2LIN to the epoch of C interest. C CALL STR2ET ( TIMSTR, ET ) CALL EV2LIN ( ET, GEOPHS, ELEMS, STATE ) C C Display the results. C WRITE(*,'(2A)') 'Epoch : ', TIMSTR WRITE(*,'(A,3F16.8)') 'Position:', (STATE(I), I=1,3) WRITE(*,'(A,3F16.8)') 'Velocity:', (STATE(I), I=4,6) END When this program was executed on a Mac/Intel/gfortran/64-bit platform, the output was: Epoch : 2020-05-26 02:25:00 Position: -4644.60403398 -5038.95025540 -337.27141117 Velocity: -0.45719025 0.92884817 -7.55917355 RestrictionsNone. Literature_References[1] F. Hoots and R. Roehrich, "Spacetrack Report #3: Models for Propagation of the NORAD Element Sets," U.S. Air Force Aerospace Defense Command, Colorado Springs, CO, 1980. [2] F. Hoots, "Spacetrack Report #6: Models for Propagation of Space Command Element Sets," U.S. Air Force Aerospace Defense Command, Colorado Springs, CO, 1986. [3] F. Hoots, P. Schumacher and R. Glover, "History of Analytical Orbit Modeling in the U. S. Space Surveillance System," Journal of Guidance, Control, and Dynamics. 27(2):174-185, 2004. [4] D. Vallado, P. Crawford, R. Hujsak and T. Kelso, "Revisiting Spacetrack Report #3," paper AIAA 2006-6753 presented at the AIAA/AAS Astrodynamics Specialist Conference, Keystone, CO., August 21-24, 2006. Author_and_InstitutionJ. Diaz del Rio (ODC Space) W.L. Taber (JPL) E.D. Wright (JPL) VersionSPICELIB Version 1.1.1, 01-NOV-2021 (JDR) (EDW) Declared routine as deprecated. Corrected the description of QO and SO constants in the detailed description of the input argument GEOPHS and the input element names in ELEMS. Added Spacetrack Report #3 to literature references. Edited the header to comply with NAIF standard. Added complete code example based on existing fragments. SPICELIB Version 1.1.0, 15-SEP-2014 (EDW) Added error check to prevent infinite loop in calculation of EST. SPICELIB Version 1.0.3, 02-JAN-2008 (EDW) Corrected error in the calculation of the C4 term identified by Curtis Haase. Minor edit to the COEF1 declaration strictly identifying the constant as a double. From: COEF1 = COEF / PSISQ**3.5 To: COEF1 = COEF / PSISQ**3.5D0 SPICELIB Version 1.0.2, 08-JUL-2004 (EDW) Corrected error in the calculation of the C2 term. Reordered C1, C2 calculations to avoid division by BSTAR. SPICELIB Version 1.0.1, 10-MAR-1998 (EDW) Corrected error in header describing the GEOPHS array. SPICELIB Version 1.0.0, 14-JAN-1994 (WLT) |
Fri Dec 31 18:36:21 2021