I'm trying to find a way to calculate look angles to not just GEO satellites, but LEO, MEO, and HEO sats. The only calculator I've found myself is here, which was referenced for a similar problem on Stack Exchange in regards to calculating the longitude of GEO satellites GIVEN look angles here: Computing GEO satellite's longitude from elevation/azimuth from a given latitude/longitude?

I'm interested in two functions/formulas, both of which are calculated on that first link I posted.

  1. $Az, \ El = f(earth_{lat}, \ earth_{lon}, \ sat_{lat}, \ sat_{lon}, \ altitude)$. I.e. look angle from earth station and satellite locations
  2. $sat_{lat}, \ sat_{lon} = f(earth_{lat}, \ earth_{lon}, \ az, \ el, \ alt)$

So far I've started by subtracting the ECEF (geocentric) vector to the station from that of the satellite:

$v_{1} = [r*cos(earth_{lat})*cos(earth_{lon}), \ r*cos(earth_{lat})*sin(earth_{lon}), \ r*(1-f)*asin(earth_{lat})]⋅T$

$v_{2} = [R*cos(sat_{lat})*cos(sat_{lon}), R*cos(sat_{lat})*sin(sat_{lon}), R*(1-f)*sin(sat_{lat})]⋅T$

$V = v_{2}-v_{1}$

Where $r$ is the radius of Earth, $f$ is the flattening of Earth, and $R = sat_{alt} + r$.

If I'm not mistaken this should yield the vector pointing from the station to the satellite. So now I just have to transform these coordinates from ECEF to ENU (topocentric):

$t_{1} = [-sin(earth_{lon}), cos(earth_{lon}), 0]$

$t_{2} = [-sin(earth_{lat})*cos(earth_{lon}), -sin(earth_{lat})*sin(earth_{lat}), cos(earth_{lat})]$

$t_{3} = [cos(earth_{lat})*cos(earth_{lon}), cos(earth_{lat})*sin(earth_{lon}), sin(earth_{lat})]$

$T = [t_{1}, t_{2}, t_{3}]$ (ECEF to ENU transformation matrix)

$V_{ENU} = T*V$

Lastly, I calculate the azimuth and elevation:

$Az = arctan2(V_{ENU(y)}] / V_{ENU(x)}] )$ $El = arcsin(V_{ENU(z)}/ ||V_{ENU}||] )$

This keeps giving me the wrong answer, at least according to that calculator I referenced. What am I missing?

  • $\begingroup$ You might want to include the write/wrong answers you're working with, and code if that's what you're using. The logic sounds correct. $\endgroup$ May 10, 2022 at 21:02

1 Answer 1


In your equation for $t_2$, the middle term ought to be $$-\sin(earth_{LAT})*\sin(earth_{LON})$$ not $$-\sin(earth_{LAT})*\sin(earth_{LAT})$$

Check to see if your code has the same error. You should also try using the transpose of your T matrix, and see if that fixes it. Beyond that, I'd ask where are you getting your satellite positions? Might they be in ECI, rather than ECF? Expressing what a HEO orbit looks like in ECF is a bit weird.


Your Answer

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