ao fits file for pdev spectrometer (cimafits)

last mod: 27nov09


Terminology


Fits file organization:  (top)

The files are named:
nnnn.yyyymmdd.bXsYgZ.sssss.fits   etc. p1231.20080311.b0s1g0.00100.fits

Primary header

    Not much info,  mainly NAXIS, and EXTEND=T --> binary extensio

binary extension header

binary table

    1 binary row contains about 137 fields.  A row can contain contain spectra from 1 or more dumps. The number of dumps in a row will be determined by:  output a row once a second or every 20Mb of data (whichever comes first).    A row looks like:
dataHeapPtr
StatusHeapPtr
tdim1
tdim2
other 133 fields

Heap

    The heap is partitioned into two parts. First the status heap that holds the pdev status info for each integrated spectra (10*2 bytes). This area is preallocated to hold all the pdev status info you could have for the maximum allowed size of the binary table.
    The pdev status heap is followed by the data heap that holds the spectra. There will be some unused space between the binary table and the heap, and between the status heap and the data heap.
Example fits file layout:


02jun08: fits table  (top)

    Here is an updated fits table definition for the ao fits format:
Teminology
NAME
TYPE
Units
stat
DESCRIPTION
data
desc

D:LHR
points to the spectra data for this row
stat
desc

D:LHR
points to the spectra status info for this row
tdim1
char[32]

D:SCI
dimensions of spectra: cr1,cr2,cr3,cr4,cr5: chan,ra,dec,pols,numDumps:"8192,1,1,4,10" 8k channels, full stokes, and 10 dumps
tdim2
char[32]

D:SCI
dimensions of status: cr1,cr2,cr3,cr4,cr5: statWds,ra,dec,pols,numdumps:"10,1,1,1,10": 10 statwds/spec. Only 1 set per N pols.
object
char[16]

D:LHS
source observed. if 16 bytes then not null terminated.
crval1
double
Hz
D:LHR
Center Freq of band (topocentric) (see crpix1 for which pixel it is)
From topoa/bfreqhz keyword of pnetctl
cdelt1
double
Hz
D:LHS
Frequency bin interval. Negative number --> increasing pixels give decreasing frequency.
Computed as:   adcClkHz/fftLen/(decimation)
crpix1
double

D:LHS
Pixel of center frequency crval1. count from 1. Should be the center of the pixel.
Computed as: fftlen/2 + 1
Need to check that this computation is correct
crval2
double
deg
D:LHRILP
Actual J2000 Ra this beam on sky.
computed as:
  • Readback encoder az,za and interpolate to center of spectra (if multi spectra/row use first spectra)
  • Subtract off model corrections for the encoder position
  • add any alfa beam offsets.
  • Convert az,za to ra,decJ2000
crval3
double
deg
D:LHRILP
Actual J2000 Dec this beam on sky (see above for computation).
crval4
double

D:LHS
Polarization axis. Fits coding is:(1,2,3,4: I,Q,U,V), (-1,-2,-3,-4: LL,RR,RL,LR circulars), (-5,-6,-7,-8:XX,YY,XY,YX  linears). We dump all spectra from an integration in a single record (pols are not in separate records). So code crval 4 with multiple digits, one for each spectra. The order should be the order the spectra appear in the record. The values will be:
  • 1: polA+polB summed (stokes I)
  • -56:polA,polB linears.
  • 1234: stokes. The actual data is: let x=polAVoltage , y=polVoltage:
    • 2*xx polA
    • 2*yy polB
    • 2Re(xy*)  stokes U (assuming linears)
    • 2Im(xy*)   stokes V (assuming linears)
  • Pdev  can not dump a single polarization in spectral mode.
Notes:
  • We call all signals linear...sbn, xband, and lbw with the hybrid are actually circular.  Even for the linears what you Really get is what comes out the polA (left) or polB (right) spigots in the control room. Some receivers may not be lined up very well with xx, or yy.
  • For a linear feed the difference of the spectra is Q, For a circular feed the difference of the spectra is V. We don't try to correct for this, You just get the sum, difference, etc...
  • keyword num_pols will also have the number of pols output 1,2,4
