shashwatak / satellite-js

Modular set of functions for SGP4 and SDP4 propagation of TLEs.
MIT License
902 stars 145 forks source link

Jumping coordinates? #132

Open onekiloparsec opened 2 weeks ago

onekiloparsec commented 2 weeks ago

Hey. I am a happy user of your truly awesome library. I am currently trying to display Starlink tracks onto the sky, using the Aladin Lite viewer, which is a lib I know since a long time too.

Hence, I compute the LookAngles exactly as explained in your README, using TLEs obtained from CelesTrack.org (which is based on space-track.org, as far as I can tell). And I transform these LookAngles into equatorial coordinates, and inject them into Aladin Lite.

I noticed that some tracks are just jumping around, with huge shifts (> 10 degrees) of azimuth and/or elevation in just a few seconds. Most of other tracks looks pefectly fine.

I really checked everything (especially, this is true at the LookAngle step, and not due to the transform to Equatorial Coordinates). I also checked the validity of TLEs, and everything looks fine.

I attach below two images. The first one has 2 bad tracks. The second one has 3 good ones. Every green track displayed consists of 300 points spread over the course of 2 hours, at the same date, same location. I also attach associated satellite records (one bad, one good).

Do you have any idea on what could cause this, in some cases (and not others)? Do I make any mistake somewhere? Any help would be greatly appreciated. Thanks a lot!

Screenshot 2024-08-26 at 17 56 37 Screenshot 2024-08-26 at 18 04 44

exemple bad track:

{
    "error": 0,
    "satnum": "56532",
    "epochyr": 24,
    "epochdays": 236.11336932,
    "ndot": 0.00001791,
    "nddot": 0,
    "bstar": 0.00014762,
    "inclo": 0.7505613915276415,
    "nodeo": 0.3497273301853718,
    "ecco": 0.0002097,
    "argpo": 4.6203176263542325,
    "mo": 1.663920114364306,
    "no": 0.06553335134631144,
    "jdsatepoch": 2460545.61336932,
    "isimp": 0,
    "method": "n",
    "aycof": 0.000799726717117262,
    "con41": 0.6044257802707943,
    "cc1": 6.161371895173546e-10,
    "cc4": 2.442547801321601e-7,
    "cc5": 0.00012441636586399995,
    "d2": 2.1815917766150275e-17,
    "d3": 1.1541922662844e-24,
    "d4": 7.118037144080292e-32,
    "delmo": 0.9991597869763904,
    "eta": 0.00301270827661509,
    "argpdot": 0.00007532645185525302,
    "omgcof": -1.0244224991108602e-8,
    "sinmao": 0.9956671127001432,
    "t": -76154.31850410998,
    "t2cof": 9.242057842760319e-10,
    "t3cof": 2.2575167838762963e-17,
    "t4cof": 9.06553747248183e-25,
    "t5cof": 4.5036205412872555e-32,
    "x1mth2": 0.4651914065764019,
    "x7thm1": 2.7436601539651866,
    "mdot": 0.06556055001984452,
    "nodedot": -0.00006588339179430682,
    "xlcof": 0.0015373957477788829,
    "xmcof": -0.008906539102513301,
    "nodecf": -1.4179129247233027e-13,
    "irez": 0,
    "d2201": 0,
    "d2211": 0,
    "d3210": 0,
    "d3222": 0,
    "d4410": 0,
    "d4422": 0,
    "d5220": 0,
    "d5232": 0,
    "d5421": 0,
    "d5433": 0,
    "dedt": 0,
    "del1": 0,
    "del2": 0,
    "del3": 0,
    "didt": 0,
    "dmdt": 0,
    "dnodt": 0,
    "domdt": 0,
    "e3": 0,
    "ee2": 0,
    "peo": 0,
    "pgho": 0,
    "pho": 0,
    "pinco": 0,
    "plo": 0,
    "se2": 0,
    "se3": 0,
    "sgh2": 0,
    "sgh3": 0,
    "sgh4": 0,
    "sh2": 0,
    "sh3": 0,
    "si2": 0,
    "si3": 0,
    "sl2": 0,
    "sl3": 0,
    "sl4": 0,
    "gsto": 0.22173464941256782,
    "xfact": 0,
    "xgh2": 0,
    "xgh3": 0,
    "xgh4": 0,
    "xh2": 0,
    "xh3": 0,
    "xi2": 0,
    "xi3": 0,
    "xl2": 0,
    "xl3": 0,
    "xl4": 0,
    "xlamo": 0,
    "zmol": 0,
    "zmos": 0,
    "atime": 0,
    "xli": 0,
    "xni": 0,
    "operationmode": "i",
    "init": "n",
    "a": 1.0879566627398578,
    "alta": 0.08818480725203437,
    "altp": 0.08772851822768124
}

