Schema APIs
Pointing Table
List of schemas that store pointing information Which are compatible with xradio definitions.
- class ska_sdp_dataqueues.schemas.pointing_table.TimeAxis(*args: Any, **kwargs: Any)
Data model of time axis
- data: Data[Time, float]
Time data
- units: Attr[str] | None = 's'
Time unit
- long_name: Attr[str] | None = 'Observation Time'
Full name of time axis
- type: Attr[str] | None = 'time'
Type of time
- scale: Attr[str] | None = 'tai'
Astropy time scale
- format: Attr[str] | None = 'unix'
Astropy time format
- class ska_sdp_dataqueues.schemas.pointing_table.AntennaAxis(*args: Any, **kwargs: Any)
Antenna id of an antenna.
- data: Data[AntennaId, int]
Antenna data
- long_name: Attr[str] | None = 'Antenna ID'
Full antenna name
- type: Attr[str] | None = 'antenna'
Antenna type
- class ska_sdp_dataqueues.schemas.pointing_table.FrequencyAxis(*args: Any, **kwargs: Any)
Frequency axis
- data: Data[Frequency, float]
Frequency data
- units: Attr[str] | None = 'Hz'
Frequency unit
- long_name: Attr[str] | None = 'Frequency'
Full name of frequency axis
- type: Attr[str] | None = 'spectral_coord'
Frequency type
- frame: Attr[str] | None = 'icrs'
Frequency frame
- class ska_sdp_dataqueues.schemas.pointing_table.ReceptorAxis(*args: Any, **kwargs: Any)
Possible correlations that can be formed from polarised receptors.
- data: Data[Receptor, str]
Receptor data
- long_name: Attr[str] | None = 'Receptor Frames'
Full name of receptor axis
- type: Attr[str] | None = 'receptor'
Receptor type
- class ska_sdp_dataqueues.schemas.pointing_table.AngleAxis(*args: Any, **kwargs: Any)
Angle axis
- data: Data[Angle, float]
Angle data
- units: Attr[str] | None = 'rad'
Angle unit
- frame: Attr[str] | None = 'azel'
Angle refernce frame
- long_name: Attr[str] | None = '2D Angles'
Full name of angle axis
- type: Attr[str] | None = 'angle'
Angle axis type
- class ska_sdp_dataqueues.schemas.pointing_table.ConfigDict(antenna: xradio.schema.typing.Coordof.<class 'ska_sdp_dataqueues.schemas.pointing_table.AntennaAxis'>, name: xradio.schema.typing.Attr.<class 'str'> = 'MID', location: xradio.schema.typing.Attr.<class 'astropy.coordinates.earth.EarthLocation'> | None = None, receptor_frame: xradio.schema.typing.Attr.<class 'str'> = 'linear', frame: xradio.schema.typing.Attr.<class 'str'> = 'local', names: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) | None = None, diameter: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'float'>) | None = None, mount: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) | None = None, vp_type: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) | None = None, stations: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) | None = None, xyz: xradio.schema.typing.Data.(tuple[typing.Literal['antenna'], 3], <class 'float'>) | None = None, offset: xradio.schema.typing.Data.(tuple[typing.Literal['antenna'], 3], <class 'float'>) | None = None)
Telescope configuration
- antenna: xradio.schema.typing.Coordof.<class 'ska_sdp_dataqueues.schemas.pointing_table.AntennaAxis'>
Antenna Axis
- name: xradio.schema.typing.Attr.<class 'str'> = 'MID'
Name of configuration e.g. ‘LOWR3’
- location: xradio.schema.typing.Attr.<class 'astropy.coordinates.earth.EarthLocation'> = None
Location of array as an astropy EarthLocation
- receptor_frame: xradio.schema.typing.Attr.<class 'str'> = 'linear'
Receptor frame
- frame: xradio.schema.typing.Attr.<class 'str'> = 'local'
Reference frame of locations
- names: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) = None
Names of each dish/station
- diameter: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'float'>) = None
Diameters of dishes/stations (m)
- mount: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) = None
Mount types of dishes/stations e.g. ‘altaz’ | ‘xy’ | ‘equatorial’
- vp_type: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) = None
Type of voltage pattern (string)
- stations: xradio.schema.typing.Data.(tuple[typing.Literal['antenna']], <class 'str'>) = None
Identifiers of the dishes/stations
- xyz: xradio.schema.typing.Data.(tuple[typing.Literal['antenna'], 3], <class 'float'>) = None
Geocentric coordinates of dishes/stations
- offset: xradio.schema.typing.Data.(tuple[typing.Literal['antenna'], 3], <class 'float'>) = None
Axis offset (m)
- class ska_sdp_dataqueues.schemas.pointing_table.PointingTable(*args: Any, **kwargs: Any)
Data class for pointing information
- antenna: Coordof[AntennaAxis]
Antenna Axis
- frequency: Coordof[FrequencyAxis]
Frequency Axis
- receptor: Coordof[ReceptorAxis]
Receptor Axis
- pointing: Data[tuple[Time, AntennaId, Frequency, Receptor, Angle], float]
Pointing data (rad)
- weight: Data[tuple[Time, AntennaId, Frequency, Receptor, Angle], float]
Weight data (rad)
- residual: Data[tuple[Time, Frequency, Receptor, Angle], float]
Residual data (rad)
- interval: Data[tuple[Time], float]
Interval of validity
- datetime: Data[tuple[Time], float]
Date time of each data point
- data_model: Attr[str] = 'PointingTable'
Data model
- receptor_frame: Attr[ReceptorFrame]
Receptor frame
- pointing_frame: Attr[str] = 'local'
Pointing frame e.g. azel, xel-el
- pointingcentre: Attr[SkyCoord] = None
Centre of pointing in SkyCoord format
- configuration: Attr[ConfigDict] = None
Telescope configuration
- nominal: None | Data[tuple[Time, AntennaId, Frequency, Receptor, Angle], float] = None
Nominal data
- expected_width: None | Data[tuple[Time, AntennaId, Frequency, Receptor, Angle], float] = None
Expected beam width (rad)
- fitted_width: None | Data[tuple[Time, AntennaId, Frequency, Receptor, Angle], float] = None
Fitted beam width (rad)
- fitted_width_std: None | Data[tuple[Time, AntennaId, Frequency, Receptor, Angle], float] = None
Fitted beam width uncertainty (rad)
- fitted_height: None | Data[tuple[Time, AntennaId, Frequency, Receptor], float] = None
Fitted Gaussian height
- fitted_height_std: None | Data[tuple[Time, AntennaId, Frequency, Receptor], float] = None
Fitted height uncertainty
- band_type: Attr[str] | None = None
Observing band string
- scan_type: Attr[str] | None = None
ype of scan string (eg., 5point)
- track_duration: Attr[float] | None = None
Track duration (sec)
- discrete_offset: Attr[np.ndarray] | None = None
Input discrete pointing relative to target (degrees)
- commanded_pointing: Attr[np.ndarray] | None = None
Commanded pointings (e.g., AzEl, does not have to match pointing_frame) for each antenna at the spatial centre of the pointing observation
Pointing data - Structured numpy array
Schema for a numpy structured array which specifically stores pointing data as published by the pointing offset calibration pipeline.
- class ska_sdp_dataqueues.schemas.numpy_structured_pointing.PointingNumpyArray(antenna_name: dtype('<U8'), last_scan_index: dtype('float64'), xel_offset: dtype('float64'), xel_offset_std: dtype('float64'), el_offset: dtype('float64'), el_offset_std: dtype('float64'), expected_width_h: dtype('float64'), expected_width_v: dtype('float64'), fitted_width_h: dtype('float64'), fitted_width_h_std: dtype('float64'), fitted_width_v: dtype('float64'), fitted_width_v_std: dtype('float64'), fitted_height: dtype('float64'), fitted_height_std: dtype('float64'))
Schema for structured numpy array containing pointing data produced by the Pointing Offset Calibration Pipeline.
https://developer.skao.int/projects/ska-sdp-wflow-pointing-offset/en/latest/
- antenna_name: dtype('<U8')
Name of the antenna (e.g. SKA001).
- last_scan_index: dtype('float64')
ID of the last scan in the series of scans used for this pointing calibration.
- xel_offset: dtype('float64')
Cross-elevation offset in degrees.
- xel_offset_std: dtype('float64')
Standard deviation of cross-elevation offset.
- el_offset: dtype('float64')
Elevation offset in degrees.
- el_offset_std: dtype('float64')
Standard deviation of elevation offset.
- expected_width_h: dtype('float64')
Expected beam width in horizontal co-polarisation.
- expected_width_v: dtype('float64')
Expected beam width in vertical co-polarisation.
- fitted_width_h: dtype('float64')
Fitted beam width in horizontal co-polarisation.
- fitted_width_h_std: dtype('float64')
Standard deviation of fitted beam in horizontal co-polarisation.
- fitted_width_v: dtype('float64')
Fitted bem width in vertical co-polarisation.
- fitted_width_v_std: dtype('float64')
Standard deviation of fitted beam in vertical co-polarisation.
- fitted_height: dtype('float64')
Fitted Gaussian height in arbitrary units.
- fitted_height_std: dtype('float64')
Standard deviation of fitted Gaussian height in arbitrary units.
- to_numpy()
Convert dataclass data to structured numpy array.
Signal Display Metrics
Signal Display Data Structures.
These Data Structures are primarily used in:
And used to transmit the metric data from the Visibility Receive processor to the Signal Display API.
- enum ska_sdp_dataqueues.schemas.signal_display_metrics.MetricDataTypes(value)
The current metrics types to be used as a key in MetricPayload
- Member Type:
str
Valid values are as follows:
- AMPLITUDE: str = <MetricDataTypes.AMPLITUDE: 'amplitude'>
- AVERAGED_AMPLITUDE: str = <MetricDataTypes.AVERAGED_AMPLITUDE: 'averagedamplitude'>
- PHASE: str = <MetricDataTypes.PHASE: 'phase'>
- LAG_PLOT: str = <MetricDataTypes.LAG_PLOT: 'lagplot'>
- SPECTRUM: str = <MetricDataTypes.SPECTRUM: 'spectrum'>
- BAND_AVERAGED_X_CORR: str = <MetricDataTypes.BAND_AVERAGED_X_CORR: 'bandaveragedxcorr'>
- UV_COVERAGE: str = <MetricDataTypes.UV_COVERAGE: 'uvcoverage'>
- AMPLITUDE_AND_PHASE_VARIANCE: str = <MetricDataTypes.AMPLITUDE_AND_PHASE_VARIANCE: 'amplitudeandphasevariance'>
- class ska_sdp_dataqueues.schemas.signal_display_metrics.SpectralWindow(freq_min: float = <factory>, freq_max: float = <factory>, count: int = <factory>, channels_id: int = <factory>, spectral_window_id: int | str = <factory>, start: int = <factory>, stride: int = <factory>)
Layout of the Spectral Window
- class ska_sdp_dataqueues.schemas.signal_display_metrics.DataPayload(baseline: str = <factory>, polarisation: str = <factory>, data: list[float] | float = <factory>)
The payload used for most metric types
- class ska_sdp_dataqueues.schemas.signal_display_metrics.DataAndComponentPayload(baseline: str = <factory>, polarisation: str = <factory>, data: list[float] = <factory>, component: list[float] = <factory>)
The payload used for sending two arrays of numbers.
For example, this is useful for the amplitudes + real components, or phases + imaginary components of visibilities. Additionally, it is used for sending scaled axis information along with the lag plot data.
- class ska_sdp_dataqueues.schemas.signal_display_metrics.SpectrumPayload(polarisation: str = <factory>, power: list[float] = <factory>, angle: list[float] = <factory>)
The payload used for the Spectrum graphs
- class ska_sdp_dataqueues.schemas.signal_display_metrics.VariancePayload(amplitude_variance: list[float] = <factory>, phase_variance: list[float] = <factory>, distance: list[float] = <factory>)
The common components of the variance payload
- class ska_sdp_dataqueues.schemas.signal_display_metrics.CombinedVariancePayload(meters: ~ska_sdp_dataqueues.schemas.signal_display_metrics.VariancePayload = <factory>, wavelength: ~ska_sdp_dataqueues.schemas.signal_display_metrics.VariancePayload = <factory>, polarisation: str = <factory>)
The payload used for the phase/amplitude variance vs uv distance (in meters or wavelengths).
- class ska_sdp_dataqueues.schemas.signal_display_metrics.UVCoveragePayload(baseline: str = <factory>, polarisation: str = <factory>, weight: float = <factory>, u: float = <factory>, v: float = <factory>, w: float = <factory>)
The payload used for the UV coverage and weight distribution plots.
- class ska_sdp_dataqueues.schemas.signal_display_metrics.MetricPayload(data_type: ~ska_sdp_dataqueues.schemas.signal_display_metrics.MetricDataTypes = <factory>, processing_block_id: str = <factory>, beam_id: str = <factory>, spectral_window: ~ska_sdp_dataqueues.schemas.signal_display_metrics.SpectralWindow = <factory>, timestamp: str = <factory>, data: list[~ska_sdp_dataqueues.schemas.signal_display_metrics.DataPayload | ~ska_sdp_dataqueues.schemas.signal_display_metrics.DataAndComponentPayload | ~ska_sdp_dataqueues.schemas.signal_display_metrics.SpectrumPayload | ~ska_sdp_dataqueues.schemas.signal_display_metrics.UVCoveragePayload | ~ska_sdp_dataqueues.schemas.signal_display_metrics.CombinedVariancePayload] = <factory>)
The shared metric payload all metrics should use.
- ska_sdp_dataqueues.schemas.signal_display_metrics.metrics_from_dict(data: dict) MetricPayload
Convert a Metrics Dict back to a Metric Object.
- class ska_sdp_dataqueues.schemas.signal_display_metrics.VisReceiveStatistics(time: float = <factory>, type: str = 'visibility_receive', state: str = <factory>, processing_block_id: str = <factory>, execution_block_id: str = <factory>, subarray_id: str = <factory>, scan_id: int = <factory>, payloads_received: int = <factory>, time_slices: int = <factory>, time_since_last_payload: float = <factory>)
The Vis Receive payload statistics.
- class ska_sdp_dataqueues.schemas.signal_display_metrics.Spead2Stream(id: int = <factory>, heaps: int = <factory>, blocked: int = <factory>, incomplete_heaps: int = <factory>)
The stats per stream in the Spead2 Receiver.
- class ska_sdp_dataqueues.schemas.signal_display_metrics.Spead2Stats(type: str = 'receive_stats', time: float = <factory>, scan_id: int = <factory>, state: str = <factory>, total_megabytes: float = <factory>, num_heaps: int = <factory>, num_incomplete: int = <factory>, duration: float = <factory>, streams: list[~ska_sdp_dataqueues.schemas.signal_display_metrics.Spead2Stream] = <factory>)
These are the stats that are sent by the Spead2 Receiver.
- ska_sdp_dataqueues.schemas.signal_display_metrics.stats_from_dict(data: dict) VisReceiveStatistics | Spead2Stats
Decode a stats packet based on the type parameter.