Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.naic.edu/~astro/spectral_line/handbook_old/app/old_analyz.html
Дата изменения: Wed Sep 20 02:21:10 2000 Дата индексирования: Sun Dec 23 05:24:20 2007 Кодировка: Поисковые слова: interstellar medium |
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 donot reset cipl%).corpl uses. 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 concantenated 6 - flipped,and scaled (polB) for all brds concantenated 7 - default freq array for corget,cordisp displays 8 - 9 - scratch reg for corpwrl,corsum (9,10) 10-27 scratch for tsyscon addon,addof 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. ^L ----------------- 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 (ficdisp 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 just 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 seqential positioning, this routine 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 packed in regnum. The averaged funtions are left in the x-reg. SEE ALSO help coravgp corfrqcfr cfrsbc1 cfrsbc2 cfrsbc3 cfrsbc4 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 valuse 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 freqendy 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 . ^L ----------------------------------- 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 meaningfull 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. ^L 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 ^L ----------------------------------- 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 fo zenth 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 zenth angles passed in the x-register. Return the corrections in x-reg. Normalized so Tsys(za=3) is unity.
********************************************************************************