How to determine satellites with the same orbit from TLE file


#1

I propagate satellites data from TLE files that contains 31 satellites data.
What’s the best way after propagation I can determine which satellites are on the same orbit?

Thanks,
John


#2

Hi John,

I’m not sure to fully understand your question so excuse me in advance if I’m off topic.
To check if your satellites are on the same orbit you could extract the Keplerian orbital parameters from your TLE propagators and compare the 5 first parameters, setting aside the anomaly.
Would that work for you ?

Maxime


#3

Hi @MaximeJ ,

Thanks for the direction, but is it possible that figure out the satellites on the same orbit based on TLE file only, based on wikipedia, 2-line element file has following elements:
e , i , Ω , ω , n , M 0

Any idea?

Thanks,
John


#4

Yes.
When you’ve created your TLE object you’ll have a set of getters at your disposal to retrieve the orbital parameters.
See example code below:

        // SPOT-5 TLE
        String tle_line1 = "1 27421U 02021A   02124.48976499 -.00021470  00000-0 -89879-2 0    20";
        String tle_line2 = "2 27421  98.7490 199.5121 0001333 133.9522 226.1918 14.26113993    62";
        
        // Create TLE
        TLE tle = new TLE(tle_line1,tle_line2);
        System.out.println(tle + "\n");
        
        // Orbital parameters from TLE
        System.out.println("Epoch :" + tle.getDate());
        // Mean motion = n - Semi-major axis a with µ = a^3.n²
        System.out.println("a: Semi-major axis = " + FastMath.pow(Constants.EIGEN5C_EARTH_MU / (tle.getMeanMotion()*tle.getMeanMotion()), 1./3.) + " m");
        System.out.println("e: Eccentricty     = " + tle.getE());
        System.out.println("i: Inclination     = " + FastMath.toDegrees(tle.getI()) + " deg");
        System.out.println("ω: Perigee arg     = " + FastMath.toDegrees(tle.getPerigeeArgument()) + " deg");
        System.out.println("Ω: RAAN            = " + FastMath.toDegrees(tle.getRaan()) + " deg");
        System.out.println("M: Mean anomaly    = " + FastMath.toDegrees(tle.getMeanAnomaly()) + " deg\n");

Is that what you are looking for ?