How to compute satellite coordinates (lat,long) given antenna's coordinates, angles and satellite height

  • 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


    If I try to use kepler's Law, I get some strange results, due the quadrant changing in some situations...

    Do you mean the satellite's altitude and azimuth?

    No. Its Latitude and Longitude. I have the altitude (given by the satellite spce) and azimuth (from Antenna)

    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?

    It is what I'm looking for.

  • Chris

    Chris Correct answer

    4 years ago

    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).


License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM

Tags used