Re: [1003.1073] The origin of the WMAP quadrupole
Posted: April 03 2010
You're right. fv version 3.0-17 gave me a segmentation violation, but gui's are not needed here anyway. This can be checked using GDL and the IDL astro library FITS tools as follows.Hao Liu wrote:The attitude data are recorded 25.6 ms later than the
differential data. ... It's very easy to check the time drift between WMAP quaternion and
differential data without mapmaking, just use the fv tool (http://
heasarc.gsfc.nasa.gov/docs/software/ftools/fv/) to open ANY fits format
WMAP TOD file, and check the first time record in the Meta Data Table
(contains the quaternion) and the Science Data Table (contains the
differential data). There is an almost constant difference between them
that is about 2.963E-7 in reduced Julian time (25.6 ms), with the
quaternion time being later than the differential datum time.
Data/software files:
- one of the WMAP TOD files from one of the following tar.gz archives (1.8Gb, but you only need one file from it, i.e. a 103M file for one day's observing): http://lambda.gsfc.nasa.gov/product/map ... al_get.cfm
- idlastro .pro library: http://idlastro.gsfc.nasa.gov/ftp/astron.dir.tar.gz
- GDL: http://gnudatalanguage.sourceforge.net/
- install GDL
- untar the data files into an appropriate directory
- untar the idlastro files into an appropriate directory and set up your GDL_PATH environment variable, e.g. if you want to be lazy about your GDL_PATH, this is bash syntax
Code: Select all
cd pro && ln -s */*.pro . && export GDL_PATH=`pwd`
- minor hack (e.g. GDL version 0.9~rc3): replace the line in the idlastro routine fits/fits_read.pro by
Code: Select all
ndata = product( axis, /integer )
since GDL still lacks a few minor features of IDLCode: Select all
ndata = floor( product( axis ) + 0.5)
Code: Select all
fits_open, 'tod.fits', handle
; get table of times (metatime) of quaternions of spacecraft attitude
fits_read, handle, metatable, metaheader, extname = 'Meta Data Table'
tbinfo, metaheader, meta_h
metatime= tbget(meta_h,metatable,'Time')
; get table of times (scitime) stored in table that includes observational data
fits_read,handle,scitable,sciheader,extname = 'Science Data Table'
tbinfo,sciheader,meta_s
scitime= tbget(meta_s,scitable,'Time')
scitime0=reform(scitime,30,1875) ; re-interpret 1D table as 2D table
offset = (metatime - scitime0[0,*]) *3600d *24d ; calculate the offsets in seconds
; print some examples
print,'quaternion time minus data time in s: first 10 frames of the day'
print,offset[0:9],format="(d15.7)"
print,'quaternion time minus data time in s: last 10 frames of the day'
print,offset[1865:1874],format="(d15.7)"
For a few TOD files that I randomly selected, I get 25.6000 ms offset, which is enough to make your statement very credible.The attitude data are recorded 25.6 ms later than the differential data.
For a more fundamental check (rather than doing this for all data files), WMAP engineers should in principle be able to check the code that generates the timestamps in the "Science Data Table" and explain how this relates to the spacecraft attitude quaternions in the "Meta Data Table". They should be able to find the half-individual-observation-offset in that code. The alternative is that WMAP people point us to the specific section in one of the WMAP technical papers where the quaternion versus science frame 25.6 ms offset has already been explained. I searched and failed to find it.