The routine RD_PNT_HIST will read the file $DIR_GEN_STATUS/pointing.history to
determine all of the spacecraft commanded off-points. The structure returned has
the .TIME and .DAY when the pointing change has occurred, and the offset (.OFFSET)
for that pointing change. The S/C pointing bias is taken into account (the pointing
bias has not been changed since 28-Oct-91).
A sample call is:
IDL > rd_pnt_hist, pntdata
PR_PNT_HIST provides
a simple method to display a summary of the commanded spacecraft pointing changes.
Sample calls are:
IDL > pr_pnt_hist
IDL > pr_pnt_hist, outfil='pr_pnt_hist.txt'
The routine SXT_CMD_PNT will return the SXT pixel coordinates of the
center of the sun using the spacecraft commanded pointing history database file
(calls to SXT_CEN with the /cmd switch simply call SXT_CMD_PNT). A sample
call is:
IDL > xy = sxt_cmd_pnt(index)
The routine SXT_CEN should be used by all routines that wish to determine the S/C pointing. The function will return the pointing in SXT full resolution pixels for the set of times passed. The following logic is used if no switches are used
Some sample calls are:
IDL > cen = sxt_cen(times)
IDL > cen = sxt_cen(roadmap, /cmd)
IDL > cen = sxt_cen(index, roll=roll)
The S/C roll value can optionally be returned with the keyword parameter roll.
The roll values are only valid if the ATT database is available. If the /cmd
option is used, it will use the commanded S/C data file which is much faster than
reading the ATT database files. See the discussion on
page 7.2.2 for more details on the ATT database.
The spacecraft is generally aligned to solar north, although it oscillates around slightly. The actual S/C roll value is determined from the star tracker and is stored in the ATT database file. There is also a one degree offset between the spacecraft and the SXT CCD-north. The orientation of the offset is shown in Fig. 7.11.
Some sample calls to GET_ROLL are (it only accesses the date and time in index):
IDL > roll = get_roll(index)
IDL > print, get_roll('23-jun-93 1:00')
IDL > print, get_roll('23-jun-93 1:00', /predict)
The /predict option tells it to not access the ATT database but to use the
predicted roll based on seasonal variations. This value can be very incorrect
for certain times. The /notsxt option will return the S/C roll value
without the SXT offset, and /sxt_offset will just return the fixed
offset value between S/C north and SXT north. The routine SXT_CEN calls
GET_ROLL automatically and you can get the roll using the keyword roll
with SXT_CEN.
Calculate the suncenter position (in SXT pixel coordinates) from
the HXA info in the ATR (or PNT) files. Tries to reconstruct hidden limbs.
IDL > sunc = hxa_suncenter(atr)
IDL > sunc = hxa_suncenter(index=index)
If the input atr or index have N elements, then the
result will be a floating array of 4xN elements. sunc(0,*)
is the SXT column number in `IDL coordinates'6, sunc(1,*)
is the SXT line number, sunc(2,*)
is the milliseconds of day for the input time, and sunc(3,*)
is the days since 1-Jan-79 number for the input time.
The PNT database was broken up into two parts in mid-1993. See RD_ATR and RD_ATT. The PNT database is no longer used.
The RD_ATR routine allows a user to read the raw S/C pointing information
which is stored in secondary database files. The
ATR files have the IRU, HXA, and TFSS information for every major
frame. The RD_ATT routine allows a user to read the processed S/C pointing
information. Sample calls would be:
IDL > rd_atr, sttim, entim, atr
IDL > rd_att, sttim, entim, att
IDL > rd_atr, '1-nov-91', '3-nov-91', atr
The ATR structure that is returned has the following tags:
.TIME | The major frame time for the data |
.DAY | The major frame day for the data |
.DP_MODE | The S/C DP mode (see GT_DP_MODE) |
.DP_RATE | The S/C telemetry rate (see GT_DP_RATE) |
.IRU | A three element array with the raw IRU X,Y,Z values |
.TFSS | A two element array with the raw TFSS values |
.HXA | A four element array with the addresses of the |
limbs as detected by the HXA |
The ATT database is derived from the HXA and IRU data using the routine IRUHXA2SXT which was written by Jean-Pierre Wuelser. The ATT structure that is returned has the following tags:
.TIME | The major frame time for the data |
.DAY | The major frame day for the data |
.DP_MODE | The S/C DP mode (see GT_DP_MODE) |
.DP_RATE | The S/C telemetry rate (see GT_DP_RATE) |
.PNT | A three element array with the derived center for the sun in |
SXT full resolution pixels. | |
(0) = E/W (East has smaller values) in 1/100 SXT FR pixel units. | |
(1) = N/S (South has smaller values) in 1/100 SXT FR pixel units. | |
(2) = Roll in 0.1 arcsecond units - Negative values are S/C rotating | |
counter-clockwise relative to solar north | |
.STATUS1 | Indicates the reliability of each sun center position. |
1: plain S/C commanded value used, no dejittering with IRU. | |
2: S/C commanded value dejittered with IRU. | |
4: HXA value dejittered with IRU. Standard result, good. | |
Note: S/C commanded values can be several pixels off. | |
.STATUS2 | - Reserved |
.ADS | - If set, then the S/C roll value from the ADS database was |
inserted into the structure |
For a given set of input times, GET_ATT will read the relevant
ATT records (if 100 input times are passed in, then 100 ATT records
are returned). This routine is useful when trying to access ATT
data that covers a set of times over a long time span.
A sample call would be:
IDL > get_att, index, att
GT_HXA will extract the HXA data from a ATR structure or
from an ADA data structure. Some sample calls are:
IDL > hxa = gt_hxa(atr)
IDL > sxtcen = gt_hxa(atr_data, /sxtpix)
IDL > sxtcen = gt_hxa(atr_data, /sxtpix, /x)
IDL > hxacen = gt_hxa(atr_data, /hxacen)
IDL > hxacen = gt_hxa(atr_data, /hxacen, /y)
IDL > x1 = gt_hxa(atr_data, 0)
IDL > x2 = gt_hxa(atr_data, 1)
IDL > y1 = gt_hxa(ada_data, 2)
The hxa result would be 4xN where there are four addresses
for HXA limbs.
The /x or /y switches will result in a
single address being returned, and the /sxtpix will return
the results in SXT pixel coordinates.
It is possible to extract the IRU information from the ATR or ADA
structures using GT_IRU. The output is in arcseconds. It
is also possible to have the drift in the IRU removed for short
time periods by using the /RESID switch (it fits a line to the drift
and subtracts that drift). Sample calls are:
IDL > iru = gt_iru(atr)
IDL > iru = gt_iru(atr, /resid)
IDL > iru = gt_iru(ada)
IDL > iru = gt_iru(ada, index, /resid)
some text?