crval5
double
sec
P:LHS
Time for start of first pixel in this row recorded as seconds from midnite of date_obs UTC.
Note:
  • We can have multiple dumps per row. So this will refer to the first pixel on the time axis.
  • dat_obs gets updated every row. If the scan crosses midnite (UTC) then crval5 will jump by 86400 seconds.
This should be the center of the 1st pixel rather than the edge.
cdelt5
double
sec
D:LHS
Spacing between pixels on the time axis (dumps) if multiple dumps per row. This will be wall time (the same value is stored in duration).
azimuth
double
deg
D:LHRILP
Actual azimuth for this beam on the sky (pixel 1 on the time axis). The model corrections have been removed so back computing from az,za should give ra,Dec. Azimuth and elevatio (below) have both been interpolated to crval5
Note:Looks like this is the feed azimuth. For the dome, the source azimuth is 180 degrees from this.
elevatio
double
deg
D:LHRILP Actual elevation for this beam on the sky. (see notefor azimuth).
glon
double
deg
D :LHR
Actual galatic longitude for this beam on the sky
glat
double
deg
D:LHR
Actual galactic latitude for this beam on the sky.
date-obs
char[16]

D:LHR
Date (UTC) for the start of the first pixel of this row. Format: "YYYY-MM-DD".
The fits definition says it assumes this is the start of an observation. If not it must be defined in the comment fiield. We are not using it this way.
Probably should also be changed to the center of the pixel.
mjd-obs
double
day
D:LHR
Modified Julian Date for spectra (pixel 1 on the time axis).  It is updated every row. This is computed from crval5
Probably should be switched to center of pixel.
lst
double
sec
D:LHRILP
Local mean sidereal time at start of 1st pixel on the time axis.
Computed from mjd. Should be changed to center of pixel.
exposure
double
sec
D:LHS
Integration time for 1st spec on the time axis (if blanking is not enabled).
Notes:
  • We can have multiple dumps per row. If blanking was enabled then the exposure time of each dump could be different.
  • So make exposure the time if no blanking was done. Users can check the number of ffts accumulated in each dump for the exact exposure time of each dump.
  • If stokes 32 bits this does not include the 1fft time needed between dumps where no integration is done.
duration
double
sec
D:LHS
Duration for a dump (1st spectra on the time axis). This is the wall time. It will be equal to exposure except when stokes 32 bit mode is used. In this case, the pdev spectrometer does not integrate for 1 fft time.  In this case duration will be longer then exposure.
tsys
double
K
P:LHS
Last computed Tsys. Set to 1.0 if noT available.
bandwd
double
Hz
D:LHS
overall bandwidth of spectra.
  • Computed as abs(cdelt1) * number of channels
restfreq
double
Hz
D:LHS
Rest frequency used for doppler correction. Normally it would be the rest frequency of the line of interest.
Computed from pnetctl keyword resta/bfreqhz. I should be for the reference pixel.
specsys
char[8]

D:LHS
Velocity frame for crval1. Always "TOPOCENT" for ao data.




Req_ are values that where requested by the user. They may not be what happenned: eg: req az=100,za=10 but telescope only got to 99.89 and 9.93
req_sys
char[8]

D:LHS
Requested velocity coordinate system. values are:
"TOPOCENT","GEOCENTR","BARYCENT","LSRK","UNKNOWN"
from pnetctl req_sys keyword
req_vel
double

D:LHS
Requested velocity in req_sys coordinate system. Doppler correcting the restfreq with req_vel should give crval1.
From pnetctl req_vel keyword (from cima)
req_vel_unit
char[8]

D:LHS
unit of req_vel. "m/s" or "Z"
From pnetctl req_vel_unit keyword (from cima).
req_vel_type
char[8]

