I’m currently using the Orekit Python wrapper, and I want to do orbit determination from a TDM file. I build a Tdm object from my own TDM file, and I want to convert AngularAzEl from the file to an AngularRaDec to perform IodGooding initial orbit determination.
In the beginning, I wanted to use myTopocentricFrame.pointAtDistance with my azimuth, elevation and range found in my TDM file to get a GeodeticPoint corresponding to the position of my satellite. With this GeodeticPoint, I can get the latitude and longitude of my satellite. I’m not familiar at all with space mechanics, so I’m pretty sure that I don’t go in the right way using this method.
I’ve read the topic you send me in your answer, I saw that I’m really missing something with the referentials and the rotations…
I tried to follow the content of the topic you sent me, so I decided to try this to get a Transform object: groundStation.getOffsetToInertial(myTopocentricFrame, clockDate), and I get an error : uninitialized reference date for the prime-meridian-offset parameter…
Notice that I used the baseFrame instead of the offsetFrame because it is much more simple and suited (I think) to your needs.
Using the baseFrame should avoid this error.
Then, if you have range (in meters) and az, el (in radians).
The line of sight (LOS) in topocentric frame:
Vector3D losTopo = new Vector3D(az, el).scalarMultiply(range);
(Beware here that the azimuth definition may be given from the North axis of the Topocentric frame while you want the angle from the X axis (towards the East) in the constructor of Vector3D; so you may have to use \pi/2 - az instead of az directly)
Hi and thanks for bringing up this topic.
A small question to @MaximeJ, thanks for the code and transormations.
I was wondering, the obtained Vector3D losInertial = topoToInertial.transformPosition(losTopo); are they equal to the position of the spacecraft in the inertial frame?