ska_tmc_cspsubarrayleafnode.delay_model package

Submodules

ska_tmc_cspsubarrayleafnode.delay_model module

DelayManager class for delay calculation in SKA Mid and SKA Low.

class ska_tmc_cspsubarrayleafnode.delay_model.AntennaParams

Bases: object

Antenna parameters class.

class ska_tmc_cspsubarrayleafnode.delay_model.DelayManager(csp_sln_cm: CspSLNComponentManagerLow | CspSLNComponentManagerMid, telmodel_source: str, telmodel_path: str, delay_model_time_in_advance: int, delay_cadence: int, logger: logging.Logger | None)

Bases: object

The class that includes common methods required for delay calculation in SKA Mid and SKA Low.

calculate_delay_model() None

Calculates the delay model using KatPoint library.

Raises:

NotImplementedError – If the method is not implemented by the respective delay manager class.

clear_next_polynomial_time()

This method resets the value of next polynomial time after configure command End or Aborted

create_antenna_objects(antenna_params: AntennaParams) NotImplementedError

Creates KatPoint Antenna objects from antenna parameters.

Parameters:

antenna_params (dict) – Dictionary containing antenna parameters.

Raises:

NotImplementedError – If the method is not implemented by the respective delay manager class.

delay_model_handler(delay_cadence: int)

Handles the periodic calculation of the delay model.

Parameters:

argin (int) – Delay model update interval in seconds.

fetch_antenna_params() Tuple[dict[Any, Any], str]

Fetch antenna params from telmodel.

fetch_data() dict[Any, Any]

Method to retry using python retry library at frequency of 1 sec. This also logs a warning message with the error faced while trying.

set_dummy_targets() Tuple[ska_tango_base.commands.ResultCode, str]

Sets dummy targets for delay calculation.

Raises:

NotImplementedError – If the method is not implemented by the respective delay manager class.

start() None

Starts the delay model calculator thread.

stop() None

Stops the delay model calculator thread.

update_config_params() Tuple[ska_tango_base.commands.ResultCode, str]

Updates configuration parameters related to assigned resources during assign, release, or configure commands execution.

Raises:

NotImplementedError – If the method is not implemented by the respective delay manager class.

class ska_tmc_cspsubarrayleafnode.delay_model.Location

Bases: object

Location class for storing geodetic coordinates.

ska_tmc_cspsubarrayleafnode.delay_model.get_antenna_params(antenna_params: dict[str, Any])

Returns AntennaParams object from provided antenna parameters.

Parameters:

antenna_params – Dictionary containing antenna parameters.

Returns:

AntennaParams object.

ska_tmc_cspsubarrayleafnode.delay_model_mid module

DelayManagerMid class

class ska_tmc_cspsubarrayleafnode.delay_model_mid.DelayManagerMid(csp_sln_cm, telmodel_source: str, telmodel_path: str, delay_model_time_in_advance: int, delay_cadence: float, delay_validity_period: float, logger)

Bases: DelayManager

A class that calculates geometric delays for SKA Mid

calculate_delay_model()

Calculate delays using KatPoint library.

Returns:

None

calculate_delays(time_t0, antenna_names, weather_data)

Calculate geometric delay values using KATPoint library.

Parameters:
  • time_t0 – reference time for delay calculation

  • antenna_names – list of antenna names

  • weather_data – dict with keys “pressure”,”temperature”,”humidity”

Returns:

Dictionary containing fifth order polynomial coefficients per antenna per fsp

create_antenna_objects(antenna_params)

Creates KatPoint Antenna objects from antenna parameters.

Parameters:

antenna_params (dict) – Dictionary containing antenna parameters.

Returns:

List of KatPoint Antenna objects.

Return type:

list

set_dummy_targets()

Set dummy targets for mid.

Returns:

Tuple[ResultCode, str]: result code and message

update_config_params()

Update configuration parameters related to assigned resources during assign, release, or configure commands execution.

Returns:

(ResultCode, Message)

ska_tmc_cspsubarrayleafnode.delay_model_low module

DelayManagerLow class