D:LHS
values are:"VOPT-F2W","ZOPT-F2W","ZRAD-F2V", or "UNKNOWN"
From pnetctl req_vel_type keyword (cima sends).
req_raj
double
deg
D:LHRILP
Requested ra position J2000. Interpolated to the start of the first spectra of the row. If alfa then this is  the req_raj for the beam that is used to point the telescope (normaly beam 0). This includes any rates and offsets that had been including in the pointing reqeust.
Probably needs to be moved to the center of the spectra. (just update mjd).
req_decj
double
deg
D:LHRILP
Requested dec position J2000. Interpolated to the start of the first spectra of the row. If alfa then this is  the req_raj for the beam that is used to point the telescope (normaly beam 0). This includes any rates and offsets that had been included in the pointing reqeust.

req_xxxc1,c2 These are the indivdual components from the requested tracking command:
  • pnt tr   posc1 posc2 -cpos  -o offc1 offc2 -coff  -r ratec1 ratec2 -crate
  • There is a position , an offset from that position, and a rate. The offset and rate are used when scanning (or doing off source).
  • The 3 of these get combined and then converted to req_raj,decj.
  • These values have not been interpolated to crval5. They normally don't change during a scan (except for maybe a starttime).
  • The offsets, rates can have a starttime (which has not been included here). The starttime is normally the start of the scan (if a timed start was used).
req_cs  Requested coordinate system coding:
  • "GALACTIC","B1950   ","J2000   ", "BECLIPTI", "JECLIPTI",  "CURRENT " (of date), "HA_DEC  ", "AZZA_SRC", "AZZA_FEE" (feed azimuth) ,"AZZA_NOM" (no model), "AZZA_GC " (great Circle azimuth).

req_posc1
double
deg
D:LHR
Requested postion (coordinate 1). Usually ra.
req_posc2
double
deg
D:LHR
Requested position (coordinate 2) Usually dec.
req_cspos
char[8]

D:LHR Coordinate system for position request. (see above for coding)
req_offc1
double
deg D:LHR Requested offset (coordinate 1). Usually ra, hour angle or azimuth. The offset are normally fixed for the entire scan so you can use it to see how big the strip was supposed to be (the rate causes the resulant position it to move).
req_offc2 double deg D:LHR Requested offset (coordinate 2). Usually dec, or za.
req_csoff char[8]
D:LHR Coordinate system for offsets (see above for coding)
req_pnttime
double sec
D:LHR The time stamp in seconds from midnite(UTC) for the pointing info that has not been interpolated to crval5. This include req_posxx,req_offxx,req_ratexx.
req_ratec1
double deg/sec
D:LHR Requested rate for first coordinate (usually ra,ha,az) in deg/sec. (per solar second)
req_ratec2 double deg/sec D:LHR Requested rate for 2nd coordinate (usually dec,az) in deg/sec.   (per solar second)
req_csrate
char[8]

D:LHR
coordinate system for rates (see above for coding).
req_equinox
double

D:LHR Equinox for req_csposxx. 1950, 2000. or 0 if current.
rate_dur
double
sec
D:LHR How long the rate has been applied (at req_pnttime). Units are solar seconds.





