edu.wisc.ssec.mcidasv.data.adde.sgp4
Class SGP4unit
java.lang.Object
edu.wisc.ssec.mcidasv.data.adde.sgp4.SGP4unit
public class SGP4unit
- extends Object
- Author:
- Shawn E. Gano, shawn@gano.name
Field Summary |
static double |
pi
|
Method Summary |
private static double[] |
dpper(double e3,
double ee2,
double peo,
double pgho,
double pho,
double pinco,
double plo,
double se2,
double se3,
double sgh2,
double sgh3,
double sgh4,
double sh2,
double sh3,
double si2,
double si3,
double sl2,
double sl3,
double sl4,
double t,
double xgh2,
double xgh3,
double xgh4,
double xh2,
double xh3,
double xi2,
double xi3,
double xl2,
double xl3,
double xl4,
double zmol,
double zmos,
double inclo,
char init,
double ep,
double inclp,
double nodep,
double argpp,
double mp,
char opsmode)
-----------------------------------------------------------------------------
Java version outputs double array: [ep,inclp,nodep,argpp,mp]
-------------------------------------------------------------------------------
procedure dpper
this procedure provides deep space long period periodic contributions
to the mean elements. |
private static double[] |
dscom(double epoch,
double ep,
double argpp,
double tc,
double inclp,
double nodep,
double np,
SGP4SatData satrec)
|
private static double[] |
dsinit(SGP4unit.Gravconsttype whichconst,
double cosim,
double emsq,
double argpo,
double s1,
double s2,
double s3,
double s4,
double s5,
double sinim,
double ss1,
double ss2,
double ss3,
double ss4,
double ss5,
double sz1,
double sz3,
double sz11,
double sz13,
double sz21,
double sz23,
double sz31,
double sz33,
double t,
double tc,
double gsto,
double mo,
double mdot,
double no,
double nodeo,
double nodedot,
double xpidot,
double z1,
double z3,
double z11,
double z13,
double z21,
double z23,
double z31,
double z33,
double ecco,
double eccsq,
SGP4SatData satrec,
double em,
double argpm,
double inclm,
double mm,
double nm,
double nodem)
|
private static double[] |
dspace(int irez,
double d2201,
double d2211,
double d3210,
double d3222,
double d4410,
double d4422,
double d5220,
double d5232,
double d5421,
double d5433,
double dedt,
double del1,
double del2,
double del3,
double didt,
double dmdt,
double dnodt,
double domdt,
double argpo,
double argpdot,
double t,
double tc,
double gsto,
double xfact,
double xlamo,
double no,
double em,
double argpm,
double inclm,
double mm,
double nodem,
SGP4SatData satrec,
double nm)
|
static double[] |
getgravconst(SGP4unit.Gravconsttype whichconst)
|
static double |
gstime(double jdut1)
-----------------------------------------------------------------------------
function gstime
this function finds the greenwich sidereal time. |
static double[] |
initl(int satn,
SGP4unit.Gravconsttype whichconst,
double ecco,
double epoch,
double inclo,
SGP4SatData satrec)
-----------------------------------------------------------------------------
procedure initl
this procedure initializes the spg4 propagator. all the initialization is
consolidated here instead of having multiple loops inside other routines. |
static boolean |
sgp4(SGP4SatData satrec,
double tsince,
double[] r,
double[] v)
|
static boolean |
sgp4init(SGP4unit.Gravconsttype whichconst,
char opsmode,
int satn,
double epoch,
double xbstar,
double xecco,
double xargpo,
double xinclo,
double xmo,
double xno,
double xnodeo,
SGP4SatData satrec)
-----------------------------------------------------------------------------
This method is called from within SGP4utils.readTLEandIniSGP4 and therefore not
typically called elsewhere.
-----------------------------------------------------------------------------
procedure sgp4init
this procedure initializes variables for sgp4. |
static boolean |
sgp4Prop2JD(SGP4SatData satrec,
double jd,
double[] r,
double[] v)
Similar to sgp4(..) but time parameter is the Julian Date to the propagated to. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
pi
public static double pi
SGP4unit
public SGP4unit()
dpper
private static double[] dpper(double e3,
double ee2,
double peo,
double pgho,
double pho,
double pinco,
double plo,
double se2,
double se3,
double sgh2,
double sgh3,
double sgh4,
double sh2,
double sh3,
double si2,
double si3,
double sl2,
double sl3,
double sl4,
double t,
double xgh2,
double xgh3,
double xgh4,
double xh2,
double xh3,
double xi2,
double xi3,
double xl2,
double xl3,
double xl4,
double zmol,
double zmos,
double inclo,
char init,
double ep,
double inclp,
double nodep,
double argpp,
double mp,
char opsmode)
- -----------------------------------------------------------------------------
Java version outputs double array: [ep,inclp,nodep,argpp,mp]
-------------------------------------------------------------------------------
procedure dpper
this procedure provides deep space long period periodic contributions
to the mean elements. by design, these periodics are zero at epoch.
this used to be dscom which included initialization, but it's really a
recurring function.
author : david vallado 719-573-2600 28 jun 2005
inputs :
e3 -
ee2 -
peo -
pgho -
pho -
pinco -
plo -
se2 , se3 , sgh2, sgh3, sgh4, sh2, sh3, si2, si3, sl2, sl3, sl4 -
t -
xh2, xh3, xi2, xi3, xl2, xl3, xl4 -
zmol -
zmos -
ep - eccentricity 0.0 - 1.0
inclo - inclination - needed for lyddane modification
nodep - right ascension of ascending node
argpp - argument of perigee
mp - mean anomaly
outputs :
ep - eccentricity 0.0 - 1.0
inclp - inclination
nodep - right ascension of ascending node
argpp - argument of perigee
mp - mean anomaly
locals :
alfdp -
betdp -
cosip , sinip , cosop , sinop ,
dalf -
dbet -
dls -
f2, f3 -
pe -
pgh -
ph -
pinc -
pl -
sel , ses , sghl , sghs , shl , shs , sil , sinzf , sis ,
sll , sls
xls -
xnoh -
zf -
zm -
coupling :
none.
references :
hoots, roehrich, norad spacetrack report #3 1980
hoots, norad spacetrack report #6 1986
hoots, schumacher and glover 2004
vallado, crawford, hujsak, kelso 2006
----------------------------------------------------------------------------
dscom
private static double[] dscom(double epoch,
double ep,
double argpp,
double tc,
double inclp,
double nodep,
double np,
SGP4SatData satrec)
dsinit
private static double[] dsinit(SGP4unit.Gravconsttype whichconst,
double cosim,
double emsq,
double argpo,
double s1,
double s2,
double s3,
double s4,
double s5,
double sinim,
double ss1,
double ss2,
double ss3,
double ss4,
double ss5,
double sz1,
double sz3,
double sz11,
double sz13,
double sz21,
double sz23,
double sz31,
double sz33,
double t,
double tc,
double gsto,
double mo,
double mdot,
double no,
double nodeo,
double nodedot,
double xpidot,
double z1,
double z3,
double z11,
double z13,
double z21,
double z23,
double z31,
double z33,
double ecco,
double eccsq,
SGP4SatData satrec,
double em,
double argpm,
double inclm,
double mm,
double nm,
double nodem)
dspace
private static double[] dspace(int irez,
double d2201,
double d2211,
double d3210,
double d3222,
double d4410,
double d4422,
double d5220,
double d5232,
double d5421,
double d5433,
double dedt,
double del1,
double del2,
double del3,
double didt,
double dmdt,
double dnodt,
double domdt,
double argpo,
double argpdot,
double t,
double tc,
double gsto,
double xfact,
double xlamo,
double no,
double em,
double argpm,
double inclm,
double mm,
double nodem,
SGP4SatData satrec,
double nm)
initl
public static double[] initl(int satn,
SGP4unit.Gravconsttype whichconst,
double ecco,
double epoch,
double inclo,
SGP4SatData satrec)
- -----------------------------------------------------------------------------
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
vallado, crawford, hujsak, kelso 2006
----------------------------------------------------------------------------
- Parameters:
satn
- satellite numberwhichconst
- which constants set to useecco
- eccentricity (0,1)epoch
- epoch time in days from jan 0, 1950. 0 hrinclo
- inclination of satellitesatrec
- satellite object that stores needed SGP4 data
- Returns:
- double array with these values: [ainv, ao, con42, cosio, cosio2, eccsq, omeosq, posq, rp, rteosq, sinio]
sgp4init
public static boolean sgp4init(SGP4unit.Gravconsttype whichconst,
char opsmode,
int satn,
double epoch,
double xbstar,
double xecco,
double xargpo,
double xinclo,
double xmo,
double xno,
double xnodeo,
SGP4SatData satrec)
- -----------------------------------------------------------------------------
This method is called from within SGP4utils.readTLEandIniSGP4 and therefore not
typically called elsewhere.
-----------------------------------------------------------------------------
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
vallado, crawford, hujsak, kelso 2006
----------------------------------------------------------------------------
- Parameters:
whichconst
- opsmode
- satn
- epoch
- xbstar
- xecco
- xargpo
- xinclo
- xmo
- xno
- xnodeo
- satrec
-
- Returns:
- if initialization was successful
sgp4Prop2JD
public static boolean sgp4Prop2JD(SGP4SatData satrec,
double jd,
double[] r,
double[] v)
- Similar to sgp4(..) but time parameter is the Julian Date to the propagated to.
This method was not orgiinally in the CSSI C++ version.
- Parameters:
satrec
- satellite SGP4 data objectjd
- Julian Dater
- position vector [km] return array (needs to be of size 3)v
- velocity [km/sec] return array (needs to be of size 3)
- Returns:
sgp4
public static boolean sgp4(SGP4SatData satrec,
double tsince,
double[] r,
double[] v)
gstime
public static double gstime(double jdut1)
- -----------------------------------------------------------------------------
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 :
vallado 2004, 191, eq 3-45
---------------------------------------------------------------------------
- Parameters:
jdut1
-
- Returns:
getgravconst
public static double[] getgravconst(SGP4unit.Gravconsttype whichconst)