I'm making a program for predicting satellite passes. I'm trying to find out if the satellite is illuminated by the Sun and not in Earth's shadow. I need to know its phase angle: the angle between the observer on Earth, the satellite and the Sun.

Please explain it in simple terms if possible.

(Inserted by reviewer, extension to question, posted originally as answer)

I have TLE data for the satellite (contains right ascension). From that I got ECI position, azimuth, elevation, altitude. For observer I have latitude and longitude and for the sun: elevation and azimuth.

  • 1
    $\begingroup$ What do you have of available data? The right ascension and declination of the satellite? $\endgroup$
    – Tosic
    Commented Sep 18, 2019 at 16:45
  • $\begingroup$ If you're using CSPICE, naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/phaseq_c.html may help -- if not, you could try looking at the source. $\endgroup$
    – user21
    Commented Sep 18, 2019 at 17:26

2 Answers 2


Draw the triangle Sun-Earth-Satellite, we will first find the angle Sun-Earth-Sat.

The angle between the Sun, the observer, and the satellite will be the angular separation between the Sun and the satellite on the observer's sphere. Here is how you could calculate that:

  1. You have horizontal coordinates for both bodies so the easiest way to go from there would be to look at the spherical triangle Zenith-Sun-Sat, the angle at zenith will be the difference between azimuths, and the Zenith-Sun and Zenith-Sat lengths will be $90^{\circ}-h_{Sun}$ and $90^{\circ}-h_{Sat}$, respectively.

  2. Now using the cosine formula for spherical triangles, one may obtain the following formula:


  1. Now use the sine theorem to find the angle E-Sun-Sat (the sine of this angle divided by the sine of the one we calculated will be equal to the ratio of distances from the Earth to the satellite, and from the satellite to the Sun, respectively), and to find the third angle, subtract the two from $180^{\circ}$.

Note: if you do not know the distance from the Sun to the satellite, I am certain you may use the distance from the Earth to the Sun as the error is probably negligible.

  • $\begingroup$ For most satellites, Earth-Sun-Sat is 1 arcminute or less and can be neglected. $\endgroup$
    – Mike G
    Commented Oct 19, 2019 at 4:27
  • $\begingroup$ You can estimate sinx = x, but I wouldn't say you can completely disregard it, that would change the picture altogether ... $\endgroup$
    – Tosic
    Commented Oct 19, 2019 at 6:06
  • $\begingroup$ Assuming Earth-Sun-Sat = 0 adds an arcminute of error to Sun-Sat-Earth. Whether you go to the additional trouble depends on the precision you require. $\endgroup$
    – Mike G
    Commented Oct 19, 2019 at 6:09
  • $\begingroup$ You may be right, it was just way more convenient for me to explain it this way, with all the additional troubles :-) $\endgroup$
    – Tosic
    Commented Oct 20, 2019 at 6:52
  • $\begingroup$ I've adjusted the formatting of your post, can you take a look to make sure this is what you intended? Thanks! $\endgroup$
    – uhoh
    Commented Jun 15, 2020 at 6:40

As long as you have the required ephemerides, which I assume you do given the problem at your hand, doesn't it just suffice to compute the dot product between the satellite-to-sun and satellite-to-observer vectors and thereby get the arccos of the phase angle ? In my point of view, this would be the most straight-forward way.


You must log in to answer this question.

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