enc_time
double
sec
D:LHR seconds from midnite (utc) when the enc_xxx values were read. Will match crval5.
enc_azimuth double deg
D:LHR Azimuth encoder position (dome side) read from the encoders. The value are interpolated to enc_time (which is the same as crval5). They are  the raw values read from the encoder. Any model correction would have been added to the computed radec -> az,za. The difference between this value and azimuth (above) should be the model correction. For alfa:  since there is only 1 azimuth encoder, this is for the alfa beam used for pointing.
enc_elevatio double deg D:LHR Elevation encoder position read from the enocders. The values are interpolated to enc_time (which is the same as crval5). These are  the raw values read from the encoder. (see enc_az above). For alfa:  since there is only 1 elevatin encoder,  this is for the alfa beam used for pointing. Master determines if this is the dome or the carriage house.
enc_altel double deg D:LHR Alternate elevation encoder position read from the enocders. The values are interpolated to enc_time (which is the same as crval5). These are  the raw values with no model correction applied.This is the carriage house (dome) that is not being used to point the telescope.
cur_err
double deg D:LHR sqrt(az_err*sin(za) ^2 + el_err^2) .. This will probably not work very well if we are not in tracking mode. (wapps actually used the agc values that are computed..).
May want to switch to used agcerr when in tracking mode (but will need interpolation).
allowed_err
double deg D:LHS
Great circle error needed to be "tracking". Typically .00278= 10".
az_err
double deg D:LHR Azimuth position error as: (azEncPos - requestedAzEncPos) interpolated to the start of the first spectra of row. For Alfa it is the error for the beam used for pointing.
el_err
double deg D:LHR Elevation position error as: (elEncPos - requestedElEncPos) interpolated to the start of the first spectra of row. For Alfa it is the error for the beam used for pointing.
model_offaz
double deg D:LHR Pointing model azimuth offset for the actual azimuth position interpolated to the start of the first  spectra of the row. For alfa it is the model correction for the beam used for pointing. The value is  computed as: ActualAzEncoderVal=ActualAzEncoderNoModel + model_offaz
The model_offsets are  evaluated at the az,za encoder values from 1 second earlier. This could possibly introduce errors of up to a few asecs.. (see model gradients)
model_offza double deg D:LHR Pointing model zenith angle offset for the actual zenith angle position interpolated to the start of the first  spectra of the row. For alfa it is the model correction of the beam used for pointing. Computed as: ActualZaEncoderVal=ActualZaEncoderNoModel + model_offza
See comment for model_offaz
user_offaz double deg P:LHR
user_offza double deg P:LHR

beam_offaz/za,rfeed_offaz/za, prfeed_offaz/za, beam_offra/dec, alfa_ang are used for alfa.
beam_offaz double deg D:LHS Azimuth offset from alfa center beam to this beam (great circle) when alfa rotation angle is 0. The value is measured on the sky.
beam_offza double deg D:LHS Zenith angle offset from alfa center beam to this beam when alfa rotation angle is 0. The value is measured on the sky.
rfeed_offaz
double
deg D:LHRILP Rotated feed offset. Azimuth offset from alfa center beam to this beam (great circle) using current alfa rotation angle. The value is measured on the sky. Adding this value to the az,za of the center beam and then back computing  from az,za to ra,dec should give you the ra/dec for this beam (except for prfeed_offaz,za).
Check that the signs of the offsets are correct
30nov09:finally checked the signs, and they were wrong (moreinfo)
rfeed_offza
double deg D:LHRILP Rotated feed offset. Zenith angle offset from alfa center beam to this beam (great circle) using current alfa rotation angle. The value is measured on the sky. Adding this value to the az,za of the center beam and then back computing  from az,za to ra,dec should give you the ra/dec for this beam (except for prfeed_offaz,za).
Check that the signs of the offsets are correct
30nov09:finally checked the signs, and they were wrong (moreinfo)
prfeed_offaz
double deg D:LHS
The azimuth offset from the beam used for pointing the telescope to the central beam. Only used when doing point source calibrations using a non central beam for pointing. In this case the offset will be -beam_offaz of that beam.
Check that the signs of the offsets are correct
prfeed_offza
double deg D:LHS
The zenith angle offset from the beam used for pointing the telescope to the central beam. Only used when doing point source calibrations using a non central beam for pointing. In this case the offset will be -beam_offza of that beam.
Check that the signs of the offsets are correct
beam_offraj
double deg D:LHR
The RA offset to go from the central beam RA to this beams RA. Only used for alfa. Computed as:
crval2 - raJCenterPixelActual
beam_offdecj
double deg D:LHR
The Dec offset to go from the central beams Dec  to this beams Dec. Only used for alfa. Computed as: crval3 - decJCenterPixel

