Using GMAT data to determine satellite elevation angle

I am trying to simulate a communications system between a ground station in Canberra and a satellite in LEO with a $$90^{\circ}$$ inclination. Specifically, I am interested in the the elevation angle as seen from the ground station over a 24-hour period.

I am using GMAT to output the ECEF coordinates of the ground station and the satellite and have used the following to determine the elevation angle (as I have not been able to report elevation angle directly from GMAT): Why can't I just use dot product angles to get satellite vision of a point on Earth?

Using GMAT, I have set a minimum elevation angle of $$5^{\circ}$$. However, when I plot the elevation angles (as calculated in the above link) during the contact intervals returned by GMAT, there seems to be an imbalance around $$5^{\circ}$$.

Is there a reason this is happening/something I haven't accounted for? I notice that in the first image, the intervals start and end after $$5^{\circ}$$, and the satellite is "approaching" the ground station from the north; in the second image, the interval starts and ends before $$5^{\circ}$$, and the satellite is "approaching" the ground station from the south. Thanks

• There must be a finite time step in the calculation, perhaps 5 minutes or 1 minute or 1 second? The way the program is currently set up, it may simply include the points that are ≥ 5°, sometimes they might be 5.01°, sometimes 5.5°. There might be an "event detection" option that searches for the exact moment it reaches 5°; somebody familiar with GMAT may be able to help, or a read-through of the documentation might do it for you.
– uhoh
Oct 6, 2021 at 4:19
• @uhoh I had previously played with the time step and decreased it but saw the same behavior (albeit less severe). I also haven't had luck with the documentation yet but I'll keep digging. Thanks for the reply! Oct 6, 2021 at 5:38
• Looks like a parametrization of plot (2nd graph). BTW, there is a formula to compute the Max Elevation that you can use to check your routine. Did you know it? Oct 6, 2021 at 11:12
• @NgPh I'm not familiar with that, can you point me in the right direction? Oct 6, 2021 at 13:32
• I assume that you are familiar with the Law of Cosinus and how to use it to relate the Elevation with Earth-centered angle between the Ground station and the satellite Nadir point. Then, just observe that the Elevation is max when the satellite Nadir is closest to the station in any pass. You may take as test point a station on the Equator. With a polar orbit (i=90°), the satellite is closest to the station when it crosses the Equator. In fact, El=90° when the satellite crosses the Equator at the longitude of the station. Oct 6, 2021 at 14:30

You should be using the GMAT2020a Contact Locator and an topographic coordinate system for the ground station. If you do that then the you can output the cartesian coordinates of the spacecraft relative to the ground station and compute elevation, azimuth and slant range easily. Very nice for link budgets.

Ensure the Ground Station state type is spherical and the horizon reference is ellipsoid when you create it. Then you can enter the location and altitude of the Ground Station in Geodetic Lat, Lon and km.

Create a Topographic coordinate system for each Ground Station with origin naming the ground station. example for ground station South Point, HI:

Create CoordinateSystem S_Point;
GMAT S_Point.Origin = S_Point;
GMAT S_Point.Axes = Topocentric;


Create a ReportFile for each ground station with the following variables (or similar)

GMAT Sat4LinkReport_S_Point.Add = {LEOsat4.A1Gregorian,
LEOsat4.EarthFixed.PlanetodeticLAT, LEOsat4.EarthFixed.PlanetodeticLON,
LEOsat4.Earth.Altitude, LEOsat4.S_Point.X, LEOsat4.S_Point.Y,
LEOsat4.S_Point.Z};


If your Report File is a csv file with comma delimiters you can open it in Excel and perform the slant-range, azimuth, and elevation calculations (and link budget) using Excel formulas.