To find the best observation time for an object, I'd like to calculate the time when it is 30° or more above the horizon. Local Sideral Time would be sufficient.

To include that in my program, I need the formula.

Example: On June 4th, Jupiter has the coordinates RA= 9h 19m 28.0s Dekl= 16° 32' 0"

It rises at 10:32 and sets at 00:05.

After rise, when is it at altitude 30°, and after transit, when is it at altitude 30° again ?

I found this formula at http://www.stjarnhimlen.se/comp/riset.html. Although it's for the sun, it seems to be what I'm looking for.

$$\cos (\text{LHA}) = \frac{\sin (\text{h}) - \sin (\text{lat}) \times \sin (\text{Decl})}{\cos (\text{lat}) \times \cos (\text{Decl})}$$

Applied to the sample assuming a latitude of 45° I get.

Sample caluclation
Is this the correct approach?

  • 1
    $\begingroup$ Check out catserver.ing.iac.es/staralt. $\endgroup$
    – pela
    Commented Jun 4, 2015 at 9:01
  • $\begingroup$ Thanks, but I need the formula, not a tool. $\endgroup$
    – ratlan
    Commented Jun 4, 2015 at 9:04
  • $\begingroup$ The earth rotates 15 degrees every hour. $\endgroup$
    – andy256
    Commented Jun 4, 2015 at 12:41
  • $\begingroup$ 15 degrees per hour: That's one part of the formula. $\endgroup$
    – ratlan
    Commented Jun 4, 2015 at 12:52
  • $\begingroup$ I think you'd better explain what you know about the object(s) you want to observe. It's not at all clear what it is you don't understand. Given the coordinates of an object and the date, time, latitude and longitude, these are straight forward coordinate translations. $\endgroup$
    – andy256
    Commented Jun 4, 2015 at 12:59

3 Answers 3


Yes, this is the correct approach. The $h$ in the equation is the altitude above the horizon of the object at which you consider it to be rising or setting. This is typically non-zero, because of atmospheric refraction, and, in the case of the Sun or the Moon, because of their finite diameters. In your case, the object 'rises' when it climbes above $h=30^\circ$ and 'sets' when it drops below that altitude.

If $\left|\cos(LHA)\right|>1$, there is no solution, because your object never crosses the $h=30^\circ$ line. $LHA$ is the local hour angle, and you can find the local sidereal time $\theta$ using

$LHA = \theta - \alpha,$

where $\alpha$ is the right ascension of your object.


The answer is there on the stjarnhimlen.se site and also stargazing.net.

Now we can compute the Sun's altitude above the horizon:

sin(h) = sin(lat) * sin(Decl) + cos(lat) * cos(Decl) * cos(LHA)

h=Altitude=30$^\circ$, LHA = Local Hour Angle, lat= Your latitude on Earth, Decl = Object's declination, Ra = Object's right ascension, and LST = Local Standard Time. Just need to solve for LST.


You're not saying what programming language you're using. If it's Python, or if you could link Python libraries from it, then PyEphem would provide everything you need.



You must log in to answer this question.

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