exemple good track:

{
    "error": 0,
    "satnum": "60320",
    "epochyr": 24,
    "epochdays": 236.58334491,
    "ndot": -0.0174653,
    "nddot": 0,
    "bstar": -0.01572,
    "inclo": 0.9278170303601855,
    "nodeo": 0.771007923714755,
    "ecco": 0.0000847,
    "argpo": 0.994746916515664,
    "mo": 5.577347977734299,
    "no": 0.06853208585105452,
    "jdsatepoch": 2460546.08334491,
    "isimp": 0,
    "method": "n",
    "aycof": 0.0009383948661895064,
    "con41": 0.07849740940212402,
    "cc1": -5.868640315491601e-7,
    "cc4": 7.164567296981803e-7,
    "cc5": 0.0010835110607258704,
    "d2": 3.324836217470627e-11,
    "d3": -2.8189891967337796e-15,
    "d4": 2.787056513931511e-19,
    "delmo": 1.0046745441948546,
    "eta": 0.002044177906792021,
    "argpdot": 0.00003969364916096661,
    "omgcof": 0,
    "sinmao": -0.6486713220643282,
    "t": -76831.08335338533,
    "t2cof": -8.8029604732374e-7,
    "t3cof": 3.393718095775854e-11,
    "t4cof": -2.173284004865135e-15,
    "t5cof": 1.7258946935898602e-19,
    "x1mth2": 0.6405008635326254,
    "x7thm1": 1.5164939552716223,
    "mdot": 0.068536011073524,
    "nodedot": -0.0000598566595274696,
    "xlcof": 0.0017593372835821698,
    "xmcof": 0,
    "nodecf": 1.2291352871823714e-10,
    "irez": 0,
    "d2201": 0,
    "d2211": 0,
    "d3210": 0,
    "d3222": 0,
    "d4410": 0,
    "d4422": 0,
    "d5220": 0,
    "d5232": 0,
    "d5421": 0,
    "d5433": 0,
    "dedt": 0,
    "del1": 0,
    "del2": 0,
    "del3": 0,
    "didt": 0,
    "dmdt": 0,
    "dnodt": 0,
    "domdt": 0,
    "e3": 0,
    "ee2": 0,
    "peo": 0,
    "pgho": 0,
    "pho": 0,
    "pinco": 0,
    "plo": 0,
    "se2": 0,
    "se3": 0,
    "sgh2": 0,
    "sgh3": 0,
    "sgh4": 0,
    "sh2": 0,
    "sh3": 0,
    "si2": 0,
    "si3": 0,
    "sl2": 0,
    "sl3": 0,
    "sl4": 0,
    "gsto": 3.1827632620897504,
    "xfact": 0,
    "xgh2": 0,
    "xgh3": 0,
    "xgh4": 0,
    "xh2": 0,
    "xh3": 0,
    "xi2": 0,
    "xi3": 0,
    "xl2": 0,
    "xl3": 0,
    "xl4": 0,
    "xlamo": 0,
    "zmol": 0,
    "zmos": 0,
    "atime": 0,
    "xli": 0,
    "xni": 0,
    "operationmode": "i",
    "init": "n",
    "a": 1.0559837005554569,
    "alta": 0.056073142374893914,
    "altp": 0.05589425873601983
}