map_offra,dec,az,za: When a scan in driven (mapping, crosses, etc), you can use map_xxx to find the distance from the current interpolated measured position to the center of the map or strip.
map_offra
double deg D:LHR
Distance from current ra position to the center of the map : (crval2 - raMapCen)*cos(dec).  Mapping routines use the cmd: pnt tr raMapCen decMapCen -o azOff  zaOff -r azRate zaRate  where raMapCen, decMapCen is the center of the map. Note that the distance is great circle (* cos(dec))
map_offdec
double deg D:LHR
Distance from the current dec position to the center of the map: (crval3 - decMapCen). Mapping routines use the cmd: pnt tr raMapCen decMapCen -o azOff  zaOff -r azRate zaRate  where raMapCen, decMapCen is the center of the map.
map_offaz
double deg D:LHR
Azimuth offset of current position to the center of the map (great circle) computed as (azimuth - azMapCenter) * sin(za)
map_offza
double deg D:LHR
Za offset of current position to the center of the map (great circle) computed as ((90-elevatio) - zaMapCenter).


alfa_ang
double
deg
D:LHR
The current alfa rotation angle. Positive values are clockwise sitting on top of the alfa rotator feed assembly. The value is not interpolated so if alfa is rotating it may be a little off.
Values: -180 to 180.
para_ang




vel_bary
double
m/sec
D:LHRILP
barycenter velocity of the observer projected to the requested raj,decj direction. It is interpolated from the pnt scram heliocentric velocity. These values are computed from the jpl ephemerides once a second.
If there is a large pointing error than this would differ from the velocity in the actual direction.
vel_geo
double
m/sec
D:LHRILP
geocentric velocity of the observer projected to the requested raj,decj directions. It is interpolated from the pnt scram geocentric velocity. These values are computed from the jpl ephemerides once a second.
If there is a large pointing error than this would differ from the velocity in the actual direction.
vel_obs




backend
char[8]

D:LHS
backend name "pdev"
backendmode
char[24]

D:LHS
mode of observation. value is CHANNELS TYPE, N bits. the value can be:
  • CHANNELS:1-chan, 2-chan, summed, stokes..
    • 1-chan is polA or polB
    • 2-chan is polA and polB included
    • summed is polA + polB added together
    • stokes: the four stokes parametes.
  • TYPE: spectra,tm-dm  note that tm-dm is not yet supported in fits
  • BITS: 8,16,32  .. this is the number of bits on output
  • eg: "2-chan spectra, 32 bits"
caltype
char[8]

D:LHS
type of cal used. Let D1 be caldiode 1 and D2 be cal diode 2. The the values are:
  • "lcorcal": low correlated cal.  D1 -> polA and polB
  • "hcorcal":high correlated cal. D1 -> polA and polB
  • "lcal": low uncorrelated cal. D1-> polA, D2->polB
  • "hcal":high uncorrelated cal. D1->polA, D2-> polB
  • "lxcal": low uncorrelated cal: D1->polB, D2->polA
  • "hxcal":high uncorrelated cal. D1->polB, D2->polA
  • "l90cal:low correlated shifted cal. D2->polB,D2+90deg->polA
  • "h90cal:high correlated shifted cal. D1->polB,D2+90deg->polA
obsmode
char[8]

D:LHS
Observing pattern used. Some names are:
"ON","ONOFF","DPS","RADECMAP","DECRAMAP","BASKET","FIXEDAZ"
scantype
char[8]

D:LHS
Each observing pattern is made up of one or more scans. scantype names the type of scan within a pattern. Some names are: "ON","OFF","UP","DOWN". Patterns that have a single scantype are usually labeled with "ON".
pattern_id
int*4

