Pulsar-Mode Flux Calibration Observations#

When to Use This Quick Guide

This quick guide is for observing a flux calibration source. These data can be used to create a flux calibration solution with PSRCHIVE, which can then be used to calibrate data taken on a pulsar or FRB.

PSRCHIVE has a built-in list of standard flux calibrators and it is easiest to choose a source that is part of this list. We further recommend choosing sources that are part of the Perley & Butler (2017) VLA flux calibration catalog and that are known to be stable and spatially compact. Some good calibration sources are 3C196, 3C286, and 3C295.

The PSRCHIVE flux calibration tools are easiest to use when the pulsar and flux calibration data are all taken with the same observing set up (e.g. center frequency, bandwidth, number of frequency channels, polarization state, and dedispersion mode). This quick guide uses the GBT’s L-Band receiver with a center frequency of 1500 MHz, bandwidth of 800 MHz, 512 frequency channels, and native linear polarization. It also uses a VEGAS coherent dedispersion mode, even though the flux calibration data are not actually dispersed.

Overview#

First, we will define the configuration. We take advantage of the fact that configuration parameters are specified as strings that can be broken up into different groups and combined when a Configure() command is issued. This allows us to reduce redundant parameter specifications and the opportunities for errors.

Next, we provide a complete example of a simple observing script as well as some tips, tricks, and use of advanced scripting features.

Example Configuration#

Configuration Keywords Common to All Pulsar Modes#

The following configuration string is common to all pulsar modes.

 1config_common = """
 2obstype     = 'Pulsar'
 3backend     = 'VEGAS'
 4deltafreq   = 0.0
 5swtype      = 'none'
 6swper       = 0.04
 7swfreq      = 0
 8vdef        = 'Radio'
 9vframe      = 'topo'
10vlow        = 0.0
11vhigh       = 0.0
12"""

Receiver-Specific Configuration Keywords#

The following configuration keywords are receiver-specific. In this example, we will use the L-Band receiver.

1config_LBand = """
2receiver            = 'Rcvr1_2'
3pol                 = 'Linear'
4notchfilter         = 'In'
5nwin                = 1
6restfreq            = 1500.0
7dopplertrackfreq    = 1500.0
8bandwidth           = 800.0
9"""

Note

  • Not every receiver has a notch filter.

  • The value of nwin must match the number of rest frequencies.

  • You should choose a bandwidth that is well-matched to the frequency range of the receiver you are using.

VEGAS Configuration#

Common Keywords#

The following configuration string specifies keywords are common to both the pulsar fold-mode and calibration scans that we will perform. In this example, we will use the most frequently used parameters for high-precision pulsar timing.

1config_vegas_common = """
2tint                = 10.24e-6
3vegas.numchan       = 512
4vegas.scale         = 1585
5vegas.outbits       = 8
6vegas.fold_bins     = 2048
7vegas.fold_dumptime = 10.0
8vegas.polnmode      = 'full_stokes'
9"""

Note

  • This configuration will result in frequency channels that are approximately 1.5 MHz wide.

  • The recommended value of tint depends on the frequency resolution (i.e. the bandwidth, \(BW\), and number of channels, \(n_{chan}\)). The formula for calculating the recommended integration time \(t_{int}\) is \(t_{int} = \frac{16 \times n_{chan}}{BW}\).

  • The recommended value of vegas.scale depends on the dedispersion mode, bandwidth, and number of channels. See the VPM Observing Reference for recommendations for valid combinations of dedispersion mode / bandwidth / number of channels.

Keywords Specific to Calibration Scans#

These keywords specify the setup for taking data that can be used for polarization calibration. Not all science cases will require this, but it is recommended.

1vegas_config_cal = """
2swmode          = 'tp'
3noisecal        = 'lo'
4vegas.obsmode   = 'coherent_cal'
5"""

Note

  • See these links for more information about the following parameters: swmode and noisecal.

Observing Scripts#

This is a complete observing script that will perform a polarization calibration scan and a timing observation of a single pulsar.

 1# Load a source catalog
 2# pulsars_all_GBT is a built-in catalog
 3catalog = Catalog('/users/rlynch/Catalogs/psrchive_fluxcal.cat')
 4
 5source ='3C295'
 6cal_scan_length = 65
 7
 8
 9# Define config strings
