ska_oso_pdm.sb_definition.csp

The csp package models SB entities concerned with CSP (Central Signal Processing) beam former and correlator configuration. Package contents are presented in the diagram below.

../../../_images/ska_oso_pdm_sb_definition_csp.svg

Class diagram for the modules within CSP

../../../_images/ska_oso_pdm_sb_definition_csp_pst.svg

Class diagram for the PST modules within CSP

An example serialisation of SKA-Mid CSP to JSON is shown below.

  "csp_configurations": [
    {
      "config_id": "csp-configuration-12345",
      "name": "csp config 123",
      "subarray": {
        "subarray_name": "science period 23"
      },
      "common": {
        "subarray_id": 1,
        "band_5_tuning": [
          5.85,
          7.25
        ]
      },
      "midcbf": {
        "frequency_band": "1",
        "subbands": [
          {
            "band_5_tuning": 12.3e9,
            "frequency_slice_offset": {
              "value": 0,
              "unit": "MHz"
            },
            "correlation_spws": [
              {
                "spw_id": 1,
                "logical_fsp_ids": [
                  1,
                  2
                ],
                "receptors":["SKA063", "SKA001", "SKA100"],
                "zoom_factor": 1,
                "centre_frequency": 800e6,
                "number_of_channels": 20000,
                "channel_averaging_factor": 1,
                "time_integration_factor": 1
              }
            ],
            "pst_spws": [
              {
                "spw_id": 2,
                "logical_fsp_ids": [
                  3
                ],
                "centre_frequency": 396291840,
                "number_of_channels": 3700
              }
            ]
          }
        ]
      }
    }
  ],

An example serialisation of SKA-Low CSP to JSON is shown below.

  "csp_configurations": [
    {
      "config_id": "csp-configuration-12345",
      "name": "csp config 123",
      "lowcbf": {
        "do_pst": true,
        "correlation_spws": [
          {
            "spw_id": 1,
            "logical_fsp_ids": [
              0,
              1
            ],
            "zoom_factor": 0,
            "centre_frequency": 199.609375e6,
            "number_of_channels": 96,
            "integration_time_ms": 849
          }
        ]
      }
    }
  ],
  "qa_threshold_overrides": {
    "csp": {
      "cbf": {
        "processor_ready_percent": 95.5
      }
    }
  },
  "observing_constraints": {
    "sun_separation": {
      "min": {
        "value": 30.0,
        "unit": "arcmin"
      }
    },
    "moon_separation": {
      "min": {
        "value": 45.0,
        "unit": "arcsec"
      }
    },
    "jupiter_separation": {
      "min": {
        "value": 12.0,
        "unit": "deg"
      }
    },
    "altitude": {
      "min": {
        "value": 0.5,
        "unit": "rad"
      },
      "max": {
        "value": 80.0,
        "unit": "deg"
      }
    },
    "lst": {
      "start": {
        "value": 1.0,
        "unit": "hourangle"
      },
      "end": {
        "value": 3.14159,
        "unit": "rad"
      }
    },
    "minimum_receptors": 16,
    "required_receptors": [
      "S8-1",
      "S9-2",
      "S10-3"
    ]
  }
}

The ska_oso_pdm.sb_definition.csp.csp_configuration module defines a simple Python representation of CSP configurations.

class CSPConfiguration(*, config_id: str | None = None, name: str = '', subarray: SubarrayConfiguration | None = None, common: CommonConfiguration | None = None, midcbf: MidCBFConfiguration | None = None, lowcbf: LowCBFConfiguration | None = None, pst: PSTConfiguration | None = None, pss: PSSConfiguration | None = None)[source]

Class to hold all CSP configuration.

Parameters:
  • config_id – an ID for CSP configuration

  • name – a user-friendly name to identify the CSP configuration

  • subarray_config – Sub-array configuration to set

  • common_config – the common CSP elements to set

  • midcbf_config – the MidCBF configurations to set

  • lowcbf_config – the LowCBF configurations to set

  • pst_config – the PST configurations to set

  • pss_config – the PSS configurations to set

The ska_oso_pdm.sb_definition.csp.common module defines a Python representation of the

CSP Common configuration specification

class CommonConfiguration(*, subarray_id: int | None = None, band_5_tuning: list[float] = <factory>)[source]

Class to hold the CSP sub-elements.

Parameters:
  • subarray_id – an ID of sub-array device (optional)

  • band_5_tuning – list of integer (optional)

The ska_oso_pdm.sb_definition.csp.midcbf module defines a Python representation of CSP and FSP configurations.

class Band5bSubband(value)[source]

An enumeration.

class ChannelAveragingFactor(value)[source]

An enumeration.

