# Compensation¶

class lsst.ts.hexapod.Compensation(*, elevation_coeffs, temperature_coeffs, min_temperature, max_temperature)

Bases: object

Compute hexapod compensation for elevation, azimuth, and temperature.

The compensation is computed as offsets for x, y, z, u, v, w.

Parameters: elevation_coeffs : Elevation CosinePolynomial coefficients, as a sequence of 6 coefficient sequences, for x, y, z, u, v, w. Each coefficient sequence must contain at least one element. Here is an example showing valid, though unrealistic, values: elevation_coeffs=[ [0.11, 0.012], [0.21], [0.31, 0.032, -0.0033], [0.000042, 0.000042], [0.000052, 0.000052], [0.000062], ]  temperature_coeffs : Temperature RangedPolynomial coefficients, with the same format as elevation_coeffs. min_temperature : float Minimum temperature for which temperature_coeffs is valid. max_temperature : float Maximum temperature for which temperature_coeffs is valid. ValueError If elevation_coeffs, azimuth_coeffs or temperature_coeffs is not a sequence of 6 items, or if any item is not a sequence of floats with at least 1 element.

Methods Summary

 get_offsets(elevation, azimuth, temperature) Get compensation offsets.

Methods Documentation

get_offsets(elevation, azimuth, temperature)

Get compensation offsets.

Parameters: elevation : float Telescope elevation (deg). Must be in range [0, 90]. azimuth : float Telescope azimuth (deg). There are no range limits; azimuth is wrapped as needed. temperature : float Ambient temperature (C). There are no range limits; see RangedPolynomial for details. offsets : Offsets for x, y, z (um), u, v, w (deg), such that compensated value = nominal value + offsets. ValueError If elevation not in range [0, 90].