10config_common = """
11obstype     = 'Pulsar'
12backend     = 'VEGAS'
13deltafreq   = 0.0
14swtype      = 'none'
15swper       = 0.04
16swfreq      = 0
17vdef        = 'Radio'
18vframe      = 'topo'
19vlow        = 0.0
20vhigh       = 0.0
21"""
22
23config_LBand = """
24receiver            = 'Rcvr1_2'
25pol                 = 'Linear'
26notchfilter         = 'In'
27nwin                = 1
28restfreq            = 1500.0
29dopplertrackfreq    = 1500.0
30bandwidth           = 800.0
31"""
32
33config_vegas_common = """
34tint                = 10.24e-6
35vegas.numchan       = 512
36vegas.scale         = 1585
37vegas.outbits       = 8
38vegas.fold_bins     = 2048
39vegas.fold_dumptime = 10.0
40vegas.polnmode      = 'full_stokes'
41"""
42
43vegas_config_cal = """
44swmode          = 'tp'
45noisecal        = 'lo'
46vegas.obsmode   = 'coherent_cal'
47"""
48
49
50ResetConfig()
51
52# Pointing/focus corrections using a source close to the pulsar
53AutoPeakFocus(location = source)
54
55Slew(source)
56
57# Configure for calibration observation
58Configure(config_common + config_LBand + config_vegas_common + vegas_config_cal)
59
60# Balance the IF system
61Balance()
62Balance()
63
64# Take calibration data
65OnOff(source, Offset("AzEl", 1.0, 0.0, cosv=False), cal_scan_length)

Note

  • It is highly recommended to perform an AutoPeakFocus() at the beginning of your session - this will ensure the telescope is set up correctly in addition to checking the pointing solution.

    Note

    The PF800 and PF342 receivers only require an AutoPeak().

  • We use an OnOff() command to automatically take data at the position of the flux calibrator and an offset location 1 degree away in elevation. Both scans are required to create a flux calibration solution using PSRCHIVE.

Tips#

  • A tutorial on how to calibrate pulsar data using PSRCHIVE can be found on the GBO internal computing network at /home/pulsar_rhel8/tutorials/calibration/instructions.txt

    Todo

    Check if that tutorial can be moved to GBTdocs.

  • For typical GBT pulsar observing frequencies (300 – 8000 MHz), it is best to choose a calibration source with a flux density of ~1 – 30 Jy. Choosing a fainter source can lead to low-quality calibration solutions due to low S/N. Choosing brighter sources can make it difficult to optimally balance the observing system for both the on- and off-source scans.

  • To check the flux density of standard PSRCHIVE calibration sources, use the command fluxcal -I [observing frequency in MHz]

    Here is an example using an observing frequency of 1500 MHz:

    fluxcal -I 1500
    

    returning the following output:

     1fluxcal: using file 
     2/home/pulsar_rhel7/share/fluxcal.cfg
     3  Cal source fluxes at 1500 MHz:
     4    1413+1509:  0.518458 Jy
     5          SCP:  1.04948 Jy
     6         3C48:  15.3686 Jy
     7        3C123:  45.6598 Jy
     8   J0444-2809:  6.45599 Jy
     9   J0519-4546:  63.7042 Jy
    10        3C138:  8.24598 Jy
    11        3C147:  21.0431 Jy
    12        3C196:  13.5565 Jy
    13        3C218:  41.2342 Jy
    14        3C274:  200.533 Jy
    15        3C286:  14.5665 Jy
    16        3C295:  21.2069 Jy
    17        3C348:  44.3007 Jy
    18        3C353:  54.58 Jy
    19        3C380:  12.4738 Jy
    20        3C405:  1467.31 Jy
    21        3C444:  8.44595 Jy
    22        3C190:  2.30913 Jy
    23    1445+0958:  2.32212 Jy
    24         3C43:  2.691 Jy
    25        3C394:  2.71085 Jy
    26    B2209+080:  1.62809 Jy
    27      NGC7027:  1.64269 Jy
    28   PKS1934-63:  14.6665 Jy
    29   PKS0408-65:  14.3454 Jy