class CorrelationSPWConfiguration(*, spw_id: int, logical_fsp_ids: list[int] = <factory>, receptors: list[str] = <factory>, zoom_factor: int, centre_frequency: float, number_of_channels: int, channel_averaging_factor: ~ska_oso_pdm.sb_definition.csp.midcbf.ChannelAveragingFactor = ChannelAveragingFactor.ONE, time_integration_factor: int)[source]

CorrelationSPWConfiguration defines the configuration for a CSP Frequency Slice Processor.

Parameters:
  • swp_id – SWP configuration ID [1..27]

  • logical_fsp_ids – Logical FPS Ids

  • receptors – list of receptors

  • zoom_factor – zoom factor [0..6]

  • centre_frequency – Centre Frequency

  • number_of_channels – Number of Channels

  • channel_averaging_factor – Channel Average Factor

  • time_integration_factor – integer multiple of correlation integration time (140ms) [1..10]

class MidCBFConfiguration(*, frequency_band: ~ska_oso_pdm.sb_definition.csp.midcbf.ReceiverBand, subbands: list[~ska_oso_pdm.sb_definition.csp.midcbf.Subband] = <factory>, band5b_subband: ~ska_oso_pdm.sb_definition.csp.midcbf.Band5bSubband | None = None)[source]

Class to hold all Correlation SPW configurations.

Parameters:
  • frequency_band – Frequency Band

  • subbands – list of subbands configurations

  • band5b_subband – the band5b subband to be used if the frequency band is Band 5b

class PstSPWConfiguration(*, spw_id: int, logical_fsp_ids: list[int] = <factory>, receptors: list[str] = <factory>, centre_frequency: float, number_of_channels: int)[source]

PstSPWConfiguration defines the configuration for a Mid Correlator Processing Region producing pulsar timing data.

Parameters:
  • swp_id – SPW configuration ID [1..27]

  • logical_fsp_ids – Logical FSP IDs

  • receptors – list of receptors

  • centre_frequency – Centre Frequency

  • number_of_channels – Number of Channels

class ReceiverBand(value)[source]

ReceiverBand is an enumeration of SKA MID receiver bands.

class Subband(*, band_5_tuning: float | None = None, frequency_slice_offset: ~astropy.units.quantity.Quantity = <Quantity 0. MHz>, correlation_spws: list[~ska_oso_pdm.sb_definition.csp.midcbf.CorrelationSPWConfiguration] = <factory>, pst_spws: list[~ska_oso_pdm.sb_definition.csp.midcbf.PstSPWConfiguration] = <factory>)[source]

Class to hold sub-band

Parameters:
  • band_5_tuning – Band 5 Tuning

  • frequency_slice_offset – Optional Frequency Slice Offset in AstropyQuantity

  • correlation_spws – List of Correlation Spws

  • pst_spws – List of PST Spws

The ska_oso_pdm.sb_definition.csp.lowcbf module defines a Python representation of the LOW CBF configuration

class Correlation(*, spw_id: int, logical_fsp_ids: list[int] = <factory>, zoom_factor: int, centre_frequency: float, number_of_channels: int, integration_time_ms: ~datetime.timedelta)[source]

Class to hold the spectral windows that will be produced by the correlator”.

Parameters:
  • spw_id – Integer identifying the spectral window within this CSP setup

  • logical_fsp_ids – Frequency slice processors that will be used to produce this spectral window.

  • zoom_factor – Integer (0-7) defining the zoom window to use. ‘0’ means non-zoom i.e. standard continuum.

  • centre_frequency – Centre frequency of the spectral window

  • number_of_channels – Number of channels that the correlator will produce

  • integration_time_ms – Averaging time after which the correlator will output a visibility

class LowCBFConfiguration(*, do_pst: bool = False, correlation_spws: list[~ska_oso_pdm.sb_definition.csp.lowcbf.Correlation] = <factory>)[source]

Class to hold the LOW CBF configuration specification.

Parameters:
  • do_pst – Boolean indicating that pulsar-timing observations are to be performed.

  • correlation_spws – List of Correlation objects

The ska_oso_pdm.sb_definition.csp.subarray module defines a Python representation of the Subarray configuration

class SubarrayConfiguration(*, subarray_name: str)[source]

Class to hold the parameters relevant only for the current sub-array device.

Parameters:

sub-array_name – Name of the sub-array

The ska_oso_pdm.sb_definition.csp.pst module defines a Python representation of a PST Configuration.

class PSTConfiguration(*, pst_processing_mode: PSTProcessingMode = PSTProcessingMode.VOLTAGE_RECORDER, ft: PSTFlowThroughParams | None = None, df: PSTDetectedFilterbankParams | None = None, pt: PSTPulsarTimingParams | None = None)[source]

Class to hold PST configurations.

Parameters:
  • pst_processing_mode

  • ft – Parameters for flow-through mode

  • df – Parameters for detected-filterbank mode

  • pt – Parameters for pulsar-timing mode

class PSTProcessingMode(value)[source]

Enumeration of PST processing modes.

