Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

VCSBeam version

Required: >= v2.18.1.8

Code Block
languagebash
themeMidnight
# On Garrawarla, test vcsbeam version
$ module use /pawsey/mwa/software/python3/modulefiles
$ module load vcsbeam
$ make_mwa_tied_array_beam -V
MWA Beamformer v2.18.28_1b22db0

...

99df2a4

Offline FinePFB

Code Block
languagebash
themeMidnight
$ cd /astro/mwavcs/vcsasvo/1318345216/combined251861
$ forwget freq in {109..120}
do
    sed "s/FREQ/${-O 1318345216.fits http://ws.mwatelescope.org/metadata/fits?obs_id=1318345216
$ cd /astro/mwavcs/vcs/1318345216/combined
$ for freq in {109..120}
do
    sed "s/FREQ/${freq}/" < make_legacy.sbatch > make_legacy_ch${freq}.sbatch
    sbatch make_legacy_ch${freq}.sbatch
done

...

Code Block
languagebash
themeMidnight
titlemake_legacy.sbatch
collapsetrue
#!/bin/bash -l

#SBATCH --nodes=1
#SBATCH --cpus-per-task=1
#SBATCH --ntasks-per-node=1
#SBATCH --mem=370gb
#SBATCH --partition=gpuq
#SBATCH --gres=gpu:1
#SBATCH --time=01:00:00
#SBATCH --account=mwavcs
#SBATCH --export=NONE

module use /pawsey/mwa/software/python3/modulefiles
module load vcsbeam
module load openmpi-ucx-gpu

DATAPATH=/astro/mwavcs/asvo/251861

srun -N 1 -n 1 fine_pfb_offline -m $DATAPATH/1318345216.metafits -b 1318345216 -T 600 -f FREQ -d $DATAPATH

...

Incoherent Beam

Code Block
languagebash
themeMidnight
$ cd /astro/mwavcs/vcs/1318345216/calvcsbeam/1318345216/visincoh
$ for freq in {109..120}
do
    sed "s/FREQ/${freq}/" < offline_correlate.sbatch > offline_correlate_${freq}.sbatch
    sbatch offline_correlate_${freq}.sbatch
done
Code Block
languagebash
themeMidnight
titleoffline_correlate.sbatch
collapsetrue
#!/bin/bash -l

#SBATCH --nodessbatch vcsbeam_incoh.sbatch


Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/vcsbeam/incoh/vcsbeam_incoh.sbatch
collapsetrue
#!/bin/bash -l

#SBATCH --nodes=12
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --mem=370gb
#SBATCH --partition=gpuq
#SBATCH --gres=gpu:1
#SBATCH --time=0100:0030:00
#SBATCH --account=mwavcs
#SBATCH --exportnice=NONE

0
#SBATCH --export=NONE
 
module use /pawsey/mwa/software/python3/modulefiles
module load offline_correlatorvcsbeam
 for
tsrun in {0..299}
do

    gpssecond=$(echo "$t + 1318345220" | bc)
    gpubox=$(echo "FREQ - 108" | bc)-N 12 -n 12 make_mwa_incoh_beam \
    -m /astro/mwavcs/vcs/1318345216/combined/1318345216_legacy.metafits \
    -b 1318345216 \
    -T 600 \
    -f 109 \
     INPUT_DATA_FILE=-d /astro/mwavcs/vcs/1318345216/combined/1318345216_${gpssecond}_chFREQ.dat \
     START_SECOND=${gpssecond}
    DUMPS_PER_SECOND=1 # This sets the output time resolution
                    # (e.g. 20 --> 1/20 = 0.05s = 50 ms)
                    # Minimum allowed resolution is 2 ms
    CHANS_TO_AVERAGE=4 # This sets the output frequency resolution
                   # (e.g. 4 --> 4x10 kHz = 40 kHz)
    GPUBOX_CHANNEL_NUMBER=${gpubox} # This should be chosen to "match" the input channel
                         # This is not easy! (mwalib handles this, but at the
    -o incoh

After beamforming finishes, fold on B0031-07:

Code Block
languagebash
themeMidnight
$ module load singularity
$ /pawsey/mwa/singularity/presto/presto.sif prepfold -psr J0034-0721 -nosearch -nodmsearch incoh*.fits

