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.
Class diagram for the modules within CSP
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 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 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
The ska_oso_pdm.sb_definition.csp.pst.ft module defines a Python representation of a PST Flow-Through Configuration.
- 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.