lsst.ts.ess.csc

https://img.shields.io/badge/ProjectMetadata-gray.svg https://img.shields.io/badge/SAL Interface-gray.svg https://img.shields.io/badge/GitHub-gray.svg https://img.shields.io/badge/Jira-gray.svg

Overview

The ESS Commandable SAL Component (CSC) reads various environmental sensors at the Vera C. Rubin Observatory, and publishes the resulting data in ESS telemetry topics. There will be at least one, and likely several, ESS CSC(s) running at Rubin Observatory.

User Guide

To run the ESS CSC:

run_ess_csc.py sal_index

Each sal_index you specify must have a matching entry in the configuration you specify in the start command, else the command will fail.

This command-line script supports --help.

Configuration

Configuration files are stored in ts_config_ocs.

There should be one standard configuration file for each site. Each configuration file specifies configuration for all ESS SAL indices supported at that site. To run all ESS CSCs appropriate for a site, examine the configuration file and run one ESS CSC for each entry in it.

The ESS CSC uses “data clients” to communicate with environmental data servers and publish the telemetry, in order to flexibly handle different kinds of servers. Each data client class has its own configuration schema.

A CSC configuration file primarily contains of a list of sal_index: configuration for a data client.

There is presently one data client: RPiDataClient. More are planned, including a LabJack data client in ts_ess_labjack.

Developer Guide

Data clients do most of the work for the CSC: reading and publishing environmental data. The CSC constructs the clients specified in the config file and runs them.

This package defines one data client: RPiDataClient, which uses TCP/IP to communicate with Raspberry Pi 4 data servers. The environmental sensors are connected to the Raspberry Pi 4 servers, and the servers are scattered around the observatory. The Raspberry Pi 4 servers use code from ts_ess_controller.

The protocol used to communicate with Raspberry Pi 4 servers is described in RPi Communication Protocol:

This package and ts_ess_controller share common code in ts_ess_common.

Python API reference

lsst.ts.ess.csc Package

Functions

get_circular_mean_and_std_dev(angles)

Compute the circular mean and circcular standard deviation of an array of angles in degrees.

get_median_and_std_dev(data[, axis])

Compute the median and estimated standard deviation using quantiles.

Classes

AirFlowAccumulator(log, num_samples)

Accumulate air flow data from a 2-d anemometer.

AirTurbulenceAccumulator(log, num_samples)

Accumulate air turbulence data from a 3-d anemometer.

ControllerDataClient(config, topics, log[, ...])

Get environmental data from sensors connected to an ESS Controller.

ElectricFieldStrengthAccumulator(num_samples)

Accumulate electric field data from a detector.

EssCsc(index[, config_dir, initial_state, ...])

Upper level Commandable SAL Component for the Environmental Sensors Support.

LightningDataClient(config, topics, log[, ...])

Get lightning and electrical field strength data from a Raspberry Pi.

MockYoung32400DataServer(log, ...)

Mock Young 32400 data server.

RPiDataClient(config, topics, log[, ...])

Get environmental data from a Raspberry Pi with custom hat.

SiglentSSA3000xSpectrumAnalyzerDataClient(...)

Young32400RawDataGenerator([...])

Generate simulated raw data for the Young 32400 weather station.

Young32400WeatherStationDataClient(config, ...)

Get environmental data from Young 32400 weather station serial interface.

Class Inheritance Diagram

Inheritance diagram of lsst.ts.ess.csc.accumulator.air_flow_accumulator.AirFlowAccumulator, lsst.ts.ess.csc.accumulator.air_turbulence_accumulator.AirTurbulenceAccumulator, lsst.ts.ess.csc.data_client.controller_data_client.ControllerDataClient, lsst.ts.ess.csc.accumulator.electric_field_strength_accumulator.ElectricFieldStrengthAccumulator, lsst.ts.ess.csc.ess_csc.EssCsc, lsst.ts.ess.csc.data_client.lightning_data_client.LightningDataClient, lsst.ts.ess.csc.data_client.young_32400_weather_station_data_client.MockYoung32400DataServer, lsst.ts.ess.csc.data_client.rpi_data_client.RPiDataClient, lsst.ts.ess.csc.data_client.siglent_ssa3000x_spectrum_analyzer_data_client.SiglentSSA3000xSpectrumAnalyzerDataClient, lsst.ts.ess.csc.data_client.young_32400_weather_station_data_client.Young32400RawDataGenerator, lsst.ts.ess.csc.data_client.young_32400_weather_station_data_client.Young32400WeatherStationDataClient

Contributing

lsst.ts.ess.csc is developed at https://github.com/lsst-ts/ts_ess_csc. You can find Jira issues for this module using labels=ts_ess_csc.

Version History