Generating Example SBs

Introduction

The PDM library includes a module called builders which provides functions for generating basic Scheduling Block Definition PDM objects. If this is imported into a Python environment, it gives the user access to two functions that can create relatively simple Scheduling Block Definitions (SBDs) for SKA-Mid (mid_imaging_sb) and SKA-Low (low_imaging_sb).

If these functions are run without any arguments, an SBD will be created that is complete and valid in the sense that it should be possible to perform a basic imaging observation with it. This is done by assuming the following defaults.

Low

  • Array: the four stations corresponding to Phase 1 of AA0.5

  • Source: 47 Tuc (00:24:05.359, -72:04:53.20)

  • Correlator: one spectral window (spw) with a central freqency close to 200 MHz and a bandwidth of 75 MHz

  • Scan sequence: one 60-s scan

Mid

  • Array: the 4 AA0.5 dishes

  • Source: SGRS J0400-8456 (04:01:18.4, -84:56:35.9)

  • Correlator: one spw with a bandwidth of 268.8 MHz (20,000 channels) and a central frequency of 800 MHz (Band 1)

  • Scan sequence: one 60-s scan

In both cases, the spws correspond to the standard-correlation modes (non-zoom) that will be used in AA0.5.

Changing the defaults

If desired, it is possible to change all these defaults via arguments to the function call. In the following example, we show how for a SKA-Low SBD we define two targets using ICRS coordinates. The resulting SBD will include one scan of each using the default duration of 60s. Note that it is necessary to import the ICRSObject class in order to define a target of this type.

# Imports
$ from ska_oso_pdm import builders
$ from ska_oso_pdm.builders import ICRSObject

# Define the targets
$ target1 = ICRSObject(name="PKS J0408-6545", ra="04:08:20.37884", dec="-65:45:09.0806")
$ target2 = ICRSObject(name="47 Tuc", ra="00:24:05.359", dec="-72:04:53.20")
# Run the builder with the target definitions given as arguments
$ sbd = builders.low_imaging_sb(stations=[345,350],targets=[target1,target2])

In a second example, we modify a SKA-Mid SBD to observe a solar-system object (by importing the SolarSystemObject class) for longer than the default scan duration. Solar-system objects recognised by the telescope control software are the seven planets (excluding the Earth!), the Sun and the Moon.

Note that scan durations are given in milliseconds! Further note that even a single target has to be placed in a list - this is not the case for a single scan duration which will be applied to all targets.

# Imports
$ from ska_oso_pdm import builders
$ from ska_oso_pdm.builders import SolarSystemObject

# Define the solar-system target
$ target = SolarSystemObject(name="Mars")
# Run the builder with the target definition and scan duration given as arguments
$ sbd = builders.mid_imaging_sb(targets=[target],scan_duration=600e3)

Further information

See the API documentation ska_oso_pdm.builders for the full list of available functions. A further target class exists for performing five-point calibration scans using a target defined using ICRS coordinates (ICRSObjectFivePoint) but this is not currently supported.