D:LHS
unique number identifying pattern. Same format as scanid: Ydddnnnnn where Y is the last digit of the year, ddd is the daynumber of the year (count from 1) and nnnnn increments from 0 each day for each new pattern.
eg. an onoff pattern would be 1 pattern and have 4 scans (poson,posOff,calOn,calOff).
scan_id
int*4

D:LHS
unique number identifiying scan. format: Ydddnnnnn where Y is the last digit of the year, ddd is the daynumber of the year (count from 1) and nnnnn increments from 0 each day for each new scan.
recnum
int*4

D:LHR
The dump number withing the  scan for first spectra in row. It counts from 1. Each row will increment by the spectra per row. The count is for the entire scan. If there are multiple files for scan, the recnum does not reset at the beginning of the nth file of the scan (n>1).
total_recs



This is supposed to be the total number of records in the scan. It is currently left as 0 since when the data is written , we do not know the final count. It could be switched to the requested number of records/rows per scan.
chan_in
int*4

D:LHS
FFT length used for spectra.
bad_data




plat_powerA
double
dbm
D:LHS total Power in PolA read by power meter before fiber optic transmitter. Not used by alfa. Value should gt -40dbm across 200 Mhz. This value is only read whenthe power levels are adjusted so it may not be current for this scan.
plat_powerB double dbm D:LHS total Power in PolA read by power meter before fiber optic transmitter. Not used by alfa. Value should gt -40dbm across 200 Mhz.This value is only read whenthe power levels are adjusted so it may not be current for this scan.
cntrl_powerA double dbm D:LHS total Power in PolA IF  read by power meter after the fiber optic receiver downstairs. Not used by alfa. This value is only read when the power levels are adjusted so it may not be current for this scan.
cntrl_powerB double dbm D:LHS total Power in PolB read by power meter after the fiber optic receiver downstairs. Not used by alfa. This value is only read when the power levels are adjusted so it may not be current for this scan.
syn1
double
Hz
D:LHS
Synthesizer for first upstaris 1st LO.
Values: Usually rfi + IF  frequency if high side lo.
syn2
double
Hz
D:LHS
Synthesizer for downstairs mixing.
Values:
  • Alfa: this will be the 2nd LO used to complex  mix the 250 MHz IF1  to baseband. The same information is stored in bintable header locations PHLO2MX0 and PHLO2MX1.  syn2 will have the value that corresponds to this subband. It will normally be 175e6 or 325e6
  • Single pixel: The LO used for the mixing from IF1 (usually 1-2 Ghz) to IF2 (250 MHz). This can be a high or low side lo. The 2nd IF is then complex mixed to baseband with PHLO2MX0 or PHLO2MX1 (in the bintable header).
tot_power
double


Was the 0 lag from auto correlators. Pdev doesn't use this.
tcal_numCoef




tcal_coefA




tcal_coefB




backendmask
uchar[8]

D:LHS
Array of bitmaps specifying which pdev boxes, subbands, and pols were used for the experiment (at least for this group). It can be used to find all of the files that were used for an observation or preallocate arrays.
  • array of 8 bytes: 1 for each pdev box used. 0 is beam0,mixer 0, 1 is beam1,mixer1...etc
  • 8 bit val. A single byte where the lower nibble (4bits)  si the lower subband and the upper nibble  is the higher subband.
  • 4 bit nibble: specifies which pols are used:
    • 1 - pol A only or polA and polB summed.
    • 2 - pol  B only
    • 3 - polA and polB separate
    • 15- stokes.
Values:
  • Alfa: backendmask[0..6] have 00110011 if polA,B, 11111111 if stokes,and 00010001 if summed pols.
    • Use beam to index into backend mask and ifn to decide which subband.
  • Single pixel: depends on which pols and subbands were selected.
    • Use ifn/2 to index into backendmask and ifn%2 to get the subband.
num_beams
char

D:LHS
Number of beams used for the experiment.
Values:
  • Alfa: 7
  • Single pixel=1.
num_ifs
uchar

