I want to determine the time interval during which a ground user is in the coverage of a particular LEO satellite. I only have knowledge of the user's geographical location and the satellite's TLE (orbital) information.

As per my knowledge, we can extract the satellite's geographic location at any timestamp from the TLE information, thereby calculating the elevation angle between the satellite and the user. From some sources, I got to know that the user can be assumed to be in the coverage of the satellite if the elevation angle is above 10 degrees. However, in this manner, I will need to continue to calculate the elevation angle for future timestamps until the elevation angle goes below 10 degrees to determine the coverage time which is not very efficient.

Is there any other better way to calculate the coverage/service time for a user with respect to a LEO satellite given the above information? Thanks in advance.


1 Answer 1


That's the main idea, but you should keep in mind that 10 degrees elevation is by no means universal: some sensors can go nearly down to zero degrees, while others may need more than thirty degrees. The trig for doing it by hand can be found at Revisit time estimation for a SAR constellation, but those images assume perfectly circular orbit and Earth surface, and the formulas don't include the required extra terms for passes that don't go directly overhead.

If you've got TLEs, then although it is still valuable to understand the principles behind the calculation, you should not derive it yourself, because SGP4 will just give you a list of elevation angles as observed by any latitude, longitude and elevation. A LEO satellite usually makes a dozen or more orbits per day, so in general you will see the same vehicle on different parts of neighboring orbits, and then not see it at all for a bunch more orbits.

  • $\begingroup$ Thanks for the insights. However, I was wondering whether there is any other way of calculating coverage time apart from the brute force way as I mentioned in the question. I guess may be not, still just ensuring. $\endgroup$ Sep 28, 2023 at 3:26
  • $\begingroup$ @BlackDagger The linked answer shows you how to calculate an exact answer with trigonometry, but only in special cases, in particular for perfectly circular orbits. For the general case, brute force computation is the best way. Use the state vector and the appropriate propagator to create a list of elevation angles at some small time separation, and then interpolate between the nearest points in the list. $\endgroup$
    – Ryan C
    Sep 28, 2023 at 16:26
  • $\begingroup$ Awesome Ryan! Thanks a lot! Now it is much clearer! $\endgroup$ Oct 3, 2023 at 15:54

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.