Written up by Casey Murray ’25, but only made possible by the curiosity and zeal of a substantially larger group of people over spring and summer 2024!

Download the STAHR Setting Circles Script Here!

Overview

The setting circles on the Michael Telescope allow the user to tell where on the sky they are pointing, so if one starts at a known navigation object they can then find their way to a target that is too dim to find normally. The process is rather complex, so we’ll go through it step by step. As an historical note, the setting circles were used extensively during the early years of the observatory, but they have not been used since the aughts at the very latest.

What is a Setting Circle, Anyway?

The setting circles are the three large, numbered wheels on the Michael Telescope, used to determine your position. As a reminder, professional astronomers use right ascension (analogous to longitude and measured in hours) and declination (analogous to latitude and measured in degrees) to describe the position of objects in the sky.

  • The large ring opposite the telescope itself and marked with numbers from 0 to 90 in one-degree increments is the declination setting circle. The positive and negative signs will be flipped if the declination setting circle is on the east side of the observatory as a consequence of the meridian flipping process. This setting circle is slightly over three degrees off, a systematic error that has been slowly increasing over time.
  • The medium-sized circle on the north side of the observatory and labeled with numbers from 0 to 24 is the right ascension setting circle. The numbers are in units of hours, and the ticks between them are five-minute (1.25 degree) increments. It has a smaller, lower lookalike on the south side of the observatory: do not use that one. This setting circle is a stopped clock: it is right once a day, but because Earth rotates, the right ascension that is overhead at any given time changes and only rarely aligns with the setting circle.

Both setting circles have tick marks that indicate the current pointing of the telescope. As discussed, these numbers do not correspond to the actual sky coordinates of wherever the telescope is pointing, but we do not actually care about that!

Finding a Navigation Object

The first step is to determine which object you want to use as a reference. This should be something that is bright and easily recognizable; don’t use Alnitak if you don’t know where it is. Planets are a great option for beginners. Center the navigation object in the eyepiece and record the “apparent” right ascension and declination on the setting circles. Remember that the signs of the declination axis may be flipped. Make sure the motor is on and that the telescope is in focus. If the finderscope is out of focus or misaligned, contact a STAHR Board member and we will fix it. DO NOT TOUCH THE FINDERSCOPE YOURSELF.

Selecting a Target

Now choose a target! It can be anything… a planet, comet, nebula, star cluster, you name it.

Note however that the Michael Telescope has a limiting magnitude of around ~11 by eye and you will struggle to see anything dimmer. Diffuse objects like nebulae and galaxies have an analogous characteristic called “surface brightness”; it can be tough to see things dimmer than a surface brightness of 11 mag/arcmin2 or so. A list of good targets can be found in Appendix 2.

Determining the Offset

Once you have a navigation object, find its coordinates in the B1950 epoch. This is a key step because the telescope was built and installed when astronomers used B1950 coordinates to describe the positions of objects in the sky; Earth’s axis (which we use to define celestial coordinates) has precessed since then, and astronomers now use J2000 coordinates that have basically undergone a rotation in spherical coordinates. This means that the coordinate offsets between objects in J2000 coordinates are not the same as in B1950 coordinates; the telescope uses B1950 so we must as well. If this is confusing, don’t worry.

The bottom line is that you should not use Stellarium, Google, or Wikipedia to find the coordinates of your navigation object and target. Instead, use the HEASARC Coordinate Converter (generously provided by NASA for free) to find the coordinates of any star or deep sky object. If you are looking for a planet, asteroid, comet, or anything else that moves around the sky, use the JPL Horizons System instead to generate the ephemeris (position of the object when you are observing) in B1950 coordinates. You can also get ephemerides from the Minor Planet Center’s Ephemeris Service and convert them to B1950 using the Coordinate Converter. You need accuracy down to a quarter-degree or so in declination and a minute in right ascension.

Using these systems, determine the B1950 coordinates of both your navigation object and your target(s). From there, it’s just subtraction (in base-60) to get the offset between them. Be very careful, as it is absurdly easy to make mistakes and those will have unfortunate consequences.

Note: using B1950 is the best practice. The difference with J2000 is significant if tracking halfway across the sky, but you can likely get away with using J2000 coordinates to find an obvious deep-sky object close to your navigation object.

Slewing to the Target

Now, you can just add the offset to your navigation object’s apparent coordinates and you will have the apparent coordinates of the target. Write down the apparent coordinates of both the navigation object and the finderscope in the logbook, and physically write out the math so you don’t make a mistake and can double-check your work. Slew until the setting circles match those coordinates — hopefully, you should be there!

Finding the Target

In all likelihood, you were slightly off. That’s perfectly normal: the finderscope’s field of view is barely more than a degree across, and the 35mm eyepiece has a field of view of only 28’ or so. (A DSLR has a somewhat smaller field of view, around 15’ by 10’. Obviously, you shouldn’t be using a DSLR to find the target.) Carefully, slowly move the telescope around to search the area. The finderscope can sometimes be helpful (especially for Uranus), but it’s probably best to just use the eyepiece. 

