PointingTable

class ska_sdp_datamodels.calibration.PointingTable(data_vars=None, coords=None, attrs=None)[source]

Bases: Dataset

Pointing table with ska_sdp_datamodels: time, antenna, offset[:, chan, rec, 2], weight columns

This table was refactored to allow for storing the results from a pointing offset calibration for local pointing correction. The newly added variables are the expected_width, fitted_width, fitted_width_std, fitted_height, and fitted_height_std. They are parameters obtained by fitting a 2D Gaussian to the un-normalised gains (G terms) from the offset pointing scans. Refer to the documentation for the pointing offset calibration on https://developer.skao.int/projects/ska-sdp-wflow-pointing-offset/en/latest/ for detailed description of each parameter. Note that receptor refers to the number of polarisations so using angle for expected_width, fitted_width, and fitted_width_std is a misnomer when receptor is 1.

Here is an example:

<xarray.PointingTable>
Dimensions:            (time: 1, antenna: 4, frequency: 1, receptor:
                         1, angle: 2)
Coordinates:
  * time               (time) float64 5.179e+09
  * antenna            (antenna) int64 0 1 2 3
  * frequency          (frequency) float64 1.329e+09
  * receptor           (receptor) <U1 'I'
  * angle              (angle) <U2 'az' 'el' based on pointing frame
Data variables:
    pointing           (time, antenna, frequency, receptor, angle)
                        float64 -0.0002627...
    nominal            (time, antenna, frequency, receptor, angle)
                        float64 -3.142...
    expected_width     (time, antenna, frequency, receptor, angle)
                        float64 0.03008409...
    fitted_width       (time, antenna, frequency, receptor, angle)
                        float64 0.0272884...
    fitted_width_std   (time, antenna, frequency, receptor, angle)
                        float64 0.00500445...
    fitted_height      (time, antenna, frequency, receptor)
                        float64 3.109...
    fitted_height_std  (time, antenna, frequency, receptor)
                        float64 0.3112...
    weight             (time, antenna, frequency, receptor, angle)
                        float64 1.0 ... 1.0
    residual           (time, frequency, receptor, angle)
                        float64 0.0 0.0 ... 0.0 0.0
    interval           (time) float64 1.0
    datetime           (time) datetime64[ns] 2023-01-03T06:43:56.51
Attributes:
    data_model:      PointingTable
    receptor_frame:  <ska_sdp_datamodels.science_data_model.polar...
    pointing_frame:  "azel"
    band_type:       "Band2"
    scan_type:       "5-point"
    track_duration:  array([20.0])
    discrete_offset:  array([-1., -0.33, 0., 0.33, 1.])
    commanded_pointing: array([-1.88300476e-04, -1.77350231e-07])
    pointingcentre:  <SkyCoord (ICRS): (ra, dec) in deg

configuration: <xarray.Configuration>

Dimensions: (id:…

Methods Summary

constructor([pointing, nominal, time, ...])

Create a pointing table from arrays

copy([deep, data, zero])

Copy PointingTable

Methods Documentation

classmethod constructor(pointing: ~numpy.array = None, nominal: ~numpy.array = None, time: ~numpy.array = None, interval=None, weight: ~numpy.array = None, residual: ~numpy.array = None, frequency: ~numpy.array = None, expected_width: ~numpy.array = None, fitted_width: ~numpy.array = None, fitted_width_std: ~numpy.array = None, fitted_height: ~numpy.array = None, fitted_height_std: ~numpy.array = None, receptor_frame: ~ska_sdp_datamodels.science_data_model.polarisation_model.ReceptorFrame = <ska_sdp_datamodels.science_data_model.polarisation_model.ReceptorFrame object>, pointing_frame: str = 'local', band_type: str = 'None', scan_mode: str = 'None', track_duration: ~numpy.array = None, discrete_offset: ~numpy.array = None, commanded_pointing: ~numpy.array = None, pointingcentre=None, configuration=None)[source]

Create a pointing table from arrays

Parameters:
  • pointing – Pointing (rad) [:, nants, nchan, nrec, 2]

  • nominal – Nominal (rad) [:, nants, nchan, nrec, 2]

  • time – Centroid of solution [:]

  • interval – Interval of validity

  • weight – Weight [:, nants, nchan, nrec, 2]

  • residual – Residual [:, nchan, nrec, 2]

  • frequency – [nchan]

  • expected_width – Expected beam width (rad) [:, nants, nchan, nrec, 2]

  • fitted_width – Fitted beam width (rad) [:, nants, nchan, nrec, 2]

  • fitted_width_std – Fitted beam width uncertainty (rad) [:, nants, nchan, nrec, 2]

  • fitted_height – Fitted Gaussian height [:, nants, nchan, nrec]

  • fitted_height_std – Fitted height uncertainty [:, nants, nchan, nrec]

  • receptor_frame – e.g. Receptor_frame(“linear”)

  • pointing_frame – Pointing frame string (options: “local”, “azel”, “xel-el”)

  • band_type – Observing band string (eg., Band2)

  • scan_mode – Type of scan string (eg., 5point)

  • track_duration – Track duration (sec)

  • discrete_offset – Input discrete pointing relative to target (degrees). These are the on-sky separations between antennas and target in a reference pointing observation. Has dimension equal to the number of on-sky separations used in the observation

  • (rad) (commanded_pointing) – Commanded pointings (e.g., AzEl, does not have to match pointing_frame) for each antenna at the spatial centre of the pointing observation. In some cases, a user may prefer the pointing values in xel-El (AzEl) and commanded pointings in AzEl (AzEl) with shape (nants, 2). When provided, it is assumed to be the commanded pointing at the provided time

  • pointingcentre – SkyCoord

  • configuration – Configuration

copy(deep=False, data=None, zero=False)[source]

Copy PointingTable

Parameters:
  • deep – perform deep-copy

  • data – data to use in new object; see docstring of xarray.core.dataset.Dataset.copy

  • zero – if True, set pointing data to zero in copied object