How to set satellite mass in SGP4 orbit determination

Hi all,

I am trying for the first time the new SGP4 orbit determination feature. I could not find where to set the satellite mass.
Part of my code is the following:

matrix_decomposer = QRDecomposer(1e-11)
optimizer = GaussNewtonOptimizer(matrix_decomposer, False)
tle_prop_builder = TLEPropagatorBuilder(tle_initial, PositionAngle.MEAN, estimator_position_scale)

estimator = BatchLSEstimator(optimizer, tle_prop_builder)
estimator.setParametersConvergenceThreshold(estimator_convergence_thres)
estimator.setMaxIterations(estimator_max_iterations)
estimator.setMaxEvaluations(estimator_max_evaluations)

[...]  # Add measurements

estimated_propagator_array = estimator.estimate()

When using a numerical propagator, I was setting up the mass in the numerical propagator builder:

propagator_builder = NumericalPropagatorBuilder(orbit_initial_cartesian,
                                                integrator_builder, PositionAngle.MEAN, estimator_position_scale)
propagator_builder.setMass(mass)
propagator_builder.setAttitudeProvider(nadir_pointing)

Maybe the mass is not relevant in SGP4? Then in this case why is it required in the SGP4 propagator constructor?

Cheers
Clément

Mass is irrelevant in the physical model SGP4/SDP4, but required in Orekit by all propagators in order to build a SpacecraftState. It is exactly the same as attitude provider, for the same reason.

1 Like

Thank you Luc!