Image Added

The pulsar is clearly there, but there is a lot of RFI. After some experimenting, I find that the last 38% or so is RFI free:

Code Block
languagebash
themeMidnight
$ pawsey/mwa/singularity/presto/presto.sif prepfold -psr J0034-0721 -start 0.62 -nosearch -nodmsearch incoh*.fits

Image Added

Therefore, I should only use this section of the data to get a calibration solution.

Calibration

Offline Correlator

Code Block
languagebash
themeMidnight
$ cd /astro/mwavcs/vcs/1318345216/cal/1318345216/vis
$ for freq in {109..120}
do
    sed "s/FREQ/${freq}/" < offline_correlate.sbatch > offline_correlate_${freq}.sbatch
    sbatch offline_correlate_${freq}.sbatch
done


Code Block
languagebash
themeMidnight
titleoffline_correlate.sbatch
collapsetrue
#!/bin/bash -l

#SBATCH --nodes=1
#SBATCH --mem=370gb
#SBATCH --partition=gpuq
#SBATCH --gres=gpu:1
#SBATCH --time=01:00:00
#SBATCH --account=mwavcs
#SBATCH --export=NONE

module use /pawsey/mwa/software/python3/modulefiles
module load offline_correlator

for t in {0..599}
do

    gpssecond=$(echo "$t + 1318345216" | bc)
    gpubox=$(echo "FREQ - 108" | bc)

    INPUT_DATA_FILE=/astro/mwavcs/vcs/1318345216/combined/1318345216_${gpssecond}_chFREQ.dat
    START_SECOND=${gpssecond}
    DUMPS_PER_SECOND=1 # This sets the output time resolution
                    # moment, offline_correlator is not using mwalib)
    OUTPUT_PREFIX=1318345216 # Output files begin with this(e.g. 20 --> 1/20 = 0.05s = 50 ms)
             srun -N 1 -n 1 offline_correlator \ # Minimum allowed resolution is 2 ms
   -d ${INPUTCHANS_DATA_FILE} \
     TO_AVERAGE=4 # This sets the output frequency resolution
  -s ${START_SECOND} \         -r ${DUMPS_PER_SECOND} \    # (e.g. 4 --> 4x10 -n ${CHANS_TO_AVERAGE} \
        -c ${GPUBOX_CHANNEL_NUMBER} \kHz = 40 kHz)
    GPUBOX_CHANNEL_NUMBER=${gpubox} # This should be chosen to "match" the input channel
            -o ${OUTPUT_PREFIX}  done

RTS

Create source list

Code Block
languagebash
themeMidnight
titleCreate source list
$ cd /astro/mwavcs/vcs/1318345216/cal/1318345216 $ module load srclists/v1.0.0 $ srclist_by_beam.py -m /astro/mwavcs/vcs/1318345216/1318345216_metafits_ppds.fits -n 1000 -s ${SRCLISTS_DIR}/srclist_pumav3_EoR0aegean_EoR1pietro+ForA.txt

Set up flagged tiles

