M2 parameter Brouwer Lyddane

Hello everyone,

Probably I’m missing something relevant but I want to include drag in the Brouwer Lyddane propagator.

My code reads a TLE and then, it constructs the initial orbit as keplerian in order to propagate it with BL propagator. My entire code is:

# Orekit initialization
import orekit
vm = orekit.initVM()
from orekit.pyhelpers import setup_orekit_curdir
setup_orekit_curdir()

# Import needed functions
from org.orekit.propagation.analytical.tle import TLE, TLEPropagator
from org.orekit.propagation.analytical import BrouwerLyddanePropagator
from org.orekit.orbits import OrbitType
from org.orekit.utils import Constants

# Select the TXT file
TXTName = "C:/Users/veron/Desktop/TLEs/AGILE.txt"

# Read the TLE from the selected .txt file
TXTFile = open(TXTName, mode="r")
desiredtime = TXTFile.readline()
tle1 = TXTFile.readline()
tle2 = TXTFile.readline()
TXTFile.close()

# Create the TLE object
mytle = TLE(tle1, tle2)

# Get the keplerian orbit from the TLE
tle_propagator = TLEPropagator.selectExtrapolator(mytle)
tle_orbit_cart = tle_propagator.getInitialState().getOrbit()
tle_orbit_kep = OrbitType.KEPLERIAN.convertType(tle_orbit_cart)

# Propagation with Brouwer Lyddane Propagator
propagator_eh = BrouwerLyddanePropagator(tle_orbit_kep, Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS,
                                         Constants.EIGEN5C_EARTH_MU, Constants.EIGEN5C_EARTH_C20,
                                         Constants.EIGEN5C_EARTH_C30, Constants.EIGEN5C_EARTH_C40,
                                         Constants.EIGEN5C_EARTH_C50, 0.)
end_state = propagator_eh.propagate(mytle.getDate(), mytle.getDate().shiftedBy(float(desiredtime) * 60))

As far as I know, the final input value of the BrouwerLyddanePropagator function is the M2 value (set above to 0.), but I want to consider the drag effects. How can be the M2 value computed?

Many thanks in advance,

Hi @VeronicaSastre

As far as I know, this value is generally obtained by a prior orbit determination.
This is why the BrouwerLyddanePropagator provides a ParameterDriver with name M2.

M2 parameter represents the combination of all unmodeled secular along-track effects (i.e. not just the atmospheric drag). The behavior of M2 is close to the B* parameter for the TLE.

As Luc said, M2 is adjusted during an orbit determination process. So, if you only perform an orbit propagation and you have any information about the value of M2, I recommend you to put 0.0.

If you want more theoritical informations about the M2 parameter, you can look at Warren Phipps’ 1992 thesis: “Phipps Jr, Warren E. Parallelization of the Navy Space Surveillance Center (NAVSPASUR) Satellite Model. NAVAL POSTGRADUATE SCHOOL MONTEREY CA, 1992.”

Bryan