D:LHS
The number of subbands we have on this beam.
Values:
  • Alfa=2 . the low (170 Mhz) subband and the high (170 Mhz) subband
  • Single Pixel. The total number of subands selected on this beam. We can have a maximum of 7 boxes with 2 subbands per box so the maximum would be 14 subbands.

num_pols
uchar

D:LHS
number of pols. This will be the 4th dimension of tdim1:(nchan,nra,ndec,npol,ndumps).
Values:
  • 1 for polA,polB,or summed polA+polB
  • 2 for polA and polB recorded separately
  • 4 for stokes.
beam
char

D:LHS
Beam number used for this data.
Values:
  • Alfa = 0 .. 6
  • Single pixel=1
ifn


D:LHS
IF subband number for this data.
Values:
  • Alfa: 0 for the low band and 1 for the high band.
  • Single Pixel: Index into backendmask for this subband. 
    • ind=ifn/2 is the index into backendmask.
    • ifn% 2 =0 is the lower 4 bits of byte (low band).
    • ifn%2=1 is the higher 4 bits of byte (high band)
pol
char


We store multiple pols in 1 record so this variable is not used.
prfeed
char

D:LHS
alfa beam used to point the telescope.
Values: 0..6
input_id


D:LHS
The number of the pdev box for this record. It will be the same value N as the bNs0g0 in the filename.
Values:
  • ALFA: it will have the same value as beam 0..6
  • Single Pixel:It will be the pdev box used for this data. The mapping of synth/mixer numbers to beam is:
    • BEAM  syn/mix number
    • bm0  . mix 1
    • bm1  . mix 5
    • bm2  . mix 2
    • bm3  .  mix 6
    • bm4  .  mix3
    • bm5  . mix 7
    • bm6  . mix4
uppersb
char

D:LHS
If true then the spectra are in increasing frequency order (cdelt1 > 0). If false then the spectra are stored in decreasing frequency order (cdelt1<0).
  • This is probably opposite from the definition used for the wapps..
    • But an upper side band isnot flipped.. so i'll stick with this definition.
  • This is set correctly for alfa.
  • Single pixel with all of the permutations needs some work.
attn_cor
char

 :LHS Currently not used.
should put pdev atten here but then need an array I,Q polA,polB
maybe code at 2 bits/digitizer:
0 - min
1 - < 16db
2- >=16 db
3 = max attn.
Or we could stick the mixer atten settings in the btable header like the rms's.
master
char

D:LHS
which side of the azimuth is controlling the pointing.
Values:0 dome, 1 carriage house.
onsource
char

D:LHR
We are tracking the source within the preset tolerance (True when cur_err <= allowed_err). Allowed_err is usually set to 10 arcSeconds.
blanking




lbwhyb
char

D:LHS
lband wide linear to circular conversion with hybrid.
Values: 0 no hybrid, linear pols
             1 hybrid in, circular pols
shcl
char

D:LHS
Reciever shutter (all but sband narrow).
Values: 0 shutter open, 1 shutter closed.
sbshcl
char

D:LHS
sband narrow shutter.
Values: 0 shutter open, 1 shutter closed.
rfnum
char

D:LHS
Receiver number for reciever selected on platform (rf/if switch positions in dome).
Values: 1 327, 2 430gr,3 610,5 lbw,7 sbw,8 sbh,9 cb,10 cbh,11 xb, 12 sbn,17 alfa
calrcvmux
char

D:LHS
receiver on the platform that receives the ttl signal to fire the cal.
Values:1 327,2 430gr,3 610,5 lbw,7 sbw,8 sbh,9 cb,10 cbhi,11 xb,12 sbn,15 alfa (note alfa is not 17 since the control word is only 4 bits).
zmnormal
char

D:LHS
platform rf transfer switch before the first mixer.
Values: 0 - rf comes straight down
             1 - polA,polB switched before first mixer.
rfattn
char[2]
db
D:LHS
Platform attenuators before the first mixer. [0] is polA, [1] is polB. Not use for alfa.
Values: 0..11  .. 0 is no attenuation.
if1sel
char