To find which tiles need to be flagged, find the broken tiles by going to the observation status page (http://ws.mwatelescope.org/observation/obs/?obs_id=1318345216). In the section "Tile errors and flags", you will find the "TileNames" for any tiles that should be flagged. Then, in the metafits file for the observation, you will find the "Input" numbers associated with the X and Y polarisations of each tile. The numbers you need to put in the "flagged_tiles.txt" are the Input numbers divided by two (and possibly rounded down). For example, in 1318345216, Tile064 is listed as broken, and in the metafits file, that tile's polarisations are associated with inputs 144 & 145. This means that the number that goes into flagged_tiles.txt for this tile is 72. In this way, the following list is constructed for this observation.

Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/cal/1318345216/rts/flagged_tiles.txt
1
12
45
51
60
72
93
94
112

Set up flagged channels

...

 # This is not easy! (mwalib handles this, but at the
                         # moment, offline_correlator is not using mwalib)
    OUTPUT_PREFIX=1318345216 # Output files begin with this

    srun -N 1 -n 1 offline_correlator \
        -d ${INPUT_DATA_FILE} \
        -s ${START_SECOND} \
        -r ${DUMPS_PER_SECOND} \
        -n ${CHANS_TO_AVERAGE} \
        -c ${GPUBOX_CHANNEL_NUMBER} \
        -o ${OUTPUT_PREFIX}

done

RTS

Create source list

/vcs/1318345216/cal/1318345216/rts/flagged_channels.txt
Code Block
languagebash
themeMidnight
titleCreate source list
$ cd /astro/mwavcs
0
1
16
30
31/vcs/1318345216/cal/1318345216
$ module load srclists/v1.0.0
$ srclist_by_beam.py -m /astro/mwavcs/vcs/1318345216/1318345216_metafits_ppds.fits -n 1000 -s ${SRCLISTS_DIR}/srclist_pumav3_EoR0aegean_EoR1pietro+ForA.txt

Set up flagged tiles

To find which tiles need to be flagged, find the broken tiles by going to the observation status page (http://ws.mwatelescope.org/observation/obs/?obs_id=1318345216). In the section "Tile errors and flags", you will find the "TileNames" for any tiles that should be flagged. Then, in the metafits file for the observation, you will find the "Input" numbers associated with the X and Y polarisations of each tile. The numbers you need to put in the "flagged_tiles.txt" are the Input numbers divided by two (and possibly rounded down). For example, in 1318345216, Tile064 is listed as broken, and in the metafits file, that tile's polarisations are associated with inputs 144 & 145. This means that the number that goes into flagged_tiles.txt for this tile is 72. In this way, the following list is constructed for this observation.

Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/cal/1318345216/rts/flagged_tiles.txt
1
12
45
51
60
72
93
94
112

Set up flagged channels

Setting up the flagged channels is more straightforward. As a rule, we always flag the edge channels (80 kHz worth on either side) and the centre channel. Since we have averaged up to 40 kHz when we did the offline correlation step above, that means we will be flagging the outer two channels on either side (as 2 x 40 kHz = 80 kHz) and the single centre channel. Since there are 32 channels in this case, the final list of flagged channels is:

Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/cal/1318345216/rts/flagged_channels.txt
0
1
16
30
31

Selecting only the last 38% of the observation for calibration

One of the parameters passed to the RTS is the "basename" of the files containing the visibilities. In order to distinguish between the RFI-ridden visibilities and the clean ones, I will create soft links to the clean gpubox files (created in an earlier step) and change the case of the filenames (gpubox → GPUBOX). The first and last filenames are 1318345216_20111011150016_gpubox01_00.fits and 1318345216_20111011151015_gpubox12_00.fits, with the timestamp  in the format YYYYMMDDHHMMSS. To get the last 38%, I need to start 6:12 (mm:ss) into the observation, which means that my first clean file will be 1318345216_20111011150628_gpubox01_00.fits.

Code Block
languagebash
themeMidnight
titleCreate source list
$ cd /astro/mwavcs/vcs/1318345216/cal/1318345216/vis
$ ls 1318345216_2011101115062[89]_gpubox*.fits 1318345216_201110111506[3-5]?_gpubox*.fits 1318345216_20111011150[7-9]??_gpubox*.fits 1318345216_20111011151???_gpubox*.fits | while read f; do ln -s ${f} $(echo ${f} | tr 'gpubox' 'GPUBOX'); done

After doing this, the RTS ".in" file must be altered so that it's only looking for files with GPUBOX in the filename (see below).

Extra flags

After running the RTS (see below) and checking the solutions (using the python scripts supplied in VCSTools), I found that I also had to add 14 to the list of flagged channels, and 525359 and 61 to the list of flagged tiles. to the list of flagged channels, and 5253, 5459 and 61 to the list of flagged tiles.

Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/cal/1318345216/rts/flagged_tiles.txt
collapsetrue
1
12
45
51
52
53
54
59
60
61
72
93
94
112

Run the RTS

Code Block
languagebash
themeMidnight
titleRun the RTS
$ cd /astro/mwavcs/vcs/1318345216/cal/1318345216/rts
$ sbatch /astro/mwavcs/vcs/1318345216/batch/RTS_1318345216.batch

...

Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/batch/RTS_1318345216.batch
collapsetrue
#!/bin/bash -l

#SBATCH --export=NONE
#SBATCH --output=/astro/mwavcs/vcs/1318345216/batch/RTS_1318345216.out
#SBATCH --account=mwavcs
#SBATCH --clusters=garrawarla
#SBATCH --partition=gpuq
#
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=10240MB
#SBATCH --nice=0
#SBATCH --chdir=/astro/mwavcs/vcs/1318345216/cal/1318345216/rts
#SBATCH --time=20:0045:00
#SBATCH --nodes=13
#SBATCH --cpus-per-gpu=1
#SBATCH --gres=gpu:1

ncpus=1
export OMP_NUM_THREADS=1


module use /pawsey/mwa/software/python3/modulefiles/
module load vcstools/master

module load RTS/master


cd /astro/mwavcs/vcs/1318345216/cal/1318345216/rts
export UCX_MEMTYPE_CACHE=n
srun --export=all -N 13 -n 13 rts_gpu /astro/mwavcs/vcs/1318345216/cal/1318345216/rts/rts_1318345216.in
# ^^^^ 13 = 12 coarse channels (1 node per coarse channel) + 1 master node

...

Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/cal/1318345216/rts/rts_1318345216.in
collapsetrue
ReadAllFromSingleFile=
BaseFilename=/astro/mwavcs/vcs/1318345216/cal/1318345216/vis/*_gpuboxGPUBOX
ReadGpuboxDirect=0
UseCorrelatorInput=1

ReadMetafitsFile=1
MetafitsFilename=/astro/mwavcs/vcs/1318345216/1318345216

DoCalibration=
doMWArxCorrections=1
doRawDataCorrections=1
doRFIflagging=0
useFastPrimaryBeamModels=0
generateDIjones=1
applyDIcalibration=1
UsePacketInput=0
UseThreadedVI=1

MaxFrequency=170.24
ObservationFrequencyBase=138.895
ObservationTimeBase=2455846.1252314816
ObservationPointCentreHA=-0.35952189154909175
ObservationPointCentreDec=-5.98757073636307
ChannelBandwidth=0.04
NumberOfChannels=32

CorrDumpsPerCadence=128
CorrDumpTime=1.0
NumberOfIntegrationBins=6
NumberOfIterations=1

StartProcessingAt=0

ArrayPositionLat=-26.7033194
ArrayPositionLong=116.6708152
ArrayNumberOfStations=128

ArrayFile=

SourceCatalogueFile=/astro/mwavcs/vcs/1318345216/cal/1318345216/srclist_pumav3_EoR0aegean_EoR1pietro+ForA_1318345216_patch1000.txt
NumberOfCalibrators=1
NumberOfSourcesToPeel=0
calBaselineMin=20.0
calShortBaselineTaper=40.0
FieldOfViewDegrees=1

...

(MEMO TO SELF: write a utility script to do this for you.)

Beamform

For the time being, we have to "trick" the beamformer into thinking this is a legacy VCS observation, instead of an MWAX VCS observation. I did this by creating a copy of the metafits file and changing the "MODE" and "NCHANS" fields to 'VOLTAGE_START' and 3072, respectively. [MEMO TO SELF: add an option to "force" the beamformer to treat it as a legacy obs, if you want to beamform from the .dat files produced by the offline PFB.]

...

Code Block
languagebash
themeMidnight
$ cd /astro/mwavcs/vcs/1318345216/vcsbeam
$ /PATH/TO/rts_flag_ant_to_tilenames.py 1318345216_cal.metafits flagged_tiles.txt > /PATH/TO/rts_flag_ant_to_tilenames.py 1318345216_cal.metafits flagged_tiles.txt > flagged_tilenames.txtflagged_tilenames.txt


Code Block
languagebash
themeMidnight
title/astro/mwavcs/vcs/1318345216/vcsbeam/flagged_tilenames.txt
collapsetrue
HexS31
HexE16
Tile017
Tile091
Tile098
Tile097
Tile096
Tile081
Tile088
Tile087
Tile064
HexE7
HexE6
HexS16


Code Block
languagebash
themeMidnight
$ cd /astro/mwavcs/vcs/1318345216/vcsbeam
$ echo "00:34:08.8703 -07:21:53.409" > pointings.txt
$ sbatch vcsbeam.sbatch

...