|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.naic.edu/~astro/spectral_line/handbook/app/node9.html
Дата изменения: Wed Mar 20 18:34:07 2002 Дата индексирования: Sun Dec 23 03:44:51 2007 Кодировка: |
Note: There are other libraries available. However, all libraries
function very closely to the below libraries. Additionally, these libraries
are used in the HI analyz routines below. When information on the other
libraries becomes available, it will be placed in the link
at http://www.naic.edu/
csalter/toppage.html
correlator library help summary.
this file is located (at AO) in /usr/local/src/Analyz/help/cat/other/corlibv1
expanded help available for SEE ALSO functions below the
expanded documentation is in /usr/local/src/Analyz/help/cat/other
last modified: 28dec99
FUNCTION
atoldata ..attach default online datafile
coravgp reg ..average two polarizations.
corazzal regOut scan numrecs... sto AZ regout,ZA regout+1
corclose ..close monitoring socket.
corcmbab rega regb .. move pola followed by polb to x-reg
cordisp .. display spectra in corget current display mode.
corfrqcfr cfrsbc1 cfrsbc2 cfrsbc3 cfrsbc4.. set center frequency each sbc
corfrq 0,1 .. stofreq array in x. 0-->a,1-->polb. use @frqX arrays
corget parm..input scan.grp to reg1-4. pola,b to reg 5,6.
corhdr .. print out cor header from last corget.
corhor sbcnum.. set horizontal scale for sbc n (0=all)
corinfodef ..set default values for corinfo
corld reg pol(0,1) {unp:1}..spectra->x,from reg.
corldf reg pol(0,1) {unp:1}..spectra->y,freq->x.from reg.
corlist .. list summary of current correlator file attached as data
corpl {reg}{sbc:1-4,0=all}..plt vs frq 2pol
corpl. {reg}{sbc:1-4,0=all}..plt. vs frq 2pol
corpla {reg}{sbc:1-4,0=all}..plt vs frq polA
corpla. {reg}{sbc:1-4,0=all}..plt. vs frq polA
corplb {reg}{sbc:1-4,0=all}..plt vs frq polB
corplb. {reg}{sbc:1-4,0=all}..plt. vs frq polB
corplit sbcNum(0=all) pol(=0a,1=b)(flag 0/1 do not reset cipl%).corpl use
s.
corpos scan.rec ..position to scan.rec (rec is 5 digits)
corposnr scan.rec ..position to scan.rec (rec is 5 digits) no rewind.
corprint .. print hdr info to stdout
corpw regstart scan numrecs.. store polA,B,AZ,ZA to 8 registers.
corpwr ..move power info to x . 4 numbers each board
corpwrl regOut scan numrecs.. sto pwr info,AZ,ZA
correw ..reset pointer to start of current file
corsec sbcnum pol(0,1)..sec section for sbc 1-4, 0 all A or B,-1 all A+B
corseek recnum.. seek to record num..no input
corsmooth ..called before display.. data in x-reg
corsplab reg1 .. split xpolA->reg1, xpolB->reg1+1
corsum scan nrecs.. compute summary rec for scan. sto in 5,6
doit scan recs ..
domany regSrc regCal scanSt numSets recSrcOn..doset numSets times
doset regSrc regCal scanSt recSrcOn .on/off src then on/off cal
dosrc reg scan npairs rec/scan... load avg
gzacor ..compute gain(ZA) for ZA in xreg. return in xreg
gzacor1 ZA .. compute gain(ZA) for input ZA. return in pl(1)
medfonoff regStore scan numrecs.. medianfilter then on/off-1
medfscan regStore scan numrecs.. median filter recs of scan
ndoit scan numpairs numrecs ..
ndoitsto regSt scanSt numPairs numrecs..sto (on-off)/off
npair numpairs numrecs.. accumulate n pairs
pair numrecs.. process 1 pair
pairpl {sbc:1-4,0=all}..load,plt vs frq last onoff
pairpl. {sbc:1-4,0=all}..load,plt. vs frq last onoff
pairpla {sbc:1-4,0=all}..load,plt vs frq polA last onoff
pairpla. {sbc:1-4,0=all}..load,plt. vs frq polA last onoff
pairplb {sbc:1-4,0=all}..load,plt vs frq polB last onoff
pairplb. {sbc:1-4,0=all}..load,plt. vs frq polB last onoff
stokesc reg..load @i,@q,@u,@v,cmp delta,tau. plot delta. circdata
stokesl reg..load @i,@q,@u,@v,cmp delta,tau. plot delta. lin data
storec regSt scn nrecs .. sto bandpasses
storecnr regSt scn nrecs .. sto bandpasses
strippr reg1 reg2 offset step.. strip plt vs freq.
tzacor ..compute ZA Tsys correction. input ZA in x. return in x
tzacor1 ZA .. compute Tsys ZA correction for ZA ,return in p1
DESCRIPTION
----------------
register usage:
----------------
1 - band1 both pol raw data
2 - band2 both pol raw data
3 - band3 both pol raw data
4 - band4 both pol raw data
5 - flipped,and scaled (polA) for all brds concatenated
6 - flipped,and scaled (polB) for all brds concatenated
7 - default freq array for corget,cordisp displays
8 -
9 - scratch reg for corpwrl,corsum (9,10)
10-27 scratch for tsyscon
addon,addoff for a single pair
20 - addon A
21 - addon B
22 - addoff A
23 - addoff B
24 - (on-off)/off A
25 - (on-off)/off B
28,29 - scratch for dosrcplx
--------------------------------------
variables used:
--------------------------------------
regS - start reg set by dosrc, used by dosrcplx
regE - end reg for storing pair on/off set by dosrc, used by dosrcplx
regA - reg for average all pairs. set by dosrc, used by dosrcplxx
stroff - offset for first strip. set by dosrcsclx, used by dosrcpl1,2a,2b
strstp - step for each strip. set by dosrcsclx, used by dosrcpl1,2a,2b
fcioff - function to change offset of polB when plotting. used by
corget,cordisp,dosrcpl3,pairpl,pairpl1
--------------------
basic functions
--------------------
atoldata .. attach online datafile default datafile
corinfo .. display current state
corget scan.rrrrr
.. read in scan.rrrrrr (default next rec) and load data:
reg 1-4 raw data, unflipped, unscaled
reg 5-6 flipped, scaled,and smoothed data.
5 1st sbc of each board (polA) concatenated
6 2nd sbc of each board (polB) concatenated (if used)
If fcidisp is not zero, cordisp will be called to display
the data.
ex: corget .. get next record
corget .00032 .. get record 32 of current scan
corget 123. .. get 1st rec scan 123
corget 123.00003 .. get record 3 of scan 123
note: use correw if you have positioned beyond the requested scan.
scannumber 815600012 can be abbreviated 12 until you
hit a day change (8157xxxxxx).
corsum scan.rrrrr
.. input and compute the summary record for the scan.
Store the summary record in registers 5 and 6.
The azimuth and zenith angle for each record is stored in
the scratch arrays @az, @za.
Use cordisp or corpl to disp the data.
ex: corsum .. compute summary at current position
ex: corsum 123 .. compute summary for scan 123
note: you need to do a correw if you are positioned beyond the
requested scan.
storec reg scan nrecs
.. input nrec records starting at scan. store each record
(bandpasses) starting at register reg. PolA and PolB are
concatenated into a single register. This will happily
cross scan boundaries. Use corpl1 reg to display the data.
-----------------
general plotting
-----------------
With data stored in a register pair (say reg 5=polA, reg 6=polB) use
cordisp, corpl. When data is stored with all data in 1 register
(pol A followed by polB) use corpl1 to display the data.
cordisp .. display the data reg 1-4 (fcidisp 1) or reg 5-6
(fcidisp 2). Use plotxy with freq reg set by fcifreq reg.
polB is offset by the value from fcioff. You load whatever
you want in the freq reg.
corpl {reg} {sbcnum}
corpla {reg {sbcnum}optional reg}
corplb {reg} {sbcnum}
display the spectra vs frequency. If sbcnum is given, then
just plot that sub correlator. If A/B is used then ju
st plot
polA. reg can be:
none - default to 5,6 .. registers loaded by corget.
< 30 - use reg and reg+1 for pola,polB
>=30.. register has polA,polB packed in 1 register
(see storec, doset,domany, etc..)
see help corpl
ex: corpl .. plots 5 (polA), 6 (polB) vs corfrq
ex: corpl 24 .. plots 24 (polA), 25 (polB) vs corfrq
SEE ALSO help corpl
corpl. {optional reg}
same as corpl but uses plotxy. for plotting.
multiple calls within a function will overplot.
ex: corpl. .. plots 5 (polA), 6 (polB) vs corfrq
ex: corpl. 24 .. plots 24 (polA), 25 (polB) vs corfrq
corpos scan
.. position to start of scan. A rewind is automatically done
before the positioning.
ex: corpos 123 .. position to scan 123.
corposnr scan
.. position to start of scan with no rewind. Scan must be
after current position in file (if not use corpos).
For
large files doing sequential positioning, this r
outine is
than corpos.
ex: corposnr 123 .. position to scan 123.
corseek recnum
.. seek to record recnum of current scan. The record is not input.
correw .. rewind to start of file
corlist .. list current file attached as data
corprint .. print out hdr info of last record input
corhdr .. print entire header of last record input
corpwr .. extract power info from header for current record. 16 numbers
in sbc order are stored in x reg:
sbc1pcA sbc1pcB sbc1lag0A sbc1lag0B ..
sbc2pcA sbc2pcB sbc2lag0A sbc2lag0B .. etc
corpwrl reg1 scan numRecs
.. read numRecs records starting at scan. extract the
power information,AZ,ZA and store in registers.
The nth entry in a register is from the nth record input.
register 9 is used as a scratch register.
reg1 : lag0A sbc1
reg1+ 1: lag0A sbc2
reg1+ 2: lag0A sbc3
reg1+ 3: lag0A sbc4
reg1+ 4: lag0B sbc1
reg1+ 5: lag0B sbc2
reg1+ 6: lag0B sbc3
reg1+ 7: lag0B sbc4
reg1+ 8: pwrCA sbc1
reg1+ 9: pwrCA sbc2
reg1+10: pwrCA sbc3
reg1+11: pwrCA sbc4
reg1+12: pwrCB sbc1
reg1+13: pwrCB sbc2
reg1+14: pwrCB sbc3
reg1+15: pwrCB sbc4
reg1+16: AZ position
reg1+17: ZA position dome
where reg(n) is the nth record from the start.
----------------------------------
utility routines
----------------------------------
coravgp regnum
average polA,B. If regnum <=30 then pola is in regnum and
polB is in regnum+1. If regnum > 30 then polA,polB are pa
cked
in regnum. The averaged functions are left in the x-reg.^
SEE ALSO help coravgp^M
corfrqcfr cfrsbc1 cfrsbc2 cfrsbc3 cfrsbc4^M
Define the center frequency for the 4 subbands.
Used by corfrq, corpl...
ex. if cfr 1370 1390 1410 1420:
corfrqcfr 1370 1390 1410 1420:
if 1 pol/sub correlator.. 1370A 1370B 1390A 1390B then:
corfrqcfr 1370 1390
corfrqcfra/b cfrsb1 cfrsb2 cfrsb3 cfrsb4
define center frequency for polA or B sbc. Same as corfrqcfr
but allows polA and polB to not cover the same frequency range.
corfrq {0,1}
load the x register with the frequency values for polA or polB.
(0== polA, 1==polB). Used by corpl,pairpl, etc..
ex. corfrq 0 .. loads x-reg with polA freq.
corext sbcN {reg}
extract sbc N (N=1..4) from reg 5,6 or reg,reg+1r
x=polA,y=polB,z=freqA.
corhor {1..4}
set horizontal frequency scale for sbc n =1 to 4.
SEE ALSO help corhor
corld {reg} {polA,B 0,1} {unpacked:1/0}
load spectra into x-reg. used mainly by other functions
.
SEE ALSO help corld
corsbci sbcnum 0/1
return indices in reg 5,6 for sbcnum. 0==polA, 1==polB. return
info in pl array.
ex. corsbci 2 0
pl(1 2) index start,end in reg
pl(3 4) frequency start/end
pl(5) length this sbc.
corsec {sbc} {pola,b: 0,1}
set section size to display sbc.
SEE ALSO help corsec
corcmbab reg1 reg2
assume reg1,reg2 hold pola,polB. combine these in the x-reg
so you have polA followed by polB.
corsplab reg1
assume x-reg has polA followed by polb. Put polA in reg1
and polB in reg1+1.
medfscan regStore scan numrecs
median filter by channel the records in scan. There are
numrecs records in scan. Leave the median filter spectra in
x-reg. Use regStore to regStore+numrecs-1 as scratch.
medfscan 101 123 50 ..
medfonoff regStore scan numrecs
median filter by channel scan and scan+1 and then compute
on/off. Leave data in regs:
reg 20 - median filtered on position. polA followed by polB
reg 21 - median filtered on position. polB
reg 22 - median filtered off position. polA followed by polB
reg 23 - median filtered off position. polB
reg 24 - on/off-1 .
medfonoff2 regStore scan numrecs
compute on/off-1 by rec and then median filter.
used regStore to regStore +2*numrecs-1 as scratch
Leave data in regs:
reg 23 - median filtered off position. polB
reg 24 - on/off-1 .
-----------------------------------
on/off position switching routines
-----------------------------------
general routines:
doit scan recs
.. position, do a single pair, then plot the results:
corpos scan; pair recs; pairpl
ex: doit 123 2 .. do a on/off pair starting at scan 123 with
2 recs in on and 2 in off.
data is left in registers 24 polA, 25 polB
pairpl {reg}
.. plot on/off-1 for the data in registers reg (polA) and
reg+1 (polB). offset polB by value from fcioff. Default
register is 24,25. This routine is the same as corpl (
except that the default register is different).
ex: pairpl .. plot on/off-1 from register 24,25 vs 8
pairpl 28 .. plot on/off-1 from register 28,29 vs 8
dosrc regSt scan numpairs recs/scan
.. process numpairs on/off pairs starting at scan. Store the
individual on/off-1 starting at regSt (polA followed by polB
in one register). Compute the average for all the on/off-1
and store in register regSt+numpairs. Set the variables
regS:start reg, regE:endReg regA:average reg. These
are used by the dosrcplXX routines.
ex: dosrc 31 123 10 4 .. do 10 pairs starting at scan 123.
store each on/off-1 starting at reg 31. There are 4 recs
in an on or off. The average will be stored in
reg 31+10=41. Plot the average with corpl1 41.
domany regSrc regCal scan numsets recsSrcon
.. call doset to process an on/off src starting at scan, then
process a cal on/off pair. repeat this for numSets times.
This routine should be used to process data taken with the
coronoffnewXX datataking routine.
register usage:
regSrc,regSrc+numSets-1.. the on/off-1 for the src scans
regSrc+numSets .. the avg for the src on/off-1
regCal,regCal+numSets-1.. the on/off-1 for the cal scans
regCal+numSets .. the avg for the Cal on/off-1
This routine assumes:
1. that there are recsSrcOn records for the source on or
off in each scan.
2. that the cal on /off each contain a single record.
3. that the scan numbers are contiguous.
4. the src average will be meaningful if it was the
same src.
ex: domany 101 151 123 10 5
Process 10 sets of on/off, cal pairs.
The scan for the first on is 123
Store the src data in reg 101-110, avg in 111
Store the cal data in reg 151-160, avg in 161
there are 5 records in each src scan.
corpl1 111 will look at the src average.
routines used by the above:
clear
.. clear on/off accum registers (20-23)
addon numrecs
.. add numrecs (default 1) to the on registers (20,21)
addoff numrecs
.. add numrecs (default 1) to the off registers (20,21)
pair numrecs
.. Do an on/off pair from the current disc position:
clear;addon numrecs;addoff numrecs; compute on/off -1
20,21 have the sum of ons, 22,23 have the sum of offs
24,25 have on/off-1 (polA,polB)
ex: pair 4 .. do on/off pairs with 4 records per scan
npair numpairs numrecs
.. accumulate numpairs pairs startin at the current position,
then compute on/off-1. The results are stored in reg 20-25
ex: npair 4 4 .. process 4 pairs. each pair has 4 recs in on,off.
ndoit scan numpairs numrecs
.. position to scan, accumulate numpairs pairs, then plot
the results. The data is stored in reg 20-25.The code is:
corpos;npair numpairs numrecs;pairpl
ex: ndoit 123 5 2 ... position to scan 123 then accumulate 5 pairs
each with 2 recs per on, off.
ndoitsto reg scan numpairs numrecs
.. process numpairs pairs. Store the on/off-1 starting at
register reg (polA followed by polB in 1 reg).
each on/off pair should have numrecs records in an on or off.
ex: ndoitsot 31 123 10 3 .. process 10 pairs starting at scan
123. Each pair has 3 recs in the on or off. Store the
individual on/off-1 starting at reg 31.
online:
corclose . close socket for monitoring
-----------------------------------
misc functions
-----------------------------------
gzacor1 ZA ..compute the telescope gain at zenith angle=za. Return value
in pl(1). Units are Tsys(ZA=3deg).
gzacor ..compute the telescope gain from Analyz angles
passed in via the x-register. Return the gain the in x-reg.
Units are Tsys(ZA=3deg).
tzacor1 ZA ..compute the system temperature correction for ZA.
return value in pl(1). Normalized so Tsys(ZA=3) is unity.
tzacor ..compute the system temperature correction for Analyz angles
passed in the x-register. Return the corrections in x-reg.
Normalized so Tsys(ZA=3) is unity.
********************************************************************************