It’s harder to spot a dim object when it’s moving through your vision, so go slowly and stop often. Averted vision can be useful for deep-sky objects: focus on a star, and the fuzziness of the nebula or globular cluster should pop out. If you can’t find the target, double-check your math, go back to the apparent coordinates you calculed, and try again. Check the star patterns you see against what you should see near the target (Stellarium is a good resource for this).

If you still can’t find the target, it may be because you actually found it but have been waylaid by poor observing conditions. Try again on another night or move on to a different object!

Using STAHR’s Setting Circles Script

There is a Python script available for download here, written by STAHR. It can be run in the command line of any computer with Python and an internet connection to generate the appropriate coordinates and setting circle corrections, allowing you to spend less time dealing with looking up coordinates and doing base-60 math and more time dealing with the telescope. 

To run a Python script, open the terminal and type ‘python’, followed by a space and the path to the script file. Various tutorials for using the terminal can be found online, and Python scripts can also be run through various websites on the internet.

You can add many arguments when running the script, helping streamline or otherwise facilitate your circle-setting experience. In practice, the prompt interface is probably the easiest to use while observing, as one of the best features of the script is its ability to add new navigation objects and targets on the fly. Documentation and other help is provided in Appendix 3.

Appendix 1: History

We know that the setting circles were used extensively in the first several years of the Observatory’s existence. Afterwards, little is known but it seems that they had fallen out of use by the 2010s. It is reasonably certain that they have been a niche pursuit for a long time.

The most recent known program of setting circle use began in spring of 2024 and kicked into high gear in the summer: a small yet mighty group of STAHRgazers, summer school students, and even a few staff and faculty participated in our campaign to iron out the kinks in the system, and we’re excited to share this hard-won knowledge with as many people as possible!

Appendix 2: A List of Good Setting Circle Targets

  • Uranus: an obligatory setting circle destination, the seventh planet of our Solar System is fairly bright and easily distinguished from the neighboring stars as a pale-blue disc! It’s currently near the Pleiades, and makes a great detour.
  • Neptune: a pale-blue dot, the eighth planet can be tricky to resolve into a disc due to turbulent atmospheric conditions and some effort (and often Stellarium or a finder chart) is required to distinguish it from the neighboring stars. But it’s still very neat!
  • Orion Nebula and the Pleiades: you don’t even need the setting circles for these, and they’re easily the most breathtaking deep-sky objects of all. Visit them before you check out anything else on this list — you won’t regret it.
  • Messier 3: a lovely globular cluster for evenings from March through September. Like all globular clusters, it will appear as a fuzzy cloud in the scope; a handful of its half-million stars might be distinctly visible if you’re lucky.
  • Butterfly Cluster, Messier 6: a breathtaking panoply of stars that really do form a butterfly shape in the telescope, this beautiful open cluster becomes visible in the early morning in March and moves into the evening sky over the course of the summer. A worthy target during the spring and summer months, albeit hard to catch before it sets.
  • Great Cluster in Hercules, Messier 13: the finest of all the northern globular clusters, viewable in the evening from April through November. It has about as many stars as M3, but they are more tightly packed and the cluster is closer to us, making it seem brighter.
  • Great Cluster in Pegasus, Messier 15: while not quite as bright as M3 or M13, it still holds its own and is definitely worth a visit at some point from July through January.
  • Andromeda Galaxy, Messier 31: the closest major galaxy to our own, Andromeda is visible through the telescope as a bright central blur that rapidly fades off. Unlike with globular clusters, you won’t see any individual stars — it’s two million light-years away! It’s a good evening target from September through March.
  • Spiral Cluster, Messier 34: a delightful open cluster that really does look like a spiral, this beauty is viewable in the evening from September through April.
  • Ring Nebula, Messier 57: the husk of a dying star, the Ring Nebula is visible from May through December as a clearly ring-shaped cloud. It’s not colorful like it is in pictures, but just try hooking up a DSLR…
  • Double Cluster in Perseus, NGC 869 / 884: a beautiful pair of star-filled open clusters only a moon’s width apart from each other, these are a fantastic destination at any point from September through March.

Appendix 3: Circlesetter.py Documentation

The STAHR setting circles script can be run entirely with the command line, entirely through the prompt interface, or through a combination of the two. It is a very powerful tool for finding targets (it looks up B1950 coordinates for you!) and it greatly reduces the potential for human error when it comes to determining the offsets between navigation objects and targets.

