[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orekit Developers] Question about verification of TLE using Orekit9.0



Hi,

I am a newer of Orekit9.0. My name is Rongwang Li. It is amazing for me, so
powerful.

Now, I have a question about the verification of TLE. The orbital elements do
NOT match.

For example (from the file "SGP4-VER.TLE"):
1 00005U 58002B   00179.78495062  .00000023  00000-0  28098-4 0  4753
2 00005  34.2682 348.7242 1859667 331.7664  19.3264 10.82419157413667     0.00
4320.0        360.00

The ref output is as following (see the file "tjavaver.out.ref" for details):
5 xx
       0.00000000    7022.46529266   -1400.08296755       0.03995155
1.893841015  6.405893759  4.534807250
     360.00000000   -7154.03120202   -3783.17682504   -3536.19412294
4.741887409 -4.151817765 -2.093935425    8635.348839 0.185684   34.26805
347.97998  332.85719  252.46822  273.52846
    .....

What I get is:
5 xx
       0.00000000    7022.46529267   -1400.08296755       0.03995155
1.893841015  6.405893759  4.534807250
     360.00000000   -7154.03120202   -3783.17682504   -3536.19412294
4.741887409 -4.151817765 -2.093935425    8635.348829 0.185684   34.26905
347.97553  332.85501  252.46822  273.52846

We can see that the position and velocity in TEME do match, but the orbital
elements do NOT match exactly. What's the problem with it?

The following code is what I used in step handler,

PVCoordinates pv = state.getPVCoordinates(FramesFactory.getEME2000());
Orbit orbit = new CartesianOrbit(pv, FramesFactory.getEME2000(),
state.getDate(), Constants.WGS84_EARTH_MU);
KeplerianOrbit keplerianOrbit = (KeplerianOrbit)
OrbitType.KEPLERIAN.convertType(orbit);
out.print(String.format("%15.6f %8.6f %10.5f %10.5f %10.5f %10.5f %10.5f",
                keplerianOrbit.getA() / 1000.0, keplerianOrbit.getE(),
                FastMath.toDegrees(keplerianOrbit.getI()),
                FastMath.toDegrees(MathUtils

.normalizeAngle(keplerianOrbit.getRightAscensionOfAscendingNode(),
FastMath.PI)),
                FastMath.toDegrees(

MathUtils.normalizeAngle(keplerianOrbit.getPerigeeArgument(), FastMath.PI)),

FastMath.toDegrees(MathUtils.normalizeAngle(keplerianOrbit.getTrueAnomaly(),
FastMath.PI)),
                FastMath.toDegrees(
                    MathUtils.normalizeAngle(keplerianOrbit.getMeanAnomaly(),
FastMath.PI))));

Best regards!

Rongwang Li