Coorindate transforms to a satellite reference frame

54 views (last 30 days)
I have a matrix in target coordinates, but I need to put this matrix into coordinates for a satllite. The unit vectors are given below (target to Earth Centered Earth Fixed) and then the satellite is just offset from ECEF by its orbit height. How do I transform the original matrix into satellite coordinates?
Thank you in advance for your help
a = longVal;
b = latVal;
Re = 6371; %km
Rgeo = 35786 + Re; %km
%Target in satellite coordinates
target_ECEF = [-sin(a) cos(a) 0; -sin(b)*cos(a) -sin(b)*sin(a) cos(b); ...
cos(b)*cos(a) cos(b)*sin(a) sin(b)];
Joel Handy
Joel Handy on 29 Jul 2019
So you have already applied target_ECEFand have a 64x64 matrix of cartesian position vectors in the ECEF frame? Essentially a 64x64x3 matrix. Is that accurate?
You need to create ECEF vectors from your satellite to your grid points, by subtracting the satellite position from each point. Then you need to transform these vectors into spacecraft coordinates. How you come up with that direction cosine matrix though depends on the definition of your satellite frame. Do you know the definition of this frame?

Sign in to comment.

Answers (2)

Jim Riggs
Jim Riggs on 29 Jul 2019
Edited: Jim Riggs on 29 Jul 2019
In order to answer this question, we need a good definition of the coordinate frames involved. The only way to do this is to draw a good diagram. Your description of the problem state that "the sattelite is just offset from the ECEF by it's orbit height". This, to me, implies that the satellite reference frame remains aligned with the ECEF frame, because an "offset" is typically a linear displacement. (An angular displacement is a "rotation"). If this is the case, then the basis vectors are the same for both the ECEF and the satellite reference frame, and a vector in ECEF is converted to satellite coordinates simply by adding (or subtracting) the offset vector.
However, if the satellite does, in fact, rotate (as I suspect it might) and one axis remains pointed "down", then the satellite reference frame might be described by a "North-East-Down" (NED) coordinate frame. In this case the Z-axis is selected as the "down" direction, and the x-axis remains pointing north at all times. In order to rotate a vector from ECEF to NED, you would apply the transformations, based on the lattitude and the longitude, per the equations below.
If you want some other axis (say the x-axis) pointing "down", then you would need to derive the appropriate transformation for this. Is this close to what you are looking for? (The attached paper shows the derivation of these equations. This may, or may not be of help to you)

Meysam Mahooti
Meysam Mahooti on 12 Mar 2020


Find more on Reference Applications in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!