Legacy Fourfit notes
Please note: This information is likely out-of-date. It has simply been ported directly over from the old wiki for reference purposes.
Fourfit is the software that performs the multi-band delay fitting to the correlator visibilities. At present, magilla is set up with the latest version and has scripts installed which remove some of the donkey-work in preparing properly fringe-fitted data sets. The following recipe will work for data sets correlated at Curtin.
- Download the following files from the Pawsey server to ~/Downloads: AUG013.MARK4.tar.gz, aug013.vex and aug013.v2d
- Run “postcorr_prep.sh aug013” to copy the data across to /data/AUSTRAL/ extract them into the appropriate folders. It will also get you to check the ovex files station ID assignments and generate the apriori SNR file (delete all the leading text before the first two headers).
- After completing the initial fringe-fitting (using the default settings defined by /data/AUSTRAL/cf_aust), you will be prompted to enter a command like “cd /data/AUSTRAL/aug013/1344 ; export CORDATA=/data/AUSTRAL/aug013/ ; export DATADIR=/data/AUSTRAL/aug013/ ; aedit -f alist.ed.out”. Do so, and you will be able to make a first inspection of the data.
After running “edi dup snr”, run “psplot” and check for either grey scans (uncorrelated data) or brown ones indicating non-detections. If found, make sure there's a sensible/known reason for them (module failure, antenna windstowed, etc). If there's no explanation, get in contact with the correlator ASAP.
There are two machines set up to run fourfit at present - hex2 (through the hex2:1 VNC session) or ACECOMPUTE (using acecompute.antcrc.utas.edu.au:1). The two systems give slightly different results, thought to be due to the difference in the 32/64-bit compilers. The 32-bit version on hex2 occasionally gives unreliable estimates of the SNR, while the 64-bit version on ACECOMPUTE does not. Bonn also uses the 64-bit version, so ACECOMPUTE in strongly recommended for use in processing the data.
Make a directory and download the tarball from CURTIN into this directory [
mkdir AUST10 ; cd AUST10; wget -c ftp://cira.ivec.org/aust10/AUST10.MARK4.tar]
Untar the AUST10.MARK4.tar file to create the 1234 directory. Copy the ~/cf_aust template file into the 1234 directory as cf_1234 [
cp ~/cf_aust ~/AUST10/1234/]
Change to the 1234 directory and create a list of scans with
cd ~/AUST10/1234/ ; ls -d 219-* 220* > /tmp/scans (Replacing the 219 and 220 with the appropriate DOYs for the experiment.
Now perform an initial fourfit on the data. You need to do this scanwise as there are often corrupted scans in the data set which will crash fourfit otherwise. The script below gives verbose output for each scan:
for i in $(cat /tmp/scans) ; do fourfit -m 1 -c cf_1234 $i ; done
A more concise version is included below:
parallel fourfit -c cf_1234 ::: $(ls -d 12*)
Once the fourfit processes are complete (15-30 minutes?), run alist with
alist * and then edit the file with the following commands
sed -i 's/ 16383 / 1234 /g' alist.out grep -v '0.000000 0.000 -1 -1' alist.out > alist.ed.out
Download the skd file and reprocess it into an ovex file. NB -
nskd_ovex.pl needs to have internet access - you'll need to define the proxy settings for most machines.
nskd_ovex.pl aust10.skd 1234 > 1234.ovex
Edit the ovex file & change the site IDs to match the Curtin ones
Warkworth = W Hobart12 = L Hart15 = g Katherine = i Yarragadee = e Hobart26 = H Hart26m = x
Define these two variables as the directories that contain the 1234 directory.
export CORDATA=/u/rd_scope/AUST10/ export DATADIR=/u/rd_scope/AUST10/
Then run alist and make it ready for use with:
aedit -f alist.ed.out edi dup snr
Phase Cal estimation
To generate pcal estimates for all the stations with working pcals, run the follwing commands in aedit
qc 1-9 sort basel sort freq edi inp param 72 54 55 22 pwrite additivephase.txt exit
~/phasedisp_c additivephase 7 30 fgrep Median phasedisp_c.out > med.txt
Check med.txt for the baselines. If your chosen reference station is the first station in the baseline, then the sign is correct, otherwise reverse it. Paste the median values in the “pc_phases..” lines in the cf_1234 file.
Once you've got these in the cf_1234 file, delete previous fourfit scans with
cd /data/AUSTRAL/AUST11/1234/ find . -name '??.X.*' -delete find . -name '??.S.*' -delete
and then reprocess all the scans with the correct pcal settings.
for i in $(cat /tmp/scans) ; do echo $i ; fourfit -c cf_1234 $i ; done
Then re-create the alist file with
alist * sed -i 's/ 16383 / 1234 /g' alist.out grep -v '0.000000 0.000 -1 -1' alist.out > alist.ed.out
Run aedit to check the results. “sum 2” should have a better tally of good scans and only a few H or G-codes.
NB - G-codes are caused by having a bad channel in the frequency group where it's sensitivity is < half of the average. For S-band, it's generally RFI that causes this but some stations have chronic poor performance in some LSB channels. If you detect a large number of G-codes, it may be worth dropping the channel. To do so, you need to edit the cd_1234 file once again and add a line like
if station W and f_group X freqs g h i j k l m n+
This will flag out the X8L channel [dubbed n- in HOPS] in the Warkworth data from the fitting process. Re-run fourfit on the affected scans and quickly check the results [ e,g, remove previous fourfit results with the find command above & then run
fourfit -pt -m 1 -c cf_1234 ddd-hhmm. Check that the G-code error is gone & that the scan is good. If so, reprocess the entire data set with the updated cf file and resume.
If you have a station with no [or weak] phase-cal, you will need to do a manual pcal. To do this, pick a scan with good SNR (50+) in both bands - you can check this within aedit with
axis snr baselines LW device /xs plot
[L == Hobart12 is being used as the reference station here, and W == Warkworth is the station lacking phasecal]
Once you've identified your scan, exit aedit
Modify your cf_1234 file to include these sections
if station W and f_group X pc_mode manual pc_phases ghijklmn 0 0 0 0 0 0 0 0
if station W and f_group S pc_mode manual pc_phases abcdef 0 0 0 0 0 0
With the modified the cf_1234 file, run fourfit on your selected scan [219-1239 in this example]
fourfit -pt -m 1 -c ../cf_1234 -bLW 219-1239
In he debugging output of each plot will be the estimated pcal phases for that scan. If the baseline is reference→manual pcal target, you'll need to reverse the sign on these after pasting them into your control file.
Once the cf_1234 file is updated, re-run fourfit and check that the phases are aligned on zero in all the individual IF channels for that scan. If not, check for a sign error? Also, check that other scans also show the IF phases aligned (although not necessarily on zero). If the manual pcal stops working after a certain time, you can re-fringe fit and specify valid time ranges for the varrious pcal values with
if station O and f_group S and scan < 256-165000 pc_phases abcdef -4.0 2.3 2.8 -1.7 1.0 -0.4
if station O and f_group S and scan 256-170000 to 258-165000 pc_phases abcdef -4.0 290.3 146.8 -1.7 73.0 -0.
if station O and f_group S and scan > 258-165000 pc_phases abcdef -4.0 2.3 2.8 -1.7 1.0 -0.4
Recreate the alist [with sed & grep -v as before], load it in aedit and check the “sum 2” or psplot outputs to make sure it's improved things.
If everything looks ok, then you're done with fourfit!