The following is a list of the possible command line arguments. They can be called in any order, and they are all entirely optional. Call them with dashes, e.g. python circlesetter.py -np

  • np no prompt: if you use this argument, the prompt interface will not come up.
  • n [navigation object] any number of objects following this argument will be loaded as navigation objects, helpful when setting up.
  • t [target] any number of objects following this argument will be loaded as targets.
  • time [YYYY-MM-DD HH:MM] the UT observation time. Will be used as the time if you load in a planet or other Solar System object. You can also just use “now”, which will use the current time.
  • w [file] save output to a specified file, either automatically if used with np or after quitting from the prompt interface.
  • m calculate lunar distances after loading navigation objects and targets
  • u [file] [navigation object] [0h0m+0d0m] given the apparent position of a navigation object, will calculate the coordinates of every target as they would appear on the setting circles. If provided a file, will update that file with apparent positions; the specified navigation object must be in said file, and if no navigation object is specified will use the first navigation object in the list. If no apparent position is provided, will load the listed navigation objects and targets into the system. If not provided a file, will use the specified navigation object (which must be passed in separately with n) to calculate apparent coordinates for every target.
  • v verbose: if np is called, will print outputs to the terminal like the prompt interface would. If np is called without also specifying a save file with w, this is the only way to see results.

The prompt interface is a system for doing most of the above actions in a more open setting. It allows adding targets and navigation objects on the fly, and for calculating and re-calculating apparent positions as many times as needed (very useful if you need to meridian flip, which will throw off all pre-existing apparent coordinates!). The commands are as follows:

  • n switch to navigation object mode. If you enter a new object, it will be loaded into the system as a navigation object.
  • t switch to target mode. If you enter a new object, it will be loaded in as a target.
  • p print a list of all navigation objects and targets. If you have not provided apparent coordinates for a navigation object yet, it will print each target’s offsets from every navigation object; if you have provided apparent coordinates, it will print out the apparent coordinates of every target.
  • c clear all currently loaded objects from the system.
  • m calculate lunar distances after loading navigation objects and targets
  • u calculate the apparent coordinates of every target. You will be prompted for a navigation object to use (default is the first one in the list) and the apparent coordinates of said navigation object.
  • r remove a previously loaded navigation object or target
  • s save the output to a file (you will be prompted for a file name). Said file will be overwritten, so beware. This is not necessary if you previously called w in the command line, as the output will be saved after you quit.
  • q quit the prompt interface.

If your input to the prompt interface is not resolved as a command, the script will try to resolve it as an object in the sky. This process works the same through the command line and the prompt interface: the system will check various databases to see if it matches an object in the sky. If it determines that the object matches something in the Solar System, you will be prompted for an observation time unless you specified the time argument in the command line.

For the prompt interface only, asteroids like Ceres can be searched using their minor planet designation followed by a colon (so “1;” for Ceres). Object names must be one-word when used in the command line: python circlesetter.py -n Vega -t Ring Nebula will confuse the script, while just feeding in Ring Nebula to the prompt interface will work. Comets should be searched by their designation: “13P” for 13/P Olbers, for instance.

Various usage examples now follow.


python circlesetter.py

Vega

t

Ring Nebula

1;

s

q

Load Vega as a navigation object (the prompt starts in navigation mode by default), then switch to targeting mode and load in the Ring Nebula and 1 Ceres before saving the output to a file (the default is output.txt), printing the output in the terminal, and quitting. For Ceres, you will be prompted for the observation time; the default is midnight UT on the current UT date.


python circlesetter.py -n Vega -t M57

Load Vega as a navigation object and the Ring Nebula as a target (objects must not have spaces here, so use the Messier designation) before starting the prompt interface.


python circlesetter.py -n Antares Arcturus -t M3 M6 M13 -w output.txt -np

Load Antares and Arcturus in as navigation objects and M3, M6, and M13 as targets, then save the results to a file called output.txt and quit without starting the prompt interface.


python circlesetter.py -u output.txt Antares 12h3m-23d0m

If Antares is at an apparent position of 12h3m -23°0’ on the setting circles, update the file output.txt with the apparent positions of every target as long as Antares is included in the file as a navigation object.


python circlesetter.py -n Jupiter -t Mars Uranus Saturn -v -np

Find the position of Jupiter, and then those of Mars, Uranus, and Saturn relative to Jupiter. You will be asked for an observation time for Jupiter, which will be remembered for subsequent objects. The script will then print the results and quit without starting the prompt interface.


python circlesetter.py -n Antares -t Ceres -time 2024-07-20 07:00

u

Antares

12h3m-23d40m

p

Load Antares as a navigation object and Ceres as a target before starting the prompt interface. It will then update the system with the apparent coordinates of Antares (12h3m -23°40’) and print out the updated coordinates of Ceres as of 3am EDT on July 20.


python circlesetter.py -u output.txt -time now

Load everything listed in output.txt into the system for further manipulations in the prompt interface. Regardless of when the file was made, will determine the objects’ current positions. Recommended if you have a pre-made observing plan that you want to run through!


The script is sufficient for its intended purpose and we do not anticipate putting any more effort into developing or maintaining it, but if you add a neat feature or catch a bug, please do let us know at stahrgazers@gmail.com! Feel free to modify and share the script as much as you like, but if sharing it please do credit STAHR.