-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Summary
Related to: I-ALiRT - MAG frame transformations
@laspsandoval, I don't think it is fair to say that the x and y axes are selected arbitrarily. In fact, the code is very similar to the code for generating the pointing_attitude kernel. With the exception of the "alternate reference vector" part, the get_x_y_axes function calculates a y-axis that is perpendicular to the s/c z-axis and the HAE z-axis (north pole). The result is that the y-axis is in the HAE ecliptic plane. Then the x-axis is computed such that it completes the right-hand orthogonal set of basis-vectors. This also means it should be the closest spin-vector to the HAE north pole.
Furthermore, there is nothing special about spin_phase = 0 from the telemetry. It doesn't match the x-axis in the inertial frame. Example:
Time at which spin phase equals 0 : 813433294.5140676
ref = spice.pxform("IMAP_SPACECRAFT", "ECLIPJ2000", 813433294.5140676) x_ref = ref[:, 0] # inertial direction of S/C +X x_ref array([ 0.23525427, -0.96026672, 0.15014413])
Is the ET in that example a time that we expect the s/c to be at spin-phase 0? There better be something special about this time.
Looking at this example in more detail... The full transform matrix at ET = 813433294.5140676 is:
[[ 0.23525427, -0.03275916, -0.97138163],
[-0.96026672, 0.14655792, -0.23750496],
[ 0.15014413, 0.9886595 , 0.00302085]]
Vertical columns are the s/c x, y, z axes in HAE coordinates. I see that:
the s/c y-axis is very close to the HAE z-axis. This is 90-degrees off from what I would expect.
The s/c z (spin-axis) is basically in the ecliptic plane as expected
It would be interesting to compute this for more spin-phase = 0 times.
I understand MAG's desire to put the code changes in this PR into production, so I will approve this PR with the caveat that a ticket is created to run this fixed offset to ground.
Requirements
The more specific the better.
- [ ]
- [ ]
Related tickets
No response