Given an Earth station (antenna) coordinates (in lat,long) ant its Elevation (El) and Azimuth (Az), how to compute the satellite coordinates (lat,long), known its height?

For simplification purposes, the Earth can be considered as an sphere.

So its given:

Earth Radius = 6371000 meters
Satellite Height, in meters (perpendicular to the Earth's)

Station lat, long (as parameters)
Station height (0 = Zero, for simplification purposes)
Station Elevation (angle, radius or degrees)
Station Azimuth (angle, radius or degrees)

In summary: I'm trying to calculate satellite's coordinates projected on celestial sphere. I.e. it's current ground track position from the horizontal coordinate system values and the position of the observation.

The problem can be shown in this two figures: Earth's Sphere Antenna's Horizon Schema

  • $\begingroup$ If I try to use kepler's Law, I get some strange results, due the quadrant changing in some situations... $\endgroup$ Commented Oct 23, 2014 at 15:24
  • $\begingroup$ Do you mean the satellite's altitude and azimuth? $\endgroup$
    – user21
    Commented Oct 26, 2014 at 6:37
  • $\begingroup$ No. Its Latitude and Longitude. I have the altitude (given by the satellite spce) and azimuth (from Antenna) $\endgroup$ Commented Nov 3, 2014 at 16:50
  • $\begingroup$ OK, so you're trying to compute the point on Earth that is directly below the satellite? In other words, the point on Earth that intersects the line between the satellite and the center of the Earth? $\endgroup$
    – user21
    Commented Nov 3, 2014 at 16:52
  • $\begingroup$ It is what I'm looking for. $\endgroup$ Commented Nov 3, 2014 at 16:53

1 Answer 1


A way to do this is to first find the xyz in ECEF of the point on the ground (a transform for a spherical Earth is just the spherical to xyz coordinates transform from most physics text books where lat = 90-theta and lon = phi and r = radius of Earth). Then, find the satellite slant range (which depends only on the elevation angle and the altitude of the satellite). Then compute the unit vector toward the satellite in local ENU (east, north, up) coordinates (use Gram Schmidt to find local E and local N given U is the local point and the north pole is (0,0,1). Now, reuse your spherical transform to change az and el into local ENU. That part is a little weird, but if you think about it, the local horizon elevation is just like the theta of a spherical system, and az is phi (U corresponds to elevation = 90deg). Finally, compute the same unit vector in xyz (multiply each component by your ENU unit vectors and add the terms), and then "walk along that vector" by the slant path range. You will now have the xyz of the satellite. Finally, from the xyz of the satellite compute the lat and lon (and as a check, you should get back your same altitude).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .