RXTE Attitude Anomaly of September 6-12, 2000

Craig Markwardt

(Tod Strohmayer contributing)

Oct 2001


The RXTE spacecraft experienced an attitude "anomaly" during the time September 6-12, 2000. The spacecraft was mis-pointed between 0 - 55 arcminutes, which may impact the science goals of the observations during that time. Guest observers should be aware that the original attitude data they received with their observations may appear to be correct but are not. Newly corrected files are available from the RXTE GOF which recover almost the full precision and accuracy of standard attitude data, to within 0.5 arcminutes. Users with observations in the following time ranges are affected:

   September 6, 2000 15:11 UT - September 12, 2000 22:06 UT
   MET 210870664 (c91a188)    - MET 211413960 (c99ebc8)
   MJD 51793.63269            - MJD 51799.92083


  1. Abstract
  2. Introduction
  3. Description of Anomaly
  4. Science Impact
  5. Corrective Actions
    1. Corrected ACS Files
    2. Accuracy of Correction
    3. Action in the MOC
  6. Conclusions
  7. Appendix: Time line of Anomaly
  8. Appendix: Observations and PIs Affected by Anomaly
  9. Appendix: Technical Details
    1. FDF Ground Solution
    2. Technique to Filter
    3. Technique to Interpolate
    4. Verification
    5. Programs and Data Used


The Rossi X-ray Timing Explorer was launched in December, 1995, primarily to study fast timing and variability of compact astrophysical X-ray sources. On board there are three scientific instruments, the Proportional Counter Array (PCA), the High Energy X-ray Timing Experiment (HEXTE), and the All-Sky Monitor (ASM).

Picture of RXTE in orbit around earth

Figure 1: Picture of RXTE in orbit

One of the design goals of RXTE was to be able to slew rapidly to new targets of opportunity, and to maximize the observing efficiency of its low earth orbit by slewing away from targets when they have become occulted. The attitude control system (ACS) of the spacecraft provides mechanisms to measure and control the spacecraft attitude. The attitude determination and control hardware of the spacecraft consists of one onboard computer (OBC), two three-axis magnetometers (TAM), eight coarse Sun sensors (CSSs), two digital Sun sensors (DSSs), three two-axis inertial reference units (IRUs), two charged-coupled device (CCD) star trackers, two three-axis magnetic torquer assemblies (MTA), and one four-wheel reaction wheel assembly (RWA).

The gyros and star tracker cameras provide complementary information. During spacecraft slews the gyros provide attitude information relative to the gyro principal axes. At the end of a slew the spacecraft begins to settle into its final attitude (so called inertial hold mode). The star trackers attempt to acquire stars that are expected in the field of view. This set of expected stars is drawn from an on board guide star catalog. By referencing the observed guide star positions to their expected positions, the spacecraft attitude matrix can be updated via a Kalman filtering procedure, and the pointing direction is stably maintained in an inertial coordinate system.

The two star tracker cameras boresight directions are offset by 10 degrees in order to determine all components of the spacecraft attitude unambiguously. Each star tracker can track a maximum of four stars. There is a fifth "slot" in each tracker which scans the complete 8 deg x 8 deg field of view, and measures all bright star positions, but with a lower duty cycle. When no stars are acquired, a spacecraft alert is set to the MOC. The trackers do not always acquire all the stars that are expected from the catalog database (known as the "loss of track" problem").

Description of Anomaly

On September 6, 2000, 15:16 UT, after completing a spacecraft slew, star tracker 1 (ST1) did not acquire any of the four expected guide stars, and ST2 acquired three of its four expected guide stars. This is the beginning of the attitude anomaly.

Plot showing ST2 field of view and commanded guide star slots

Figure 2: (upper) Image of field around osc2523; (lower) ST2 field of view and commanded guide star slots

Of the three expected guide stars acquired by ST2, one of them has a near neighbor. The star and its neighbor are osc2523 and gsc3640-649, which are separated by 3.5 arcmin. At RXTE launch gsc3640-649 was not in the guide star catalog. While gsc3640-649 is nominally fainter than osc2523, it is a variable star, and on September 6, 2000, it was brighter than osc2523. The most plausible explanation of the anomaly is that gsc3640-649 was mistaken for osc2523. Because ST1 did not acquire any stars, the spacecraft attitude was poorly enough determined that the misidentification was not rejected and the Kalman filter coefficients became corrupted.

Deviation between spacecraft ACS solution and true spacecraft attitude
(click for enlargement | PS file)

Figure 3: Deviation as a function of time, time expressed in days of the year 2000. "Corrected vs. uncorrected" here refers to the deviation between the spacecraft-derived ACS solution and the ground-derived solution. Outside of the anomaly the deviation is zero.

Until the spacecraft attitude was manually re-commanded, no further guide stars were acquired. Thus, the spacecraft was essentially flying "blind" with respect to the inertial coordinate system. Beyond that point in time the actual spacecraft attitude began to deviate from its commanded attitude. The deviation can be characterized by a rapid drift from 0 to 15 arcmin within a few minutes on Sep 6, 2000, followed by a more gradual drift from 15 to 55 arcminutes from Sep 6 through 12, 2000.

By the time the deviation became ~40-50 arcminutes, the ASM was no longer finding astrophysical sources where it expected them to be, and alerts were generated in the RXTE SOF. Ultimately the spacecraft attitude was corrected twice on September 12, 2000, by uploading a new attitude solution from the ground and normal operations resumed. An RXTE alert, "no Kalman filter updates," was transmitted to the RXTE MOC at the beginning of the anomaly but for certain reasons it was not detected. By September 12, 2000, 18:00, the internal spacecraft attitude was corrected, and normal operations began again.

See the Appendix for a more detailed time line of the anomaly.

Science Impact

About 125 science observations took place during the anomaly (see Appendix). However, the science instruments on board the spacecraft operated normally, so there is reason to believe that scientifically useful information can still be extracted from their data.

The spacecraft attitude solution was corrupted. This solution was telemetered to the ground and converted to FITS ACS file apid 14 in each observation. Each of these files is found in the "acs" subsystem directory, and begins with "FH0e_..." The practical upshot of this problem is that the spacecraft was not pointed at the desired position in the affected observations. There is no a priori way to know this because the spacecraft ACS solution "appears" to be correct. If users apply a filter file selection such as "OFFSET .LT. 0.05", they will in fact select the on-source data, but the true offset will be larger.

A significant result is that sources observed by PCA will be fainter than expected. The PCA collimator response is approximately 10-15% even at the maximum deviation of 55 arcminutes, so all sources intended to be observed "on-axis" should have some level of effective exposure. However, with less than 100% response, the faintest sources may fall below the noise level. The mean deviations for each observation appears in the Appendix; a rough rule of thumb for computing the collimator efficiency is 100% x (1 - (dev/65)), where dev is the deviation in arcminutes. Also, it is possible for another bright source near the target to add contaminating X-ray flux to the desired target. These issues will have to be addressed on a case by case basis by guest observers and archive researchers.

The intensity of sources seen by HEXTE may also be reduced. Also, because HEXTE background subtraction is performed by rocking the instruments on- and off-source, it is possible for the desired source to appear in one of the "off-source" positions. Great care must be taken in background subtraction.

For both PCA and HEXTE observations, to perform the correct data selections and analyses, the user must retrieve newly corrected ACS files from the RXTE archive (see below). See Appendix for a list of affected observations.

To date the ASM team has not provided solutions for the Sep 6-12, 2000, time period.

Corrective Actions

Corrected ACS Files

As mentioned above, each of the star tracker cameras has a fifth "slot" which scans the entire field of view for the brightest stars and their positions. In most cases it was possible to derive a solution of the spacecraft attitude using this data. This ground-derived solution was constructed by collaborators at Goddard FDF and Computer Sciences Corporation.

Using this ground solution it was possible to apply a correction to every file during the affected time interval. (See Appendix for a more detailed discussion.) These new files are now, or will soon be, available in the RXTE HEASARC archive, and to individual guest observer principal investigators on a request basis.

The corrected attitude files have the same format and appearance of the original file, and can be used as drop-in replacements. However there are a few small differences. The corrected files have added FITS HISTORY keywords that describe the correction that was applied. Also, the following keyword appears in each of the corrected files:

   ACSCORR =                    T / ACS errors are corrected

For data taken during the period of the anomaly, users should verify that the ACSCORR keyword is present in their apid 14 files (acs/FH0e_*). The old uncorrected data is still available, but renamed with an "orig_" prefix.

It is also anticipated that the RXTE filter file generator XTEFILT, might be outfitted with code to detect observations that occurred during the anomaly and refuse to process them unless the corrected attitudes are present.

In some ways the user should be able to proceed with the standard analysis procedure using the corrected attitude files. However, users should be aware that there is a non-zero offset pointing between the target direction and the actual pointing direction. Thus, the standard maketime selection criterium for determining on-source times, "OFFSET .LT. XXX", will no longer be appropriate. Users will need to determine what the actual offset was empirically, either from their data, or at a crude level from Figure 3 or the Appendix. In some cases the attitude deviation changed by an appreciable amount during a single observation, especially during September 6, 2000, and on September 11-12, 2000. Users should be aware that this will cause the intensity of their source to vary during the observation as well.

To obtain more precise flux measurements, users should compute the PCA collimator correction. For spectral analysis this is done automatically with the FTOOL named XPCARF during the response matrix generation (however, the "jitter" parameter may have to be increased from the default of 20 arcsec because of the spacecraft drift). A similar computation must be done for light curves.

Accuracy of Correction

It is claimed by FDF and CSC that the ground-derived corrected attitude data should be accurate to within 30 arcsec ( = 0.5 arcmin ) of the true spacecraft attitude. Although I was required to do some filtering of the FDF data to remove some obvious outliers, I believe this 0.5 arcmin accuracy claim to be more or less correct.

The accuracy of the solution has been verified in a number of ways. As mentioned above, for a pointed observation of a source of unknown flux, it is almost impossible to determine whether the attitude solution is in error or not. This is because it is very difficult to know whether a change in measured X-ray flux can be attributed to intrinsic variability of the source, or whether it is due to offset pointing.

I have examined a PCA scanning observation that took place during the attitude anomaly (September 8, 2000, 04:14 UT). In these observations the RXTE spacecraft is slewed across a large region of sky in the galactic center region in order to search for new transient sources and monitor existing ones. The output of the observations consists of a PCA light curve. As a source is scanned over by the PCA, it enters and leaves the PCA collimator response, and a peak in the light curve is expected. If the attitude data were wrong, the observed peaks would come at the wrong points in time. Figure 4 shows a light curve with both the uncorrected and the corrected attitude data.

Bulge light curve w/ uncorrected attitudes
(click for enlargement | PS file)
Bulge light curve w/ corrected attitudes
(click for enlargement | PS file)

Figure 4: Comparison of uncorrected and corrected attitude data in a PCA scanning observation during the anomaly. The thin histogram is the observed PCA light curve, and the thick curve is a model light curve based on known source positions.

Each thin horizontal panel consists of two scans with the PCA across the galactic center region. With the uncorrected attitude data (top), the observed sources are displaced from their expected positions. With the corrected attitude data the sources appear in the correct position. The resulting fit residuals, using the corrected attitude data, are less than 1 ct/s/PCU in the 2-10 keV band, which is comparable to the residuals seen in normals scans unaffected by the attitude anomaly. Scanning observations are sensitive to source position to within 1-2 arcminutes, so this is a pretty good test of the accuracy of the solution.

Tod Strohmayer has also examined an observation of the Crab Nebula during the anomaly (September 11, 2000, 21:11 UT). This observation occurred at the very end of the anomaly where the deviation was almost 55 arcminutes. As shown below, the position of the Crab pulsar is at the edge of the PCA collimator, with a response of about 15% of maximum.

Collimator response and crab pulsar
(click for enlargement | PS file)
Collimator response and crab pulsar
(click for enlargement | PS file)

Figure 5: Position of Crab pulsar in the PCA collimator. Lines of constant collimator response are shown, along with the position of the pulsar at 16 second intervals (diamond [left panel]; triangles [right panel]). The angular extent of the nebula is shown by the cross in the right panel.

The intensity of the Crab is constant with time. Tod also examined a nearby observation (date: October 8, 2000, 20:18 UT), which was unaffected by the attitude anomaly. After applying deadtime correction, background subtraction, collimator correction, and correcting for differing effective areas of each PCU, Tod found that the difference between count rates in the two observations was less than 3.5%. At this level we need to be concerned about other factors. First, the Crab nebula is a diffuse source. Second, the spatial maximum of the nebula+pulsar emission is significantly displaced from the pulsar. Thus, at this level the measurement of the flux is probably dominated by these systematic effects and the 3.5% deviation should be seen as an upper limit, and then only at the extreme of the deviation.

Action in MOC

The RXTE MOC has take corrective action, to prevent such an anomaly from going unnoticed for such a long time. Most importantly, there used to be a delay of 1800 seconds before the "no Kalman filter updates" alert was generated by the spacecraft and transmitted to the ground. The new delay is much shorter, on order of 300 seconds.


The attitude anomaly of September 6-12, 2000, probably thwarted some observation science goals, while other goals may still be achievable. Only guest observers and archive researchers can fully assess this by a case by case analysis of their data. Users should definitely take advantage of the new attitude solution available now in the archive.


Joe Hashmal (CSC), Ed Soter (FDF), Rich Sandidad, and other GSFC engineers also contributed to the information in this report.

Appendix: Time line of Anomaly

This is a detailed time line of important events in the attitude anomaly. Time is expressed as YYYY:DDD:hh:mm where YYYY is the year, DDD is the day of the year, and hh:mm are the hour and minute in UT. This data was provided by the RXTE MOC and spacecraft engineers.

2000:250:15:10ST1 tracking 3 guide stars
ST2 tracking 4 guide stars
2000:250:15:12Spacecraft slew
2000:250:15:16ONSET OF ANOMALY:
ST1 tracking 0 guide stars
ST2 tracking 3 guide stars
X-axis gyro drive bias begins to drop
2000:250:16:24No Kalman filter updates
2000:250:18:09ST1 tracking 0 guide stars
ST2 tracking 0 guide stars
Drift levels off at ~15 arcmin
...Drift gradually increases from 15 to 55 arcmin
2000:256:03:06Updated quaternion sent to spacecraft
2000:256:14:35Spacecraft put into Inertial Tracker Hold
2000:256:17:58Updated quaternion sent to spacecraft
Star trackers locked onto guide stars after uplink

Appendix: Observations and PIs Affected by Anomaly

What follows is a list of observations which are affected by the RXTE attitude anomaly. PIs of these programs, and other users of the data from the archive, should heed the above warnings. Corrected attitude files have been provided for all of these observations.

The column marked "Dev" is the mean deviation between the actual spacecraft attitude and the original erroneous attitude data, expressed in arcminutes. Note that this is not necessarily the offset from the source position, rather it is a measure of the error in the original data products. The deviation is estimated at the center point of the observation.

Start Time (UT)   OBSID           MET Start and Stop  Dev  /Target/  /PI/
2000:250:15:11:00 50802-01-01-00  210870664 210880444  8.6 /CAS_A/ /PUBLIC/
2000:250:17:54:00 50703-01-26-00  210880444 210883144 12.7 /GRS1915+105/ /MORGAN/
2000:250:18:39:00 50153-02-62-00  210883144 210886384 12.8 /NGC_4051/ /MCHARDY/
2000:250:19:33:00 50703-01-26-03  210886384 210889384 12.8 /GRS1915+105/ /MORGAN/
2000:250:20:23:00 50181-01-27-00  210889384 210892624 13.1 /PKS_1510-089/ /MARSCHER/
2000:250:21:17:00 50703-01-26-01  210892624 210894604 13.3 /GRS1915+105/ /MORGAN/
2000:250:21:50:00 50418-01-04-00  210894604 210898264 13.4 /2S_1417-624/ /PUBLIC/
2000:250:22:51:00 50703-01-26-02  210898264 210900364 13.5 /GRS1915+105/ /MORGAN/
2000:250:23:26:00 50155-04-45-00  210900364 210902104 13.7 /NGC_5548/ /EDELSON/
2000:250:23:55:00 50155-03-03-00  210902104 210904084 13.9 /NGC_4151/ /EDELSON/
2000:251:00:28:00 50165-01-45-00  210904084 210906124 14.0 /AKN_564/ /POUNDS/
2000:251:01:02:00 50418-01-04-01  210906124 210909844 14.1 /2S_1417-624/ /PUBLIC/
2000:251:02:04:00 50128-01-03-04  210909844 210913564 14.2 /V1408_AQL/ /NOWAK/
2000:251:03:06:00 50074-01-06-00  210913564 210916324 14.4 /2S_1845-024/ /FINGER/
2000:251:03:52:00 50128-01-03-05  210916324 210919324 14.5 /V1408_AQL/ /NOWAK/
2000:251:04:42:00 50074-01-06-01  210919324 210920584 14.6 /2S_1845-024/ /FINGER/
2000:251:05:03:00 50128-01-03-06  210920584 210929224 14.9 /V1408_AQL/ /NOWAK/
2000:251:07:27:00 50705-01-06-00  210929224 210933784 15.1 /PSR_B1509-58/ /ROTS/
2000:251:08:43:00 50801-01-21-60  210933784 210936004 15.3 /BACKGROUND#1/ /PUBLIC/
2000:251:09:20:00 50128-01-03-01  210936004 210948844 15.9 /V1408_AQL/ /NOWAK/
2000:251:12:54:00 50074-01-07-00  210948844 210951784 16.4 /2S_1845-024/ /FINGER/
2000:251:13:43:00 50801-01-21-58  210951784 210955564 16.7 /BACKGROUND#1/ /PUBLIC/
2000:251:14:46:00 50089-01-27-00  210955564 210966064 16.8 /SMC_POSITION_1/ /CORBET/
2000:251:17:41:00 50128-01-03-02  210966064 210969784 16.8 /V1408_AQL/ /NOWAK/
2000:251:18:43:00 50801-04-20-27  210969784 210972604 17.2 /BACKGROUND#4/ /PUBLIC/
2000:251:19:30:00 50128-01-03-03  210972604 210975124 17.3 /V1408_AQL/ /NOWAK/
2000:251:20:12:00 50155-07-45-00  210975124 210978004 17.2 /NGC_3783/ /EDELSON/
2000:251:21:00:00 50172-07-12-00  210978004 210980344 17.3 /MKN590/ /MALKAN/
2000:251:21:39:00 50155-08-45-00  210980344 210982084 17.4 /FAIRALL_9/ /EDELSON/
2000:251:22:08:00 50103-01-29-00  210982084 210988804 17.3 /PSR_J0537-6910/ /MARSHALL/
2000:252:00:00:00 50103-01-29-01  210988804 210993064 17.2 /PSR_J0537-6910/ /MARSHALL/
2000:252:01:11:00 50074-01-08-00  210993064 210995824 17.1 /2S_1845-024/ /FINGER/
2000:252:01:57:00 50172-06-01-00  210995824 210998704 17.5 /MKN335/ /MALKAN/
2000:252:02:45:00 50074-01-08-01  210998704 211001944 17.7 /2S_1845-024/ /FINGER/
2000:252:03:39:00 50103-01-29-02  211001944 211004044 18.0 /PSR_J0537-6910/ /MARSHALL/
2000:252:04:14:00 50140-01-19-00  211004044 211014724 21.0 /GALACTIC_BULGE_1/ /MARKWARDT/
2000:252:07:12:00 50003-01-48-00  211014724 211017004 20.9 /ETA_CARINAE/ /CORCORAN/
2000:252:07:50:00 50054-06-08-00  211017004 211020304 20.8 /EXO_1745-248/ /ZHANG/
2000:252:08:45:00 50801-01-21-59  211020304 211021804 21.0 /BACKGROUND#1/ /PUBLIC/
2000:252:09:10:00 50054-06-08-03  211021804 211023544 21.1 /EXO_1745-248/ /ZHANG/
2000:252:09:39:00 50142-01-38-00  211023544 211030924 20.9 /SGR_1806-20/ /KOUVELIOTOU/
2000:252:11:42:00 50074-01-09-00  211030924 211037284 21.5 /2S_1845-024/ /FINGER/
2000:252:13:28:00 50128-01-06-05  211037284 211046464 21.8 /V1408_AQL/ /NOWAK/
2000:252:16:01:00 50110-01-14-00  211046464 211055704 22.4 /CYGNUS_X-1/ /POTTSCHMIDT/
2000:252:18:35:00 50801-06-28-00  211055704 211058524 22.9 /BACKGROUND#6/ /PUBLIC/
2000:252:19:22:00 50110-01-14-01  211058524 211061404 23.2 /CYGNUS_X-1/ /POTTSCHMIDT/
2000:252:20:10:00 50153-02-63-00  211061404 211064584 23.4 /NGC_4051/ /MCHARDY/
2000:252:21:03:00 50110-01-14-02  211064584 211067044 23.5 /CYGNUS_X-1/ /POTTSCHMIDT/
2000:252:21:44:00 50164-01-66-00  211067044 211070524 23.7 /PG_0804+761/ /NANDRA/
2000:252:22:42:00 50110-01-14-03  211070524 211072804 24.0 /CYGNUS_X-1/ /POTTSCHMIDT/
2000:252:23:20:00 50178-01-64-00  211072804 211076224 24.2 /3C_390.3/ /LEIGHLY/
2000:253:00:17:00 50110-01-14-04  211076224 211079824 24.5 /CYGNUS_X-1/ /POTTSCHMIDT/
2000:253:01:17:00 50074-01-10-00  211079824 211082044 24.8 /2S_1845-024/ /FINGER/
2000:253:01:54:00 50181-02-59-00  211082044 211085224 25.2 /BL_LAC/ /MARSCHER/
2000:253:02:47:00 50074-01-10-01  211085224 211088284 25.4 /2S_1845-024/ /FINGER/
2000:253:03:38:00 50128-01-06-04  211088284 211090324 25.5 /V1408_AQL/ /NOWAK/
2000:253:04:12:00 50801-04-20-28  211090324 211091464 25.4 /BACKGROUND#4/ /PUBLIC/
2000:253:04:31:00 50142-01-39-01  211091464 211092904 25.5 /SGR_1806-20/ /KOUVELIOTOU/
2000:253:04:55:00 50034-01-09-00  211092904 211097164 25.8 /TERZAN_6/ /IN_'T_ZAND/
2000:253:06:06:00 50142-01-39-00  211097164 211103044 25.7 /SGR_1806-20/ /KOUVELIOTOU/
2000:253:07:44:00 50421-01-02-00  211103044 211114984 26.1 /SGR_1900+14/ /PUBLIC/
2000:253:11:03:00 50074-01-11-00  211114984 211120144 26.8 /2S_1845-024/ /FINGER/
2000:253:12:29:00 50103-01-30-00  211120144 211132084 26.7 /PSR_J0537-6910/ /MARSHALL/
2000:253:15:48:00 50082-10-06-00  211132084 211138624 27.1 /4U_0142+61/ /CHAKRABARTY/
2000:253:17:37:00 50172-08-04-00  211138624 211140484 27.3 /MKN590/ /MALKAN/
2000:253:18:08:00 50404-01-06-00  211140484 211148284 27.8 /X_PER/ /PUBLIC/
2000:253:20:18:00 50801-06-21-09  211148284 211149784 28.2 /BACKGROUND#6/ /PUBLIC/
2000:253:20:43:00 50103-01-31-00  211149784 211154164 28.4 /PSR_J0537-6910/ /MARSHALL/
2000:253:21:56:00 50415-01-13-00  211154164 211156804 28.6 /XTE_J1543-56/ /PUBLIC/
2000:253:22:40:00 50103-01-31-01  211156804 211160284 28.5 /PSR_J0537-6910/ /MARSHALL/
2000:253:23:38:00 50415-01-13-01  211160284 211162504 28.7 /XTE_J1543-56/ /PUBLIC/
2000:254:00:15:00 50103-01-31-02  211162504 211165204 28.9 /PSR_J0537-6910/ /MARSHALL/
2000:254:01:00:00 50074-01-12-00  211165204 211172044 29.2 /2S_1845-024/ /FINGER/
2000:254:02:54:00 50421-01-02-01  211172044 211187224 30.2 /SGR_1900+14/ /PUBLIC/
2000:254:07:07:00 50801-06-23-01  211187224 211188664 31.8 /BACKGROUND#6/ /PUBLIC/
2000:254:07:31:00 50128-01-06-00  211188664 211211764 32.8 /V1408_AQL/ /NOWAK/
2000:254:13:56:00 50074-01-13-00  211211764 211214884 35.2 /2S_1845-024/ /FINGER/
2000:254:14:48:00 50172-06-02-00  211214884 211218124 35.6 /MKN335/ /MALKAN/
2000:254:15:42:00 50074-01-13-01  211218124 211221364 36.1 /2S_1845-024/ /FINGER/
2000:254:16:36:00 50153-02-64-00  211221364 211224784 36.7 /NGC_4051/ /MCHARDY/
2000:254:17:33:00 50068-01-02-00  211224784 211234684 38.1 /4U_0115+63/ /HEINDL/
2000:254:20:18:00 50801-06-23-02  211234684 211236484 39.0 /BACKGROUND#6/ /PUBLIC/
2000:254:20:48:00 50103-01-32-01  211236484 211239244 39.5 /PSR_J0537-6910/ /MARSHALL/
2000:254:21:34:00 50418-01-05-00  211239244 211242544 39.8 /2S_1417-624/ /PUBLIC/
2000:254:22:29:00 50801-01-21-62  211242544 211243804 40.0 /BACKGROUND#1/ /PUBLIC/
2000:254:22:50:00 50103-01-32-00  211243804 211251304 40.1 /PSR_J0537-6910/ /MARSHALL/
2000:255:00:55:00 50074-01-14-00  211251304 211255924 40.7 /2S_1845-024/ /FINGER/
2000:255:02:12:00 50164-01-67-00  211255924 211258564 41.3 /PG_0804+761/ /NANDRA/
2000:255:02:56:00 50165-01-46-00  211258564 211260664 41.9 /AKN_564/ /POUNDS/
2000:255:03:31:00 50155-03-04-00  211260664 211262764 42.2 /NGC_4151/ /EDELSON/
2000:255:04:06:00 50155-04-46-00  211262764 211264204 42.5 /NGC_5548/ /EDELSON/
2000:255:04:30:00 50128-01-06-02  211264204 211268764 42.9 /V1408_AQL/ /NOWAK/
2000:255:05:46:00 50054-06-08-01  211268764 211270924 43.3 /EXO_1745-248/ /ZHANG/
2000:255:06:22:00 50034-01-09-01  211270924 211274884 43.7 /TERZAN_6/ /IN_'T_ZAND/
2000:255:07:28:00 50054-06-08-04  211274884 211276924 44.0 /EXO_1745-248/ /ZHANG/
2000:255:08:02:00 50107-01-20-00  211276924 211278544 44.3 /NEAR_GRS_1758-258/ /SMITH/
2000:255:08:29:00 50801-01-21-61  211278544 211280164 44.2 /BACKGROUND#1/ /PUBLIC/
2000:255:08:56:00 50107-02-20-00  211280164 211282444 44.3 /NEAR_1E_1740.7-2942/ /SMITH/
2000:255:09:34:00 50128-01-06-03  211282444 211293124 45.6 /V1408_AQL/ /NOWAK/
2000:255:12:32:00 50074-01-15-00  211293124 211296064 46.8 /2S_1845-024/ /FINGER/
2000:255:13:21:00 50417-01-05-00  211296064 211301044 47.7 /SAX_J21035+4545/ /PUBLIC/
2000:255:14:44:00 50178-01-65-00  211301044 211305004 48.5 /3C_390.3/ /LEIGHLY/
2000:255:15:50:00 50181-02-60-00  211305004 211307344 49.1 /BL_LAC/ /MARSCHER/
2000:255:16:29:00 50172-08-05-00  211307344 211310044 49.5 /MKN590/ /MALKAN/
2000:255:17:14:00 50117-01-01-00  211310044 211313224 50.2 /GX339-4/ /NOWAK/
2000:255:18:07:00 50082-03-07-00  211313224 211315984 50.7 /1E_1048.1-5937/ /CHAKRABARTY/
2000:255:18:53:00 50117-01-01-01  211315984 211318984 51.1 /GX339-4/ /NOWAK/
2000:255:19:43:00 50082-03-07-01  211318984 211321684 51.6 /1E_1048.1-5937/ /CHAKRABARTY/
2000:255:20:28:00 50172-06-03-00  211321684 211324264 52.0 /MKN335/ /MALKAN/
2000:255:21:11:00 50099-01-05-00  211324264 211326064 52.3 /CRAB_PULSAR/ /JAHODA/
2000:255:21:41:00 50801-06-23-09  211326064 211328644 52.6 /BACKGROUND#6/ /PUBLIC/
2000:255:22:24:00 50417-01-05-01  211328644 211413964  9.0 /SAX_J21035+4545/ /PUBLIC/
2000:256:22:06:00 50703-01-27-03  211413964 211416664  0.0 /GRS1915+105/ /MORGAN/

Appendix: Technical Details

The following information is less refined, and refers to the techniques and data I used to examine the data provided by FDF, and to construct a solution that could be applied to the FITS data in the archive. It is not required reading by any means.

FDF Ground Solution

Corrected attitude data were supplied by CSC/FDF, in the form of revised quaternion files based on the star tracker scanning data. [ Even though the star tracker did not acquire a lock on the stars, it did record star positions, and the spacecraft attitude can thus be recovered at a later time. ]

The first such file is ground_attitudes.txt250_1, which contains data of the form:

  YYYYMMDD.hhmmssfff        Q1            Q2            Q3          Q4
  20000906.140204128   -0.02003991   -0.36605282   -0.20786476   0.90686051
  20000906.202301130    0.40077813   -0.38256721   -0.44022225   0.70655756
where fff is the number of milliseconds, and Q1-Q4 are the components of the spacecraft quaternion vector.

The time range of the file is given by the two entries above. The time sampling appears to be every 1 second, with occassional small and large gaps. According to Joe Hashmal (CSC) these gaps can be caused by a low-quality solution in the automatic star tracker routine, which is then discarded. Also, in some cases CSC/FDF did not provide solutions during the slews, and in some cases they did. However I did not use the slew solutions.

All times appear to have a fractional time between 0.127 and 0.131 seconds. ACS FITS quaternions are reported at 0.770 fractional seconds (plus 0.25, 0.50, 0.75). Here the difference is 0.639 - 0.643 seconds. By doing an cross correlation between the ACS and ST signals I found that the time difference was about 0.649 seconds, very close to the above number. Thus I adopt 0.649 s as the offset between them.

Here I worked on quaternion data from the first BL LAC observation which does not appear to have been largely affected by the problem. I excluded any discontinuities and slewing in the data, leaving for the most part smoothly varying quaternions. I still had to high-pass filter them (on the 40-100 s scale) to remove the low frequency variations. I then performed a spline resampling at different time offsets until I found the offset with the peak cross correlation value.

It seems that the ST doesn't capture all the variations in the signal. There appeared to be some clear residuals at the quat(1) ~ 0.5 x 10^{-6} level, which is < 0.1 arcsec. It's not clear why this is so, unless perhaps one star tracker was occulted and there was more freedom of movement about one axis before being detected. However the true absolute deviations of the ground- vs. spacecraft solution are more like 30 arcsec, so these small deviations are probably meaningless.

Technique to Filter

As seen in the following figure, the overall quality of the FDF-supplied solutions were okay, however there were a number of points that were way off the main curve. Also, a number of segments appeared to have approximately the correct average position on the curve, but a down-sloping deviation rather than an up-sloping one.

Deviation between spacecraft ACS solution and FDF ACS solution
(click for enlargement | PS file)

Figure 6: Deviation between the spacecraft-derived and FDF-derived attitude solutions. This is the FDF data in its raw form before filtering.

Deviations between the quaternions were computed as follows:

   q_dev = (q_sat)   . (q_gnd)
where q_sat is the satellite-derived attitude quaternion (incorrect), and q_gnd is the ground-derived attitude (correct). The "-1" refers to the quaternion inverse, and the product refers to quaternion multiplication.

These deviations can perhaps be understood in terms of the technique used by CSC/FDF to determine the solution on the ground. The star tracker cameras' "slot 5" positions provide the position and intensity of the bright stars in the camera field of view, but do not identify them by name. Thus, the first step in the solution is to determine which stars are actually present in the camera, and then to fit their positions. In some cases it is possible that the stars are misidentified, leading to an incorrect solution. [ In other cases there were not enough stars in both cameras to disambiguate the spacecraft attitude, and FDF provided no solution during that time. ]

Included in the FDF model was a drift term, allowing the spacecraft attitude to drift during inertial periods. [ No fitting was done during maneuvers. ] In some cases it appears that the star positions were gotten correct, but the drift term was not estimated correctly. This leads to the "down" vs. "up" sloping problem I already mentioned.

My ultimate filtering solution was to remove most of the detail from the FDF data. I essentially only took the FDF data at the center point of each inertial period. According to Hashmal, this is where the positional accuracy is the best.

Second, I examined the data by hand and removed some points that were clearly not correct. I searched for discontinuities in the deviation which would not be physically meaningful. However, there is a discontinuity around day 250.2 which appears to be real: the spacecraft finished a slew and suddenly jumped a few arcminutes. I also left in the ground solution during the onset of the anomaly where the deviation grew very rapidly.

At the resulting list of center-point times, I computed the quaternion deviation as noted above. I called this the list of "master" quaternions.

Technique to Interpolate

My original goal was to interpolate the above set of master quaternions onto the grid of each FITS file. Then each deviation could be "un"-applied to the FITS data by a simple quaternion multiplication, and the new data written out in exactly the same format.

I did run into a snag however. As I currently understand it, the above quaternion deviation is measured in spacecraft rather than inertial coordinates. This leads to a rather serious problem, which might be best demonstrated in the following figure. This figure was constructed by plotting the other part of the quaternion, which is the rotation axis. The rotation axis was converted to spherical polar coordinates (standard declination and azimuth) and plotted as points. Thus, if one imagines that the spacecraft were freely precessing about a given axis like a top, then the plot shows the point on the sky aligned with this axis.

Deviation axis in SC coords
(click for enlargement | PS file)

Figure 7: Spherical polar coordinates of deviation axis (Spacecraft Coordinates).

The plot shows that this axis is all over the place on the sky, in spacecraft coordinates. This is a problem because interpolating between midpoints will give all sorts of unphysical intermediate rotation axes. The solution is to convert the master quaternions to inertial coordinates first, and then rotate into spacecraft coordinates when needed. In inertial coordinates, the spacecraft deviation axis is much more well behaved, and shows a complicated but more or less continuous precession and nutation pattern.

Deviation axis in Inertial coords
(click for enlargement | PS file)

Figure 8: Spherical polar coordinates of deviation axis (Inertial Coordinates). The "swoop" in the upper right hand corner corresponds to the initial hour of high-rate drift.

The deviations were converted to inertial coordinates by the following formula:

  q . (q_gnd)
where the notation is the same as above.

The formula above gives the master quaternions in inertial coordinates. These deviations were interpolated onto a new grid of times from a FITS file using spherical linear interpolation (affectionately known as SLERPing). Most 3-D computer graphics textbooks contain references to SLERPing.

  q_interp = SLERP(t_iner, q_iner, t_FITS)  ;; Interpolate onto new grid

When converting back from the interpolated inertial deviations to the desired quaternions, one needs to first convert to spacecraft coordinates and then apply to the FITS quaternions. These transformations are:

  q_new = q_FITS . ( (q_FITS)   . q_interp . q_FITS )
                   \----- q_interp in S/C coord ----/
which simplifies to
  q_new = q_interp . q_FITS
This is how all the FITS files were converted.


In addition to the verifications mentioned above, the quality of the data were verified in several other ways.

Programs and Data Used

The program to convert the FITS files was written in IDL and called docorrect.pro. Please see the docorrect.pro program for a copy of the conversion program. A special set of HISTORY keywords has been added to each corrected file. This additional header data can be found in attkeys.dat.

The master quaternion data used to perform the interpolations can be found here. The columns are: Time (MET), Q1, Q2, Q3, and Q4, using the same sign conventions as the original ACS data. These data are known as TTMASTER and QINERTIAL in the docorrect.pro program.

Return to Craig Markwardt's Homepage