How to find azimuth and elevation from satellite of a ground station when yaw, pitch, roll, lat, long position of satellite and lat, long position on ground are given?

aflong = 10.3082;% Earth Station Longitude (degrees)
aflat = -6.0636; % Earth Station Latitude (degrees)
lslong = 0;      % Satellite Longitude (degrees)
lslat = 0;       % Satellite Latitude (degrees)
lspol = 0;       % Satellite Polarization (degrees)
alt = 700;       % Satellite altitude (Km)    
yaw = 0;         % yaw(degrees)
pitch = 54.7356; % pitch(degrees)
roll = 0;        % roll(degrees)
  • 3
    $\begingroup$ Seems like you would need to know the satellite's altitude as well. $\endgroup$ Oct 12, 2018 at 12:01
  • $\begingroup$ I almost posted an answer based only on deviations from the nadir line, but it didn't use pitch, roll, and yaw. Can you explain how your "altitude-azimuth" coordinate system uses satellite attitude, if it does? $\endgroup$
    – uhoh
    Oct 13, 2018 at 2:10
  • 2
    $\begingroup$ @kartheek I would love to help, but your question is not clear. The terms Altitude and Azimuth apply to a surface with a horizon, like the Earth. Satellites do not have these terms. Please add some more information about this. If it is a written problem, include some more text. If it is in a different language, I think that's fine as long as we work to translate some of it into English. The Altitude and Azimuth of a satellite is your idea, then please try to explain further what you need. Don't worry about imperfect English, just somehow add something further. Thanks! $\endgroup$
    – uhoh
    Oct 13, 2018 at 9:27
  • 1
    $\begingroup$ @kartheek The pitch/roll and yaw are the attitude of the satellite with respect to something, e.g. the flight path. If you know where that is facing then its easier to say whether one should look left or right to find the ground station. Thereafter you need to know where the Antenna is located, or more specifically how its Alt/Azimuth relates to the pitch/roll/yaw body axes. $\endgroup$
    – Puffin
    Oct 13, 2018 at 10:06
  • 1
    $\begingroup$ As others have said, you need to define what you mean by Az/El in this context. I'm guessing you are referencing Az/El to the spacecraft's body. In that case you need to transform the pointing vector (from the s/c to the g/s) to the spacecraft's body coordinate frame via a rotation matrix based on Yaw/Roll/Pitch. Once you have the pointing vector in the body reference frame, you can convert it to an Az/El (based on that same body reference frame) $\endgroup$
    – Carlos N
    Oct 15, 2018 at 21:23

1 Answer 1


I don't know if you still need an answer but for a similiar problem, I've appplied a procedure shown by D.Vallado in sec. 3.2.3 and 4.4.3 of its "Fundamentals of Astrodynamics and Applications".

First of all you need to use a rotation matrix to convert your site latitude and longitude in ECEF coordinates, in this way you will have the position of the ground station. Subtracting the ground station position from the satellite position, you get the range from the grond station to the satellite in ECEF coordinate.

At this point with a type 3 rotation equal to the longitude of the site and a rotation of type 2 equal to 90°-latitude of the site, you can convert the range to SEZ coordinates.

Finally, you can determine the elevation as el=asin(range_z/|range|) and, if el is different from 90°, the azimuth as az = atan(-range_E/range_S). In case your elevation is equal to 90°, you must use the range rate, which is equal to the satellite velocity, instead of the range vector.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.