Compensation¶
- class lsst.ts.mthexapod.Compensation(*, elevation_coeffs: list[list[float]], azimuth_coeffs: list[list[float]], rotation_coeffs: list[list[float]], temperature_coeffs: list[list[float]], min_temperature: float, max_temperature: float)¶
Bases:
object
Compute hexapod compensation for elevation, azimuth, camera rotation, and temperature.
The compensation is computed as offsets for x, y, z, u, v, w.
- Parameters:
- elevation_coeffs
list
[list
[float
]] 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], ]
- azimuth_coeffs
list
[list
[float
]] Azimuth coefficients, with the same format as
elevation_coeffs
.- rotation_coeffs
list
[list
[float
]] Rotation coefficients, with the same format as
elevation_coeffs
.- temperature_coeffs
list
[list
[float
]] Temperature
RangedPolynomial
coefficients, with the same format aselevation_coeffs
.- min_temperature
float
Minimum temperature for which
temperature_coeffs
is valid.- max_temperature
float
Maximum temperature for which
temperature_coeffs
is valid.
- elevation_coeffs
- Raises:
- ValueError
If
elevation_coeffs
,azimuth_coeffs
,rotation_coeffs
, ortemperature_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_offset
(inputs)Get compensation offset.
Methods Documentation
- get_offset(inputs: CompensationInputs) Position ¶
Get compensation offset.
- Parameters:
- inputs
CompensationInputs
Inputs for the compensation model.
- inputs
- Returns:
- offset
Position
Compensation offsets, such that:
compensated position = uncompensated position + offset.
- offset
- Raises:
- ValueError
If elevation not in range [0, 90].