The ska_oso_pdm.sb_definition.csp.pst.ft module defines a Python representation of a PST Flow-Through Configuration.

class FtAlgorithm(value)[source]

Options for rescale algorithm.

class FtPolarisations(value)[source]

Options for the polarisation output of the flow-through mode. Note that the PST code uses A and B for the two polarisations, but the PDM uses linear as that is what the SKA will use.

class PSTFlowThroughParams(*, channels: tuple[int, int] = (0, 0), polarisations: FtPolarisations = FtPolarisations.BOTH, algorithm: FtAlgorithm = FtAlgorithm.MEDIANMAD, periodic_update: bool = False, timescale: float = 0.0, num_bits_out: RequantisationBits = RequantisationBits.EIGHT, scale: float = 1.0)[source]

Parameters relevant to the flow-through processing mode.

Parameters:
  • channels – Indices of the first and last (inclusive) frequency channels to process

  • polarisations – Polarisations to process

  • algorithm – Algorithm used to determine scales and offsets when rescaling complex voltage data

  • periodic_update – Indicates whether to recalculate the rescale statistics periodically

  • timescale – Timescale needed to calculate rescale stats, in seconds

  • num_bits_out – Number of bits per output sample

  • scale – Scale factor applied during re-quantisation

The ska_oso_pdm.sb_definition.csp.pst.df module defines a Python representation of a PST Detected-Filterbank Configuration.

class PSTDetectedFilterbankParams(*, dispersion_measure: float = 0.0, rotation_measure: float = 0.0, output_frequency_channels: int = -1, polarisation_state: ~ska_oso_pdm.sb_definition.csp.pst.df.PolarisationState = PolarisationState.STOKES, num_bits_out: ~ska_oso_pdm.sb_definition.csp.pst.common.RequantisationBits = RequantisationBits.EIGHT, time_decimation_factor: int = 1, frequency_decimation_factor: int = 1, sk_config: list[~ska_oso_pdm.sb_definition.csp.pst.common.SpectralKurtosis] = <factory>, requantisation_scale: float = 1.0, requantisation_length: float = 1.0)[source]

Parameters relevant to the detected-filterbank processing mode.

Parameters:
  • dispersion_measure – The DM for coherent/incoherent de-dispersion in pc/cm^3

  • rotation_measure – The RM for phase-coherent Faraday rotation correction in rad/m^2

  • output_frequency_channels – Number of output frequency channels. The default of -1 means no re-channelisation

  • polarisation_state – Polarisation state to write to PSRFITS output

  • num_bits_out – Number of bits per output sample

  • time_decimation_factor – The number of input samples per output time sample

  • frequency_decimation_factor – The number of input frequency channels incoherently added to each output frequency channel

  • num_sk_config – Number of SK configs

  • sk_config – List of SK config parameters

  • requantisation_scale – Scale factor to govern the dynamic range for fixed precision output during re-quantisation

  • requantisation_length – Number of samples to average together when determining the scale factors

class PolarisationState(value)[source]

Polarisation output supported by PSRFITS. Note that the PST code uses A and B for the two polarisations, but the PDM uses linear as that is what the SKA will use.

X - Square-law detected flux density of polarisation X (npol = 1) Y - Square-law detected flux density of polarisation Y (npol = 1) Intensity - Total intensity, X+Y (npol = 1) Both - X and Y (npol = 2) Coherence - X, Y, Re[XY], Im[XY] (npol= 4) Stokes - Stokes I,Q,U,V (npol = 4)

The ska_oso_pdm.sb_definition.csp.pst.df module defines a Python representation of a PST Detected-Filterbank Configuration.

class PSTPulsarTimingParams(*, dispersion_measure: float = 0.0, rotation_measure: float = 0.0, ephemeris: str = '', pulsar_phase_predictor: str = '', output_frequency_channels: int = -1, output_phase_bins: int = 512, sk_config: list[~ska_oso_pdm.sb_definition.csp.pst.common.SpectralKurtosis] = <factory>, target_snr: float = 0.0)[source]

Parameters relevant to the pulsar-timing processing mode.

Parameters:
  • dispersion_measure – The DM for coherent/incoherent de-dispersion in pc/cm^3

  • rotation_measure – The RM for phase-coherent Faraday rotation correction in rad/m^2

  • ephemeris – The ephemeris of the pulsar being observed

  • pulsar_phase_predictor – Pulsar phase predictor generated from ephemeris

  • output_frequency_channels – Number of output frequency channels. The default of -1 means ‘all channels’

  • output_phase_bins – Number of output phase bins

  • num_sk_config – Number of SK configs

  • sk_config – List of SK config parameters

  • target_snr – The SNR of the on-pulse flux. Can end a scan early and 0 means no limit

The ska_oso_pdm.sb_definition.csp.pss module defines a Python representation of a PSS configurations.

class PSSConfiguration[source]

Class to hold PSS configurations.