First of all,this is my code:
final AbsoluteDate initialDate = new AbsoluteDate(“2023-10-19T18:18:50.000”, TimeScalesFactory.getUTC());
final Vector3D positionECF = new Vector3D(-3443011.0276737823, 5409676.758639811, 2455315.2146701273);
final Vector3D velocityECF = new Vector3D(-4541.811537870899, -4449.90303687951, 3421.5476352639403);
PVCoordinates pvCoordinates = new PVCoordinates(positionECF, velocityECF);
// Inertial frame
final Frame inertialFrame = FramesFactory.getGCRF();
OneAxisEllipsoid earth2 = new OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS, Constants.WGS84_EARTH_FLATTENING, inertialFrame);
GeodeticPoint satLatLonAlt = earth2.transform(pvCoordinates.getPosition(), FramesFactory.getEME2000(), initialDate);
This is great. I can get the projection points of the satellites.But the Z axis is roughly normal to equator.
My satellite attitude is as follows:
double roll = FastMath.toRadians(39.976486);
double pitch = FastMath.toRadians(0.219314);
double yaw = 0;
The converted ecf should be:
final Vector3D positionECF2 = new Vector3D(-2947453.473909, 5006687.644903, 2622949.033188);
GeodeticPoint is {longitude:120.4854,latitude:24.44};
What should I do? Please help me out. I appreciate it.