Given the following:
- Time, t
- The set of IS-200 Ephemeris data, E, of a GPS Satellite corresponding to time t
- The ECEF position of the GPS satellite, P=(x,y,z), derived from the time and ephemeris, (t,E).
- Assume the earth is just the WGS-84 ellipsoid.
- All points on WGS-84 have the mask angle, m.
Find the following:
- the ring of coverage, R, on WGS-84 of the GPS satellite. i.e., the boundary which distinguishes which WGS-84 points are in view the satellite at point P=(x,y,z) and which WGS-84 points are not in view

Acceptable solutions:
- A spline over WGS-84 that approximates R.
- A polygon over WGS-84 that approximates R.
- Or a formula(s) that gives me R.
What I have tried so far:
- Let e^2 = 0.0066943799901264; eccentricity squared
We have a ECEF WGS-84 position by geodetic latitude phi and longitude lambda:
r = 1/(sqrt(1-e^2 sin^2(phi))) * (cos(phi)*cos(lambda), cos(phi)*sin(lambda), (1-e^2) * sin(phi))
I then convert ECEF to east-north up (ENU) geographic frame with phi and lambda using the matrix:
(-sin(lambda) cos(lambda) 0 )
C= (-cos(lambda)*sin(phi) -sin(lambda)*sin(phi) cos(phi))
( cos(lambda)*cos(phi) sin(lambda)*cos(phi) sin(phi))
- Let G = C ( P - r )
- Take the z component of G. should the z component of G be greater than sin(m) then I know the point, r, is in view. But that isn't sufficient get the solution that I am after. I could just find a bunch of points that are in view and take the convex hull of those points, but that is not efficient at all.
