Project

General

Profile

TCS Studies

The telescope control system (TCS) maintains a database of telescope position and velocity recorded at 100 Hz. This wiki page contains information found within this TCS database

Please note that this is a work in progress as of late Feb 2013. Please offer feedback and corrections for mistakes made.

Extracting data from TCS database.

This study is focused on the telescope behavior during (and immediately before) each science exposure. A script has been developed that

  1. For a given MJD
    1. Extracts a list of exposure ids, exposure start times and exposure lengths from the DES database (server2 using psycopg2)
    2. For each exposure extract the position and velocity database from the TCS database (using MySQL)
    3. The extracted information includes the 5 seconds prior to the exposure and the entire exposure length.
  2. Note that there is currently a low pass filter used on the TCS data to remove 4 Hz encoder noise. (But original studies were done without the filter).

This initial pass through the data calculates the following information

  1. mean and stddev of the telescope error (set point - actual position) for the entire exposure in both hour angle (HA) and declination (dec) (dec_mean, dec_std, ha_mean, ha_std)
  2. mean and stddev of the telescope error for the 1 second intervals relative to the int(exposure) start second. Intervals are -4.5..-3.5 (p4), -3.5..-2.5(_p3), ..., -0.5..0.5(_f0), 0.5..1.5(_f1) and 1.5..2.5(_f2). (_dec_mean_p4,dec_mean_p3,...,dec_mean_f0,...ha_mean...)
  3. mean and stddev of the telescope error for the first 20 seconds of the exposure (dec_mean_f20, dec_std_f20, ha_mean_f20, ha_std_f20)
  4. mean and stddev of the telescope error for the second 20 seconds of the exposure (dec_mean_s20, dec_std_s20, ha_mean_s20, ha_std_s20)
  5. mean and stddev of the telescope error for the third 20 seconds of the exposure (dec_mean_t20, dec_std_t20, ha_mean_t20, ha_std_t20)
  6. xx, yy, xy moments of the telescope error (xx,yy,xy)
  7. e1, e2, ellip2 and ellip where
    1. e1=xx-yy
    2. e2=2xy
    3. ellip2=sqrt(e1^1 + e2^2)
    4. ellip=sqrt(ellip)
  8. Since the raw guider data is also (mostly) immediately available, gxx, gyy, gxy, ge1, ge2, gellip2 and gellip are also included. Comparing the TCS and guider data is a clear first thing to look at.

For exposures shorter than 2, 20, 40 and 60 seconds respectively both the mean and rms are set to 0.0 for the (*_f2, *_f20, *_s20 and *_t20) variables. Note that the purpose of the 20 second interval values is that the guider is not available for the first 20 seconds but is available for the second (20-40) and third (40-60) 20 second intervals.

TCS information in the SISPI telemetry database.

