ING Banner
Home > Astronomy > Site Quality > Atmospheric Seeing at ING > Software of RoboDIMM

· StarTel
  (in Dutch)

  (in English)
· Email addresses
  (contact StarTel)

· Robot
· Server
· Database


The Software for RoboDIMM

The decision to outsource (subcontract) the software for RoboDIMM was in line with the "off-the-shelf" philosophy of the RoboDIMM project. It is also understandable because good quality software is the most critical and labour intensive component.

Collaboration with the contracted company, StarTel (Netherlands), has proved very successful. A fully functional program was delivered on time and StarTel keeps regular contact to offer improvements to the system and to gain ever more experience. See the links for contact details.

An important part of the subcontracting process was agreeing which functions the software should have and which it would not, mainly decided by RoboDIMM's operational procedure. The implementation is outlined in main features below, followed by a simplified description of the most important processes, each linked from the tables on the right.

Note: The programs were written in C++ on a RedHat Linux (PC) platform.

Main Features


The main program for automatic monitoring. A collection of routines that control each of  the processes essential to measuring the seeing. The robot runs some processes continuously in the background (Time keeping and Logging), while others are executed in sequence: from Finding the star and measuring CCD frames, to parking the telescope safely at the end of the night.


Administrates telnet sessions, setting up a command prompt by which the user can either start automatic monitoring (the 'Robot' program) or send commands to run sub-routines of that program ('manual' mode). The server also writes status messages, logs and sends warning emails to the user.

The Robot requires the server to be running, but the user normally exits it at the end.

GUI - Graphical User Interface

Not essential to running the monitor, but makes it easier for the user by bringing together all the important control functions and status information. Controls the Robot through a telnet session, including command buttons. Continually updates display of the 4 seeing measurements, telescope parameters, targets available, the latest image available from the CCD and the currently active sub-process.


Once checked by the filter routine, the measurements and relevant simultaneous data are stored in a database on the RoboDIMM PC.

The database records the following data: UT at midpoint of seeing sample, the catalog number for the star, its listed V magnitude, the mean peak counts of thbbe horizontal and vertical image pairs, the telescope observing elevation, the CCD readout subwindow width, its height, the 4 FWHM measurements (hL, hT, vL, vT), the number of images sampled, the number used to measure motion statistics, the profile shape index and a validity flag.

The database can be queried using PostgresQL.


Time keeping

This runs continuously in the background, ensuring that the PC and telescope keep accurate time by connecting with the ING time service computer and internet time services. This is essential for accurate telescope pointing as well as time-stamping each measurement in the database.

When the program starts, it writes the updated UT and ST to the telescope onboard memory. It also writes the current telescope position to memory, by assuming this is at north pole park position, i.e. RA=ST,  Dec=0. Start up and shutdown of the observing procedure are scheduled according to the calculated times for sunrise and sunset.

The program choses to abandon one target and slew to the next based on the calculated airmass, which again depends on time keeping. 

Chosing a target

The program regularly updates which targets from its catalogue file (the SAO catalog) are available to it, i.e. within a certain (configurable) distance of zenith and within a (configurable) magnitude range.

By default the magnitude range is V=2 to 4, but if a star is lost during  observations, the program assumes it is due to cloud and switches to magnitude range V= -0.9 to 3 ('cloudy profile').

The currently available stars are assigned a priority that depends both on the amount of time they are above the zenith distance limit (their 'uptime') and their (catalogued) magnitude.  A longer uptime generally assigns greater priority than a brighter magnitude, but in 'cloudy profile' the stars are listed in strict order of descending magnitude.

To further increase time spent taking seeing measurements, the same object is observed until its zenith distance becomes greater than the set limit (30 degrees). Then the telescope is moved to whichever star is is at the top of the prioritised list as updated at that  time. Thus a star is usually followed for typically 3 hours, from near its lowest limit in the east, through the meridian to its lowest point in the west.

CCD Exposures

In fact, several processes use CCD exposures in different ways:  locating the star and focusing the telescope use full-frame readout, while the CCD is windowed  to take the sample images for seeing measurement. All processes use the SExtractor program to extract star centroids from the (FITS) images and to measure (by index) the shape (ellipticity) of the stellar patches. The output from SExtractor is used to filter out bad images - e.g. the 10ms exposures in the seeing sample must each return exactly 4 centroids to be counted as valid.

The seeing sample takes 200 images (the number is configurable) and the process currently lasts typically 2.5 minutes, depending on the window size. The window size and position are adapative and depend on the mean bulk image motion (as opposed to the differential motion). These in turn are affected by the amount of wind buffeting and the telescope tracking (drift).

Locate Target

Once the telescope stops slewing and arrives at the target position, control is returned to the program which initiates the search sequence: First a series of 4 full-chip exposures are taken at the initial target position, with increasing exposure tim, in case of cloud. If at least one star image is returned by SExtractor, the program causes the telescope to be moved in order to place the target in the center of the CCD, repeating exposures as necessary.

If no star image is returned by SExtractor, the program initiates a standard spiral search pattern, known as a Mosaic. This consists in moving the telescope by a step size just smaller than the field size (2.8 × 3.8 arcminutes approx.) first in one axis and then the other, taking a series of exposures at each position, until a star image is found. The immediate search is carried out in areas adjacent to the intial position, and then spirals out to include areas adjacent to these. If the telescope park position was correct at the beginning of the night, this results in the star being found within a few minutes.

If no star is found even after the search area reaches its set maximum size, a warning is emailed to the user and the telescope is parked.


The seeing estimate is derived from the statistics of centroid positions in the sample of multiple 10ms exposures. Unsuitable exposures are filtered out by using SExtractor to detect blended, elongated, oversized or saturated images, insufficient flux or cosmic rays. A minimum of 4 star images must be found and 70% of the sample exposures must be valid for the series to be used.

The four star images formed by RoboDIMM are in the shape of a cross (+). The centroid data returned by SExtractor for each valid exposure are used to calculate distances between the horizontal and vertical image pairs. The distances in x and y directions on the CCD are calculated separately, giving a total of four distance measurements for which the variance is calculated. These variances consistute two estimates each of "transverse" and "longitudinal" image motion, which are used to calculate corresponding estimates of seeing FWHM. More detail.


When the system is in focus, the cross shaped image is symmetrical - the distance between the horizontal and vertical image pairs is symmetrical. During tracking the focus is known to wander due to flexure in the primary mirror position, causing the image to become asymmetrical. The average distance is measured from several seeing samples (the distance varies between exposures because of the seeing) and is checked for symmetry. Once the asymmetry oversteps a set limit, the electronic focuser is moved by the amount required to correct the focus deviation. There is no special check of the result, but the symmetry continues to be monitored in sucessive seeing samples.


An important feature of the software in the debugging stage, it also allows the status to be monitored.  

Top | Back

Contact:  (RoboDIMM Project Scientist)
Last modified: 18 December 2010