[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orekit Users] Reference frame of a S/Cs attitude



Dear list members,

I'm in the course of developing a simple application using Orekit to 
calculate the time series of the following paramters for a satellite link 
to an earth ground station:

1. slant range
2. elevation (as seen from G/S)
3. S/C-G/S-Sun angle
4. two offset angles between an antenna on the S/C and the line of sight 
to the G/S.

Currently I am able to produce parameters 1 and 2 using the following 
code:

SpacecraftState currentState = propagator.propagate(now);
PVCoordinates topoScPv = currentState.getPVCoordinates(gsTopoFrame); // 
gsTopoFrame is the topocentric frame of the G/S on earth

double slantRange = gsTopoFrame.getRange(topoScPv.getPosition(), 
gsTopoFrame, now);
double elevation = gsTopoFrame.getElevation(topoScPv.getPosition(), 
gsTopoFrame, now);

Is this the correct approach?

Could anyone please give me a hint at how to get the S/C->G/S unit-vector 
in the frame of reference of the S/C with it's attitude applied (parameter 
4)? I would like to use this vector to extract two angles relative to an 
antenna in order to evaluate the antenna gain in direction of the G/S. My 
basic problem is that I don't really know how I can get the S/C-bound 
Frame that is oriented according to the attitude of the S/C. The only 
S/C-bound frames I can produce are TNW, VNC, QSW/VLVH and VVLH which are 
all not related to attitudes.

In order to get the S/C-G/S-Sun angle (parameter 3), I guess it would be 
enough to get the unit vectors a = G/S->S/C and b = G/S->Sun in a common 
reference frame (e.g. the G/Ss topocentric frame) and then set the angle 
to be equal acos(a.normalize().dotProduct(b.normalize())). Is that 
correct?

Many thanks for your time and effort for producing this very handy 
library!
Best regards,

Raffael Mancini

PS: Have you ever considered introducing a type that would somehow couple 
vectors with frames? This could make it possible either at compile or 
runtime to check if the vectors are in the same frame.

This message and any attachments are intended for the use of the addressee or addressees only.
The unauthorised disclosure, use, dissemination or copying (either in whole or in part) of its
content is not permitted.
If you received this message in error, please notify the sender and delete it from your system.
Emails can be altered and their integrity cannot be guaranteed by the sender.

Please consider the environment before printing this email.