Currently, all of the above information is fed once per day into the sispi telemetry database and can be accessed at CTIO at [[http://goo.gl/ftAmA]] or from anywhere at [[http://goo.gl/JXVGB]]

Here is the schema of the tcs_telemertry database table.

Here is a link to RMS dec vs day showing great improvement at the end of Feb. 2013 [[http://goo.gl/ftAmA]]

Here is the same plot for hour angle with great improvement at the end of December 2012 and again at the end of January 2013. [[http://goo.gl/f3tam]]

Note: as of April 18, 2013, the DB includes TCS info for dome flats, etc for dates prior than 04/18/2013. Ignore points with very low rms==std.

Here is the (always up to date) plot of hour angle RMS vs wind speed over the last two week. [[http://goo.gl/Auhkj]]

Here is the RMS for 20<t<40 seconds (this cuts for exptime>=40 seconds) declination vs the RMS hour angle from last night [[http://goo.gl/59yRP]]

Here is the RMS for 20<t<40 seconds (this cuts for exptime>=40 seconds) in declination and hour angle vs time for the past 24 hours. [[http://goo.gl/HEtaq]]

Here is the average error for 0+/-0.5 seconds (yyy_f0) from shutter open[^] [[http://goo.gl/V82Jj]]
Here is the average error for 0+/-0.5 seconds (yyy_f1) from shutter open[^] [[http://goo.gl/ONRKl]]
  • [^] note that this is the integer second of shutter open. So if shutter opened at HH:MM:05.4563 then above two plots are (HH:MM:05.0-0.5 to HH:MM:05.0+0.5) and (HH:MM:05.0-0.5 to HH:MM:05.0+0.5) Therefore using the variables (yyy_f1) for studies regarding shutter open time. (Or TCS to telemetry needs fractional second fixed).

CSV files

CSV files are now deprecated. Values are loaded daily (via cron job on pipeproc3.ctio.noao.edu) into the SISPI telemetry database. See prior section
For each day processed, a comma separated file (csv) is stored on the SISPI machines in

ls ~sispi/reil/TCS/csv/
...
2012-12-29.tcs_summary.csv
...

Almost all SV nights/exposures have an associated csv file. In addition to the mean and stddev variables, expid, exptime and mjd (decimal) for each exposure are also stored. To fill in missing data
cd ~sispi/reil/TCS
./tcs_summary.py

With a data format of

cat ~sispi/reil/TCS/csv/2012-12-29.tcs_summary.csv 
expid, dec_mean, dec_mean_f2, dec_mean_f20, dec_mean_f3, dec_mean_p5, dec_mean_s20, dec_mean_t20, dec_std, dec_std_f2, dec_std_f20, dec_std_f3, dec_std_p5, dec_std_s20, dec_std_t20, e1, e2, ellip, ellip2, exptime, ge1, ge2, gellip, gellip2, gxx, gxy, gyy, ha_mean, ha_mean_f2, ha_mean_f20, ha_mean_f3, ha_mean_p5, ha_mean_s20, ha_mean_t20, ha_std, ha_std_f2, ha_std_f20, ha_std_f3, ha_std_p5, ha_std_s20, ha_std_t20, mjd, xx, xy, yy, 
164305, -0.023186, -0.023174, 0.000000, 0.000000, -0.021577, 0.000000, 0.000000, 0.002477, 0.002476, 0.000000, 0.000000, 0.005573, 0.000000, 0.000000, 0.034835, 0.000571, 0.186653, 0.034839, 2.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.141312, 0.141139, 0.000000, 0.000000, -0.050469, 0.000000, 0.000000, 0.030627, 0.030647, 0.000000, 0.000000, 0.194776, 0.000000, 0.000000, 56290.026270, 0.034859, 0.000286, 0.000024,
...
164357, -0.002929, 0.030101, -0.000659, 0.034988, -0.040356, -0.000494, -0.017232, 0.109374, 0.004527, 0.022818, 0.003434, 0.049514, 0.012555, 0.026106, -0.008546, 0.000672, 0.092585, 0.008572, 400.000000, 0.000725, -0.000018, 0.026936, 0.000726, 0.001907, -0.000009, 0.001182, -0.001431, -0.013210, -0.010793, 0.027438, 0.042637, 0.013807, -0.008411, 0.057439, 0.026966, 0.061146, 0.019156, 0.052889, 0.061131, 0.057402, 56290.173729, 0.003317, 0.000336, 0.011862, 
...

Note that for tcs xx=HA and yy=dec (opposite from guider).

Lessons learned

Here are some initial studies using the csv data.

Telescope improvements over the SV period.

The following figure show the std deviation of the telescope pointing error, for the first 30 seconds of each exposure, for all exposures since Nov. 1, 2012 (mjd=56232). It clearly shows that declination pointing has been better than 100 milli arcseconds for the entire period. For hour angle, however, great improvement has been made by the CTIO team. Note especially, that HA performance matches declination performance since around Feb. 1, 2013.

The black dots are all exposures from Nov-Feb. The red dots are a "profile" for each bin in X and the red line a fit to the red dots to show the trend in time. Please be sure to note that the Y-axis is a log scale. As of March 2013, both HA has a nightly average rms of ~ 0.06" and DEC ~0.04". Telescope improvements include enabling the damper motor (Nov 30~56261) and cleaning of oil sweepers (Jan 30~56323).

Here, the distribution of RMS values for each of the four months is shown. Note that dec has improved modestly while hour angle fixes have produced dramatic improvements.

Telescope Settling

By Looking at the mean of the telescope error for the first two seconds of each exposure, we can get a feel for how well the telescope has stabilized prior to shutter open. Please note that the TCS data extraction has a 1 second resolution and while once extracted further improvements in the timing could potentially be done, they are not yet.

The following figure shows the first two seconds mean telescope error for all exposures with exptime>=30 seconds from Nov. 1, 2012 through mid Jan 31 2013.

Looking at only February 2013 on, it is clear that HA is again, much improved and 99+% of exposures are better than 0.2" of requested pointing (set point) in the first 2 seconds of the exposure. However, for declination ~7% of exposures are still more than 0.2" away from desired pointing when the shutter opens.

It appears that late Feb 2013 telescope work fixed the declination problem. Here is a plot for the first week of March.

Guider performance.

The DECam guider currently does not start issuing pointing corrections for the first 20 or 30 seconds of an exposure. By looking at the pointing performance of the first 30 seconds versus (for example) the third 30 seconds, the pointing improvement provided by the guider can be seen.

Here is an example of the first 30 vs third 30 seconds for exposures taken on January 27, 2013. While more evident in declination, it seems clear that the guider makes the stddev of the pointing worse as *_std_f30 < *_std_t30 in most cases.

Here is the daily average "pull" of pull=(first 30 seconds stddev - third 30 seconds stddev). If the guider improves telescope pointing, the third 30 seconds should have a smaller std deviation and the pull should be positive on average. Note that mjd=56320 is January 28, 2013.

It is clear that on average the guider makes the stddev in declination 50 milli arcseconds worse.

Full Time Samples

Attached below are 4 pdf files (2012-11-09.pdf, 2012-11-09.pdf, 2012-11-09.pdf, 2012-11-09.pdf) with time samples for every exposure for the given night. Starting in December, guider data is overlaid.
Below are single examples from each of those days.

Nov. 9, 2012

Dec. 9, 2012 - note that in the first two seconds, the TCS has not arrived at zero.

Jan. 9, 2013

Feb. 0, 2013 - note that the TCS (declination) has a lot of motion but the guider remains centered.

TCS data compared to Guider data

First, recall that for the first ~ 20 seconds of an exposure there is no guider data but there is TCS data. Exposures too short to have any guider data (gxx=gyy=0.0) are removed. Each of the following plots shows xx, yy and xy terms (xx=xerr.var().mean(), yy=yerr.var() and xy=(x*y).mean()). Additionally, e1=xx-yy, e2=2xy and e=sqrt(e1^2 + e2^2) are shown.

First, all data from SV (since gxx and gyy were available) and all exposure lengths. There are many exposures where guider data is available only for a small portion of the exposure...

Now, the same set of exposures but exptime>=60. Here, guider data covers at least half of the exposure.

Now, the same set of exposures but exptime>=120 seconds and 240 seconds.


exptime>=240

Finally, data is restricted to February only (HA=xx=gyy is much improved). 120+ and 240+ second exposures.


exptime>=240

In all cases, it appears that the guider observes significantly more motion than the TCS/encoders see. Guider info appears on the X axis and TCS on the Y axis. A slope of < 1.0 indicates more rms/noise/variability in the guider signal by at least a factor of ~2.

Files