class ska_tmc_cspsubarrayleafnode.delay_model_low.DelayManagerLow(csp_sln_cm: CspSLNComponentManagerLow, telmodel_source: str, telmodel_path: str, delay_model_time_in_advance: int, delay_cadence: int, delay_validity_period: float, logger: Logger)

Bases: DelayManager

A class that calculates geometric delays for SKA Low

calculate_delay_model() None

Calculate delays using the KatPoint library and update the delay model JSON.

calculate_delays(time_t0: <module 'datetime' from '/home/docs/.asdf/installs/python/3.10.17/lib/python3.10/datetime.py'>, antenna_names: list[str]) dict[str, Any]

Calculate geometric delay values using the KATPoint library.

Parameters:
  • time_t0 – Initial time for delay calculation

  • antenna_names – List of antenna names

Returns:

Dictionary containing fifth order polynomial coefficients per antenna

create_antenna_objects(antenna_params: dict[str, Any]) list[katpoint.Antenna]

Creates KatPoint Antenna objects from antenna parameters.

Parameters:

antenna_params (dict) – Dictionary containing antenna parameters.

Returns:

List of KatPoint Antenna objects.

Return type:

list

delay_model_handler(delay_cadence: int) None

Handles the periodic calculation of the delay model.

Parameters:

delay_cadence (int) – Delay model update interval in seconds.

set_dummy_targets() tuple[ska_tango_base.commands.ResultCode, str]

Set dummy targets for the delay correction object.

Returns:

Tuple of ResultCode and message string

update_config_params() tuple[ska_tango_base.commands.ResultCode, str]

Update configuration parameters related to the resources assigned.

This method updates parameters every time assign, release, or configure commands are executed.

Returns:

Tuple of ResultCode and message string

ska_tmc_cspsubarrayleafnode.delay_model_pst_beam module

DelayManager class for PST beam calculation.

class ska_tmc_cspsubarrayleafnode.delay_model_pst_beam.DelayManagerPSTBeam(csp_sln_cm, telmodel_source: str, telmodel_path: str, pst_delay_model_time_in_advance: int, pst_delay_cadence: int, pst_delay_validity_period: int, pst_beam_id: int, ra: float, dec: float, logger)

Bases: DelayManagerLow

A class that calculates geometric delays for PST Beams for SKA Low

calculate_delay_model()

Calculate delays using the KatPoint library and update the delay model PST Beam JSON. Returns:

calculate_delays(time_t0, antenna_names)

Calculate geometric delay values using the KATPoint library. :param time_t0: Initial time for delay calculation :param antenna_names: List of antenna names

Returns: Dictionary containing fifth order polynomial coefficients

per antenna

delay_model_handler(delay_cadence)

Handles the periodic calculation of the delay model for PST Beams.

Parameters:

delay_cadence (int) – Delay model update interval in seconds.

update_config_params() tuple[ska_control_model.ResultCode, str]

Update configuration parameters related to the resources assigned. This method updates parameters every time assign, release, or configure commands are executed. Returns: Tuple of ResultCode and message string

Weather Station Device

The Weather Station is a device responsible for collecting key environmental parameters used by the Delay Manager to compute accurate delay values. These parameters include:

  • Temperature

  • Humidity

  • Pressure

The device must be activated before it begins reporting data. This is achieved by setting its adminMode to 0, which transitions it into the operational state.

Usage

To enable the Weather Station device, execute the following instruction:

weather_Station_dev_proxy.adminMode = 0

Once enabled, the device begins transmitting environmental data at regular intervals. The Delay Manager utilizes this data to calculate corrections or compensations needed for signal timing and synchronization, which is critical in high-precision systems such as telescope arrays, scientific instrumentation, or time-sensitive communication networks.

Device Integration

The Weather Station integrates with other components in the system architecture, typically communicating with:

  • Delay Manager service

  • Central monitoring and control systems

  • Logging and diagnostics modules

A consistent 10.00/10 Python linting score indicates that all related Python code associated with the device’s configuration, data collection, and interface passes static analysis checks and adheres to code quality standards.