tle2文件转czml文件
This commit is contained in:
395
node_modules/satellite.js/lib/propagation/dscom.js
generated
vendored
Normal file
395
node_modules/satellite.js/lib/propagation/dscom.js
generated
vendored
Normal file
@@ -0,0 +1,395 @@
|
||||
/*!
|
||||
* satellite-js v5.0.0
|
||||
* (c) 2013 Shashwat Kandadai and UCSC
|
||||
* https://github.com/shashwatak/satellite-js
|
||||
* License: MIT
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports["default"] = dscom;
|
||||
var _constants = require("../constants");
|
||||
/*-----------------------------------------------------------------------------
|
||||
*
|
||||
* procedure dscom
|
||||
*
|
||||
* this procedure provides deep space common items used by both the secular
|
||||
* and periodics subroutines. input is provided as shown. this routine
|
||||
* used to be called dpper, but the functions inside weren't well organized.
|
||||
*
|
||||
* author : david vallado 719-573-2600 28 jun 2005
|
||||
*
|
||||
* inputs :
|
||||
* epoch -
|
||||
* ep - eccentricity
|
||||
* argpp - argument of perigee
|
||||
* tc -
|
||||
* inclp - inclination
|
||||
* nodep - right ascension of ascending node
|
||||
* np - mean motion
|
||||
*
|
||||
* outputs :
|
||||
* sinim , cosim , sinomm , cosomm , snodm , cnodm
|
||||
* day -
|
||||
* e3 -
|
||||
* ee2 -
|
||||
* em - eccentricity
|
||||
* emsq - eccentricity squared
|
||||
* gam -
|
||||
* peo -
|
||||
* pgho -
|
||||
* pho -
|
||||
* pinco -
|
||||
* plo -
|
||||
* rtemsq -
|
||||
* se2, se3 -
|
||||
* sgh2, sgh3, sgh4 -
|
||||
* sh2, sh3, si2, si3, sl2, sl3, sl4 -
|
||||
* s1, s2, s3, s4, s5, s6, s7 -
|
||||
* ss1, ss2, ss3, ss4, ss5, ss6, ss7, sz1, sz2, sz3 -
|
||||
* sz11, sz12, sz13, sz21, sz22, sz23, sz31, sz32, sz33 -
|
||||
* xgh2, xgh3, xgh4, xh2, xh3, xi2, xi3, xl2, xl3, xl4 -
|
||||
* nm - mean motion
|
||||
* z1, z2, z3, z11, z12, z13, z21, z22, z23, z31, z32, z33 -
|
||||
* zmol -
|
||||
* zmos -
|
||||
*
|
||||
* locals :
|
||||
* a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 -
|
||||
* betasq -
|
||||
* cc -
|
||||
* ctem, stem -
|
||||
* x1, x2, x3, x4, x5, x6, x7, x8 -
|
||||
* xnodce -
|
||||
* xnoi -
|
||||
* zcosg , zsing , zcosgl , zsingl , zcosh , zsinh , zcoshl , zsinhl ,
|
||||
* zcosi , zsini , zcosil , zsinil ,
|
||||
* zx -
|
||||
* zy -
|
||||
*
|
||||
* 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
|
||||
----------------------------------------------------------------------------*/
|
||||
function dscom(options) {
|
||||
var epoch = options.epoch,
|
||||
ep = options.ep,
|
||||
argpp = options.argpp,
|
||||
tc = options.tc,
|
||||
inclp = options.inclp,
|
||||
nodep = options.nodep,
|
||||
np = options.np;
|
||||
var a1;
|
||||
var a2;
|
||||
var a3;
|
||||
var a4;
|
||||
var a5;
|
||||
var a6;
|
||||
var a7;
|
||||
var a8;
|
||||
var a9;
|
||||
var a10;
|
||||
var cc;
|
||||
var x1;
|
||||
var x2;
|
||||
var x3;
|
||||
var x4;
|
||||
var x5;
|
||||
var x6;
|
||||
var x7;
|
||||
var x8;
|
||||
var zcosg;
|
||||
var zsing;
|
||||
var zcosh;
|
||||
var zsinh;
|
||||
var zcosi;
|
||||
var zsini;
|
||||
var ss1;
|
||||
var ss2;
|
||||
var ss3;
|
||||
var ss4;
|
||||
var ss5;
|
||||
var ss6;
|
||||
var ss7;
|
||||
var sz1;
|
||||
var sz2;
|
||||
var sz3;
|
||||
var sz11;
|
||||
var sz12;
|
||||
var sz13;
|
||||
var sz21;
|
||||
var sz22;
|
||||
var sz23;
|
||||
var sz31;
|
||||
var sz32;
|
||||
var sz33;
|
||||
var s1;
|
||||
var s2;
|
||||
var s3;
|
||||
var s4;
|
||||
var s5;
|
||||
var s6;
|
||||
var s7;
|
||||
var z1;
|
||||
var z2;
|
||||
var z3;
|
||||
var z11;
|
||||
var z12;
|
||||
var z13;
|
||||
var z21;
|
||||
var z22;
|
||||
var z23;
|
||||
var z31;
|
||||
var z32;
|
||||
var z33;
|
||||
|
||||
// -------------------------- constants -------------------------
|
||||
var zes = 0.01675;
|
||||
var zel = 0.05490;
|
||||
var c1ss = 2.9864797e-6;
|
||||
var c1l = 4.7968065e-7;
|
||||
var zsinis = 0.39785416;
|
||||
var zcosis = 0.91744867;
|
||||
var zcosgs = 0.1945905;
|
||||
var zsings = -0.98088458;
|
||||
|
||||
// --------------------- local variables ------------------------
|
||||
var nm = np;
|
||||
var em = ep;
|
||||
var snodm = Math.sin(nodep);
|
||||
var cnodm = Math.cos(nodep);
|
||||
var sinomm = Math.sin(argpp);
|
||||
var cosomm = Math.cos(argpp);
|
||||
var sinim = Math.sin(inclp);
|
||||
var cosim = Math.cos(inclp);
|
||||
var emsq = em * em;
|
||||
var betasq = 1.0 - emsq;
|
||||
var rtemsq = Math.sqrt(betasq);
|
||||
|
||||
// ----------------- initialize lunar solar terms ---------------
|
||||
var peo = 0.0;
|
||||
var pinco = 0.0;
|
||||
var plo = 0.0;
|
||||
var pgho = 0.0;
|
||||
var pho = 0.0;
|
||||
var day = epoch + 18261.5 + tc / 1440.0;
|
||||
var xnodce = (4.5236020 - 9.2422029e-4 * day) % _constants.twoPi;
|
||||
var stem = Math.sin(xnodce);
|
||||
var ctem = Math.cos(xnodce);
|
||||
var zcosil = 0.91375164 - 0.03568096 * ctem;
|
||||
var zsinil = Math.sqrt(1.0 - zcosil * zcosil);
|
||||
var zsinhl = 0.089683511 * stem / zsinil;
|
||||
var zcoshl = Math.sqrt(1.0 - zsinhl * zsinhl);
|
||||
var gam = 5.8351514 + 0.0019443680 * day;
|
||||
var zx = 0.39785416 * stem / zsinil;
|
||||
var zy = zcoshl * ctem + 0.91744867 * zsinhl * stem;
|
||||
zx = Math.atan2(zx, zy);
|
||||
zx += gam - xnodce;
|
||||
var zcosgl = Math.cos(zx);
|
||||
var zsingl = Math.sin(zx);
|
||||
|
||||
// ------------------------- do solar terms ---------------------
|
||||
zcosg = zcosgs;
|
||||
zsing = zsings;
|
||||
zcosi = zcosis;
|
||||
zsini = zsinis;
|
||||
zcosh = cnodm;
|
||||
zsinh = snodm;
|
||||
cc = c1ss;
|
||||
var xnoi = 1.0 / nm;
|
||||
var lsflg = 0;
|
||||
while (lsflg < 2) {
|
||||
lsflg += 1;
|
||||
a1 = zcosg * zcosh + zsing * zcosi * zsinh;
|
||||
a3 = -zsing * zcosh + zcosg * zcosi * zsinh;
|
||||
a7 = -zcosg * zsinh + zsing * zcosi * zcosh;
|
||||
a8 = zsing * zsini;
|
||||
a9 = zsing * zsinh + zcosg * zcosi * zcosh;
|
||||
a10 = zcosg * zsini;
|
||||
a2 = cosim * a7 + sinim * a8;
|
||||
a4 = cosim * a9 + sinim * a10;
|
||||
a5 = -sinim * a7 + cosim * a8;
|
||||
a6 = -sinim * a9 + cosim * a10;
|
||||
x1 = a1 * cosomm + a2 * sinomm;
|
||||
x2 = a3 * cosomm + a4 * sinomm;
|
||||
x3 = -a1 * sinomm + a2 * cosomm;
|
||||
x4 = -a3 * sinomm + a4 * cosomm;
|
||||
x5 = a5 * sinomm;
|
||||
x6 = a6 * sinomm;
|
||||
x7 = a5 * cosomm;
|
||||
x8 = a6 * cosomm;
|
||||
z31 = 12.0 * x1 * x1 - 3.0 * x3 * x3;
|
||||
z32 = 24.0 * x1 * x2 - 6.0 * x3 * x4;
|
||||
z33 = 12.0 * x2 * x2 - 3.0 * x4 * x4;
|
||||
z1 = 3.0 * (a1 * a1 + a2 * a2) + z31 * emsq;
|
||||
z2 = 6.0 * (a1 * a3 + a2 * a4) + z32 * emsq;
|
||||
z3 = 3.0 * (a3 * a3 + a4 * a4) + z33 * emsq;
|
||||
z11 = -6.0 * a1 * a5 + emsq * (-24.0 * x1 * x7 - 6.0 * x3 * x5);
|
||||
z12 = -6.0 * (a1 * a6 + a3 * a5) + emsq * (-24.0 * (x2 * x7 + x1 * x8) + -6.0 * (x3 * x6 + x4 * x5));
|
||||
z13 = -6.0 * a3 * a6 + emsq * (-24.0 * x2 * x8 - 6.0 * x4 * x6);
|
||||
z21 = 6.0 * a2 * a5 + emsq * (24.0 * x1 * x5 - 6.0 * x3 * x7);
|
||||
z22 = 6.0 * (a4 * a5 + a2 * a6) + emsq * (24.0 * (x2 * x5 + x1 * x6) - 6.0 * (x4 * x7 + x3 * x8));
|
||||
z23 = 6.0 * a4 * a6 + emsq * (24.0 * x2 * x6 - 6.0 * x4 * x8);
|
||||
z1 = z1 + z1 + betasq * z31;
|
||||
z2 = z2 + z2 + betasq * z32;
|
||||
z3 = z3 + z3 + betasq * z33;
|
||||
s3 = cc * xnoi;
|
||||
s2 = -0.5 * s3 / rtemsq;
|
||||
s4 = s3 * rtemsq;
|
||||
s1 = -15.0 * em * s4;
|
||||
s5 = x1 * x3 + x2 * x4;
|
||||
s6 = x2 * x3 + x1 * x4;
|
||||
s7 = x2 * x4 - x1 * x3;
|
||||
|
||||
// ----------------------- do lunar terms -------------------
|
||||
if (lsflg === 1) {
|
||||
ss1 = s1;
|
||||
ss2 = s2;
|
||||
ss3 = s3;
|
||||
ss4 = s4;
|
||||
ss5 = s5;
|
||||
ss6 = s6;
|
||||
ss7 = s7;
|
||||
sz1 = z1;
|
||||
sz2 = z2;
|
||||
sz3 = z3;
|
||||
sz11 = z11;
|
||||
sz12 = z12;
|
||||
sz13 = z13;
|
||||
sz21 = z21;
|
||||
sz22 = z22;
|
||||
sz23 = z23;
|
||||
sz31 = z31;
|
||||
sz32 = z32;
|
||||
sz33 = z33;
|
||||
zcosg = zcosgl;
|
||||
zsing = zsingl;
|
||||
zcosi = zcosil;
|
||||
zsini = zsinil;
|
||||
zcosh = zcoshl * cnodm + zsinhl * snodm;
|
||||
zsinh = snodm * zcoshl - cnodm * zsinhl;
|
||||
cc = c1l;
|
||||
}
|
||||
}
|
||||
var zmol = (4.7199672 + (0.22997150 * day - gam)) % _constants.twoPi;
|
||||
var zmos = (6.2565837 + 0.017201977 * day) % _constants.twoPi;
|
||||
|
||||
// ------------------------ do solar terms ----------------------
|
||||
var se2 = 2.0 * ss1 * ss6;
|
||||
var se3 = 2.0 * ss1 * ss7;
|
||||
var si2 = 2.0 * ss2 * sz12;
|
||||
var si3 = 2.0 * ss2 * (sz13 - sz11);
|
||||
var sl2 = -2.0 * ss3 * sz2;
|
||||
var sl3 = -2.0 * ss3 * (sz3 - sz1);
|
||||
var sl4 = -2.0 * ss3 * (-21.0 - 9.0 * emsq) * zes;
|
||||
var sgh2 = 2.0 * ss4 * sz32;
|
||||
var sgh3 = 2.0 * ss4 * (sz33 - sz31);
|
||||
var sgh4 = -18.0 * ss4 * zes;
|
||||
var sh2 = -2.0 * ss2 * sz22;
|
||||
var sh3 = -2.0 * ss2 * (sz23 - sz21);
|
||||
|
||||
// ------------------------ do lunar terms ----------------------
|
||||
var ee2 = 2.0 * s1 * s6;
|
||||
var e3 = 2.0 * s1 * s7;
|
||||
var xi2 = 2.0 * s2 * z12;
|
||||
var xi3 = 2.0 * s2 * (z13 - z11);
|
||||
var xl2 = -2.0 * s3 * z2;
|
||||
var xl3 = -2.0 * s3 * (z3 - z1);
|
||||
var xl4 = -2.0 * s3 * (-21.0 - 9.0 * emsq) * zel;
|
||||
var xgh2 = 2.0 * s4 * z32;
|
||||
var xgh3 = 2.0 * s4 * (z33 - z31);
|
||||
var xgh4 = -18.0 * s4 * zel;
|
||||
var xh2 = -2.0 * s2 * z22;
|
||||
var xh3 = -2.0 * s2 * (z23 - z21);
|
||||
return {
|
||||
snodm: snodm,
|
||||
cnodm: cnodm,
|
||||
sinim: sinim,
|
||||
cosim: cosim,
|
||||
sinomm: sinomm,
|
||||
cosomm: cosomm,
|
||||
day: day,
|
||||
e3: e3,
|
||||
ee2: ee2,
|
||||
em: em,
|
||||
emsq: emsq,
|
||||
gam: gam,
|
||||
peo: peo,
|
||||
pgho: pgho,
|
||||
pho: pho,
|
||||
pinco: pinco,
|
||||
plo: plo,
|
||||
rtemsq: rtemsq,
|
||||
se2: se2,
|
||||
se3: se3,
|
||||
sgh2: sgh2,
|
||||
sgh3: sgh3,
|
||||
sgh4: sgh4,
|
||||
sh2: sh2,
|
||||
sh3: sh3,
|
||||
si2: si2,
|
||||
si3: si3,
|
||||
sl2: sl2,
|
||||
sl3: sl3,
|
||||
sl4: sl4,
|
||||
s1: s1,
|
||||
s2: s2,
|
||||
s3: s3,
|
||||
s4: s4,
|
||||
s5: s5,
|
||||
s6: s6,
|
||||
s7: s7,
|
||||
ss1: ss1,
|
||||
ss2: ss2,
|
||||
ss3: ss3,
|
||||
ss4: ss4,
|
||||
ss5: ss5,
|
||||
ss6: ss6,
|
||||
ss7: ss7,
|
||||
sz1: sz1,
|
||||
sz2: sz2,
|
||||
sz3: sz3,
|
||||
sz11: sz11,
|
||||
sz12: sz12,
|
||||
sz13: sz13,
|
||||
sz21: sz21,
|
||||
sz22: sz22,
|
||||
sz23: sz23,
|
||||
sz31: sz31,
|
||||
sz32: sz32,
|
||||
sz33: sz33,
|
||||
xgh2: xgh2,
|
||||
xgh3: xgh3,
|
||||
xgh4: xgh4,
|
||||
xh2: xh2,
|
||||
xh3: xh3,
|
||||
xi2: xi2,
|
||||
xi3: xi3,
|
||||
xl2: xl2,
|
||||
xl3: xl3,
|
||||
xl4: xl4,
|
||||
nm: nm,
|
||||
z1: z1,
|
||||
z2: z2,
|
||||
z3: z3,
|
||||
z11: z11,
|
||||
z12: z12,
|
||||
z13: z13,
|
||||
z21: z21,
|
||||
z22: z22,
|
||||
z23: z23,
|
||||
z31: z31,
|
||||
z32: z32,
|
||||
z33: z33,
|
||||
zmol: zmol,
|
||||
zmos: zmos
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user