D:LHS
Platform IF selector. Determines whichRf->If  mixer is used.
Values: 1 300If, 2 750If, 3 2-12GhzRf 1500If, 4 10GhzUpconverter, 5 straight thru
ifattn
char
db
D:LHS
Platform IF attenuators after the mixer, before the fiber optic xmter. Not used for alfa.
Values: 0..11 db.
fiber
char

D:LHS
select fiber/coax to bring signal down from platform.
Values: 1 fiber, 0 coax. Note we can on longer switch to coax.
ac2sw
char

D:LHS
bit map  for ac power switch to enable certain functions in dome. 2008 coding;
B1=2: vlba cal is turned on (1 MHz comb in IF).
Note: is it s bit map so 2,3,7 all have B1 vlba cal turned on.
phbsig
char
D:LHS
The adjustable phase delay in the pol A leg of the 10 GHz upconverter. (at 10 Ghz).
Values: 0..127  binary numbers map to 0.. 178.5 degrees of delay.
hybrid
char
D:LHS
The 10 GHz upconverer has a hybrid that can be used to convert from linear to circular.
Values: 0 hybrd is no used, 1 hybrid is being used.
phblo
char
D:LHS
10 GHz upconverter IF  phase shift (delay) in polB LO going to 10Ghz to 1.5 Ghz.
Values:  0..127 map to 0 .. 178.5 degrees in the lo (fixed at 11.5 Ghz).
xfnormal
char
D:LHS
control room (downstairs) polA/polB transfer switch after the fiber optic reciever, before the variable gain.
Values: 1 straight thru (norma). 0 switch polA and polB.
ampgain
char*2 db
D:LHS
Control room (downstairs) variable gain after the fiber optic receiver (not used for alfa). [0] is pola, [1] is polB (assumes no polA,B switching).
Values:-11 to 30.. -11 is 11 db of attenuation. 30 is 30 db of gain. You need to treat this as a signed char.
We may stuff -11 into an unsigned char..see what C does...
noise
char
D:LHS
Control room noise source after the fiber optic receviers, before the variable gain.  The noise source can be used instead of the signal from the platform/sky.
Values: 0 use IF from platform, 1 use noise source.
inpfrq
char
D:LHS
IF mixing stage selected for the control room (downstairs) IF.
Values: 0 750NarrowBand,1 300Mhz IF, 2 750IF,3 1500IF.
mixer
char

D:LHS
mixer system used:
0- 750 filter
1- 1250 filter
2- 1500 filter
3- 1750 filter
vlbainp
char
D:LHS
Which vlba IF frequency is used.
Values: 0 750, 1 1500.
syndest
char
D:LHS
Destination for downstairs synthesizers (not used by alfa). Values:
  • 1: 260 to 30Mhz downconverter
  • 2: vlba or sband
  • 3: if2 mixers
  • 4: front panel.

calsrc
char
D:LHS
Where the ttl level to fire the cal comes from. Values:
  • 1: interim correlator
  • 2: 25 Hz hardware tied to the station clock.
  • 3: wapps
  • 4: pdev
  • 5: cal always on
  • 6:cal always off
  • 7: external bnc at cal multiplexor
  • 8: external switch at the cal multiplexor.
cal
char

Is cal turned on.
 I don't think this value is ever loaded.
vis30mhz
char
D:LHS
source for 30 Mhz going to visitors equipment in screened room.
values: 1 dome, 0 carriage house.
blank430
char
D:LHS
The 430 Mhz blanking (1st lo, rf, and 260 to 30 Mhz downconversion).
Values: 1 430 blanking is enabled, 2 430 Mhz blanking is not enabled.


Interpolating positions/velocities   (top)

    The subroutine call sequence to interpolate positions is in ldHdrRecs() of bpOut.c.


Outstanding issues:  (top)



History:   (top)




<- page up

home_~phil