I am writing a small Julia app to get my feet wet in that language. And I want to calculate "what's up tonight" based on a table of right ascension (RA)/Dec(lination) (table of stars), a terrestrial point of the observer, and the current date/time.

My starting point is understanding at what rate does RA change for a given Deep Sky Object (DSO), I would appreciate some guidance here.

  • 2
    $\begingroup$ RA and Dec do not change for objects outside the solar system in a manner that it matters (much). Planets and the Moon and the Sun of course move - but that varies a lot, depending on what you look. You probably mean to ask about the change of azimuth and altitude (not RA and DEC) for objects. $\endgroup$ Jun 17, 2021 at 21:46
  • $\begingroup$ I think the question refers to the change in local sidereal time (LST) which is 24 hours of Right Ascension in 23 hours 56 min 4.091 sec (if my memory is correct). $\endgroup$
    – JohnHoltz
    Jun 18, 2021 at 0:45
  • 2
    $\begingroup$ Welcome to astronomy SE! I edited in a few links to define the abbreviations (for newbies and search engines), and I added two tags as well. Good luck with learning a new programming language, that's always fun! $\endgroup$
    – B--rian
    Jun 18, 2021 at 6:37
  • $\begingroup$ Thank you, B--rian. I noted your edits and will use that as a guide going forward. $\endgroup$
    – Ray Walker
    Jun 19, 2021 at 18:32

2 Answers 2


Answer to your question

RA changes just a little bit through time (because of minor effects like parallax), but we can just say it is constant for a specific non-Sun star. Same applies to declination. Why is that? The declination and right ascension of vernal equinox (where the Sun is in March) is defined to be 0°. This point is fixed with respect to other stars. Thus, the declination and right ascension are (almost) constant for some star. That's why we like to use it. But note, that these coordinates are changing for Solar System objects.

How should your program look like

For you calculation, we need to understand what is sidereal time. This is just angular distance of vernal equinox to the celestial equator. If Sun were to have same declination and right ascension through the year, one sidereal period would be same as one solar day. But Sun's right ascension changes slowly through time, so one sidereal period is just a little bit off the solar day. If we think carefully, Sun makes one circle on the right ascension in one year, thus there are around 366.25 sidereal days ("star days"), but just 365.25 solar days. One sidereal day is thus around 23 hours and 56 minutes. We will need that concept later on.

We have to define new concept here: the hour angle. This is basically the angular distance of some point to the celestial equator. For the vernal equinox, the hour angle is always just sidereal time $\Theta$ (by the definition). We can simply derive this relation for any object:

$$h = \Theta - \alpha$$

where $\Theta$ is current sidereal time, $h$ is the hour angle, and $\alpha$ is the right ascension.

But how could you determine if the object is above the horizon? You can use simple equation:

$$\cos{h}=-\tan{\phi}\tan{\delta}$$ for the hour angle, where the object sets. $\phi$ is the geographical latitude, $\delta$ is the declination of the object. Note that some objects never set or rise, thus you need to check this before you apply $\arccos{x}$ which is defined only in the domain [-1,1].

Now you need to determine the sidereal times when this is visible. Just use $h = \Theta - \alpha$ for $\Theta$. The $\Theta$ you get is the time of the set of the object. Let's denote it with $\Theta_{set}$. The object culminates at $\Theta_{culmination}=\alpha$, but when does it rise? At $\Theta_{rise}=2\Theta_{culmination}-T_{set}$. Thus, for the object to be seen, the current sidereal time must be $\Theta_{rise}\leq \Theta_{current} \leq \Theta_{set}$. You see, that the sidereal time when the star is visible is independent of the current solar date and time. (Note that you must also handle the situation where the sidereal time of rise is for example $23^h50^{min}$ and the time of set is $2^h20^{min}$. No number is larger than the first and lower than the second; I recommend you that in this case just add 24h to the second number.)

Note that this is only the sidereal time at some geographical longitude $\lambda$. For the sidereal time at Greenwich, you need to calculate $\Theta_{Greenwich}=\Theta_{local}-\lambda$. Make sure that they are both in same units. (Right ascension is normally given in hours, minutes and seconds.)

Now we have to just recalculate the sidereal time to solar time. Let $n$ be the number of days since the vernal equinox. We can now get the solar time $t$ using (of course, use more precise number than 4 min): $$t=\Theta - 4\rm\, min \cdot n$$ Now, we can just say that the time must be between: $$t_{rise}\leq t\leq t_{set}$$ for the object to be above the horizon.

The final thing is just to add some number of hours to the Greenwich time to include time zones.

More concise version:

  1. For some declination and right ascension, calculate the hour angle of set.
  2. Calculate the local sidereal times of rise and set.
  3. Recalculate the local sidereal times to Greenwich.
  4. Calculate the solar time at Greenwich of rise and set.
  5. Add some hours for time zones.
  6. Determine whether the selected time is between these two numbers.
  • 2
    $\begingroup$ Perfect. It'll take me a bit of time to work through this, but it's exactly what I was looking for. I appreciate your time writing this up. Thank you. $\endgroup$
    – Ray Walker
    Jun 19, 2021 at 18:34
  • $\begingroup$ For the Right Ascension, do I use the J2000 RA or the "on date" RA? (This is the origin of my assumption that I would need to know the RA rate of change in order to calculate the On Date RA.) $\endgroup$
    – Ray Walker
    Jun 21, 2021 at 19:27
  • 1
    $\begingroup$ @RayWalker The J2000 RA negligiblly differs from the "on date" RA (change is majorly due precession). For your use (whether the object is visible) you don't have to bother about this. If you are given the "on date" RA, use it, but you are fine with J2000 RA as well. Except if you want to make predictions 2000 years in the future, but then you would also need to include some additional corrections regarding time transformations. $\endgroup$
    – User123
    Jun 21, 2021 at 20:57

On the vernal equinox, first day of spring, the zero reference point for right ascension was directly overhead at 9:37 UTC this year. It has been advancing westward at a rate of 360/365.25 degrees per day at 9:37 since then. So, on the first day of spring you will see objects with a right ascension of 12 hours overhead at 21:37. On the first day of summer objects with a right ascension of 18 hours will be overhead at 15:37. Your latitude and the object's declination don't enter into seasonal variations. You can use local standard time if you don't mind being off by a few degrees.

  • $\begingroup$ Ah! I get it now. Thank you. $\endgroup$
    – Ray Walker
    Jun 18, 2021 at 15:54

You must log in to answer this question.

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