about Coordinate System

Hi!
I calculate the position of a LEO satellite with TLE, but which Coordinate System the position is in?

TLEPropagator propagator = TLEPropagator.selectExtrapolator(tle);
AbsoluteDate target = new AbsoluteDate(param.getTarget(), TimeScalesFactory.getUTC());
SpacecraftState state = propagator.propagate(target);
Vector3D position = state.getPVCoordinates().getPosition();

The TLE propagator works in TEME frame.

You may use state.getPVCoordinates(someOtherFrame).getPosition(); if you want it in antoher frame.

Hi @rushsky518 ,

Welcome to the Orekit community!

TLE propagator uses the TEME (True Equator Mean Equinox) frame, therefore the position/velocity in output will be in TEME.
If you want your position in another frame outputFrame you can try something like

Vector3D position = state.getPVCoordinates(outputFrame).getPosition();

Maxime

Thanks so much! @MaximeJ
In this circumstance, how can i get a ‘GeodeticPoint’ from ‘state’?

Hi,

You first need to create a OneAxisEllipsoid. For the Earth, you can for instance create it like that:

final OneAxisEllipsoid earth = new OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS, Constants.WGS84_EARTH_FLATTENING, FramesFactory.getITRF(IERSConventions.IERS_2010, true));

Now, you just have to call the transform(position, frame, epoch) method of the created earth object.

Vector3D position = state.getPVCoordinates(outputFrame).getPosition();
AbsoluteDate epoch = state.getDate();
GeodeticPoint point = earth.transform(position, outputFrame, epoch);

Best regards,
Bryan

Thanks so much