Gravity Engine 2 5.1
|
Public Types | |
enum | Gravconsttype { wgs72old , wgs72 , wgs84 } |
Static Public Member Functions | |
static double | BrowerMeanToTLEMean (SGP4SatData satrec, double aE_km, double incl, double ecc) |
static double[] | getgravconst (Gravconsttype whichconst) |
static double | gstime (double jdut1) |
static double[] | initl (int satn, Gravconsttype whichconst, double ecco, double epoch, double inclo, SGP4SatData satrec) |
static string | Sgp4Error (int err) |
static bool | sgp4init (Gravconsttype whichconst, char opsmode, int satn, double epoch, double xbstar, double xecco, double xargpo, double xinclo, double xmo, double xno, double xnodeo, ref SGP4SatData satrec) |
static int double3 double3 Orbital.COEStruct coe | SGP4Prop (ref NativeArray< SGP4Propagator.PropInfo > propInfo, int index, double tsince) |
static int double3 double3 Orbital.COEStruct coe | SGP4Prop (ref SGP4SatData satrec, double tsince) |
Static Public Attributes | |
static int | error |
A (ick) copy to allow pass by reference and avoid struct copying in the job system. | |
static double | pi = 3.14159265358979323846 |
static int double3 | r |
static int double3 double3 | v |
Vallado/CSSI SGP4 propogator Converted to Java from C++ by: Shawn E. Gano, 19 June 2009 The goal of this conversion was to stick as closely to the orginal code as possible and not trying to convert it to OO design. This code has been compared using the verification TLEs and "SGP4verification.java" and the results were virtually identical to the c++ version.
sgp4unit.cpp
this file contains the sgp4 procedures for analytical propagation of a satellite. the code was originally released in the 1980 and 1986 spacetrack papers. a detailed discussion of the theory and history may be found in the 2006 aiaa paper by vallado, crawford, hujsak, and kelso.
companion code for fundamentals of astrodynamics and applications 2007 by david vallado
(w) 719-573-2600, email dvall.nosp@m.ado@.nosp@m.agi.c.nosp@m.om
current : 3 Nov 08 david vallado put returns in for error codes changes : 29 sep 08 david vallado fix atime for faster operation in dspace add operationmode for afspc (a) or improved (i) performance mode 16 jun 08 david vallado update small eccentricity check 16 nov 07 david vallado misc fixes for better compliance 20 apr 07 david vallado misc fixes for constants 11 aug 06 david vallado chg lyddane choice back to strn3, constants, misc doc 15 dec 05 david vallado misc fixes 26 jul 05 david vallado fixes for paper note that each fix is preceded by a comment with "sgp4fix" and an explanation of what was changed 10 aug 04 david vallado 2nd printing baseline working 14 may 01 david vallado 2nd edition baseline 80 norad
19 June 2009 converted to Java by:
|
static |
function gstime
this function finds the greenwich sidereal time.
author : david vallado 719-573-2600 1 mar 2001
inputs description range / units jdut1 - julian date in ut1 days from 4713 bc
outputs : gstime - greenwich sidereal time 0 to 2pi rad
locals : temp - temporary variable for doubles rad tut1 - julian centuries from the jan 1, 2000 12 h epoch (ut1)
coupling : none
references :
jdut1 |
|
static |
procedure initl
this procedure initializes the spg4 propagator. all the initialization is consolidated here instead of having multiple loops inside other routines.
author : david vallado 719-573-2600 28 jun 2005
inputs : ecco - eccentricity 0.0 - 1.0 epoch - epoch time in days from jan 0, 1950. 0 hr inclo - inclination of satellite no - mean motion of satellite satn - satellite number
outputs : ainv - 1.0 / a ao - semi major axis con41 - con42 - 1.0 - 5.0 cos(i) cosio - cosine of inclination cosio2 - cosio squared eccsq - eccentricity squared method - flag for deep space 'd', 'n' omeosq - 1.0 - ecco * ecco posq - semi-parameter squared rp - radius of perigee rteosq - square root of (1.0 - ecco*ecco) sinio - sine of inclination gsto - gst at time of observation rad no - mean motion of satellite
locals : ak - d1 - del - adel - po -
coupling : getgravconst gstime - find greenwich sidereal time from the julian date
references : hoots, roehrich, norad spacetrack report #3 1980 hoots, norad spacetrack report #6 1986 hoots, schumacher and glover 2004
satn | satellite number |
whichconst | which constants set to use |
ecco | eccentricity (0,1) |
epoch | epoch time in days from jan 0, 1950. 0 hr |
inclo | inclination of satellite |
satrec | satellite object that stores needed SGP4 data |
|
static |
This method is called from within SGP4utils.readTLEandIniSGP4 and therefore not
procedure sgp4init
this procedure initializes variables for sgp4.
author : david vallado 719-573-2600 28 jun 2005
inputs : opsmode - mode of operation afspc or improved 'a', 'i' whichconst - which set of constants to use 72, 84 satn - satellite number bstar - sgp4 type drag coefficient kg/m2er ecco - eccentricity epoch - epoch time in days from jan 0, 1950. 0 hr argpo - argument of perigee (output if ds) inclo - inclination mo - mean anomaly (output if ds) no - mean motion nodeo - right ascension of ascending node
outputs : satrec - common values for subsequent calls return code - non-zero on error. 1 - mean elements, ecc >= 1.0 or ecc < -0.001 or a < 0.95 er 2 - mean motion less than 0.0 3 - pert elements, ecc < 0.0 or ecc > 1.0 4 - semi-latus rectum < 0.0 5 - epoch elements are sub-orbital 6 - satellite has decayed
locals : cnodm , snodm , cosim , sinim , cosomm , sinomm cc1sq , cc2 , cc3 coef , coef1 cosio4 - day - dndt - em - eccentricity emsq - eccentricity squared eeta - etasq - gam - argpm - argument of perigee nodem - inclm - inclination mm - mean anomaly nm - mean motion perige - perigee pinvsq - psisq - qzms24 - rtemsq - s1, s2, s3, s4, s5, s6, s7 - sfour - ss1, ss2, ss3, ss4, ss5, ss6, ss7 - sz1, sz2, sz3 sz11, sz12, sz13, sz21, sz22, sz23, sz31, sz32, sz33 - tc - temp - temp1, temp2, temp3 - tsi - xpidot - xhdot1 - z1, z2, z3 - z11, z12, z13, z21, z22, z23, z31, z32, z33 -
coupling : getgravconst- initl - dscom - dpper - dsinit - sgp4 -
references : hoots, roehrich, norad spacetrack report #3 1980 hoots, norad spacetrack report #6 1986 hoots, schumacher and glover 2004
whichconst | |
opsmode | |
satn | |
epoch | |
xbstar | |
xecco | |
xargpo | |
xinclo | |
xmo | |
xno | |
xnodeo | |
satrec |
|
static |
A (ick) copy to allow pass by reference and avoid struct copying in the job system.
This is the code path called from within the GEPhysicsJob.
I suspect there is much in here that could be improved but I am avoiding the rabbit hole since this is external code.
propInfo | |
index | |
tsince |