I re-wrote the ellipse fitting code for the CRS (previously /opt/rtcds/userapps/release/isi/h1/scripts/write_ellipse_values3.py ---> /opt/rtcds/userapps/release/isi/h1/scripts/write_ellipse_values4.py)
While the script works well while the CRS is rung up (i.e. moving a lot), I was running into an error where the previous duration was set much too low (2 seconds), and the CRS wasn't moving enough to get enough data to construct a full ellipse, which would either result in an error or an incorrect fit.
I've made a new version (write_ellipse_values4.py) for when the CRS isn't rung up where you can pick the duration and it can look at data from a earlier time (i.e. ask to use 20 minutes of data starting 20 minutes ago).
I ran the ellipse fitting code for multiple times over multiple periods from over the weekend, while each time gave a slightly different result (listed below), most gave a change of <10% of values vs the current values, with the exception of the HoQI2 y0 Offset, which had a >10% change for all runs and had a max of an 146% change. This either indicates that the HoQI2 signal is drifting significantly, or the original HoQI2 offset used wasn't great.
1600s from 2026-08-24 10:00:00
HOQI 1:
OFFSET X0=-0.0730847 --> -0.07301 [-0.1022% Change]
OFFSET Y0=-0.0595926 --> -0.05879 [-1.35%]
Axes a: 0.794142406 --> 0.77781 [-2.1%]
Axes b: 0.71738585 --> 0.70098 [-2.3%]
Rotation Ang: 146.645-->147.03° [0.26%]
HOQI 2:
OFFSET X0=-0.0606974 --> -0.06256 [3.1%]
OFFSET Y0=0.00274197 --> 0.00589 [114%] ????
Axes a: 0.6477522995 --> 0.68223 [5.3%]
Axes b: 0.61753553917 -->0.65521 [6.1%]
Rotation Ang: 162.256-->161.22° [0.64%]
---------------------------------------------------
2026-08-23 10:00:00 3600s
HOQI 1:
OFFSET X0=-0.0730847 --> -0.07455 [2% Change]
OFFSET Y0=-0.0595926 --> -0.06007 [0.8%]
Axes a: 0.794142406 --> 0.78580 [-10.5%]
Axes b: 0.71738585 --> 0.71265 [-0.7%]
Rotation Ang: 146.645-->146.74° [0.06%]
HOQI 2:
OFFSET X0=-0.0606974 --> -0.06395 [5.4%]
OFFSET Y0=0.00274197 --> 0.00676 [146%] ????
Axes a: 0.6477522995 --> 0.69167 [6.7%]
Axes b: 0.61753553917 --> 0.66174 [7.1%]
Rotation Ang: 162.256-->160.98° [0.79%]
----------------------------------------------------
2026-08-23 11:00:00 1600s
HOQI 1:
OFFSET X0=-0.0730847 --> -0.07124 [2.5% Change]
OFFSET Y0=-0.0595926 --> -0.05432 [8.8%]
Axes a: 0.794142406 --> 0.75956 [-4.4%]
Axes b: 0.71738585 --> 0.68506 [-4.5%]
Rotation Ang: 146.645-->146.27° [0.26%]
HOQI 2:
OFFSET X0=-0.0606974 --> -0.06083 [0.22%]
OFFSET Y0=0.00274197 --> 0.00469 [71%] ????
Axes a: 0.6477522995 --> 0.67375 [4.0%]
Axes b: 0.61753553917 --> 0.64620 [4.4%]
Rotation Ang: 162.256-->160.73° [0.94%]
-----------------------------------------------------
2026-08-23 11:00:00 1000s
HOQI 1:
OFFSET X0=-0.0730847 --> -0.07251 [0.79% Change]
OFFSET Y0=-0.0595926 --> -0.05377 [9.8%]
Axes a: 0.794142406 --> 0.76077 [-4.2%]
Axes b: 0.71738585 --> 0.68627 [-4.3%]
Rotation Ang: 146.645-->145.57° [0.7%]
HOQI 2:
OFFSET X0=-0.0606974 --> -0.06151 [1.3%]
OFFSET Y0=0.00274197 --> 0.00520 [89.6%] ????
Axes a: 0.6477522995 --> 0.67432 [4.1%]
Rotation Ang: 162.256-->161.59° [-0.41%]
I ended up also looking at the most recent time the CRS was rung up (2026-08-19 05:00:00) for a 10 second window. I got a similar result (below) to for longer periods when the CRS is damped down, which implies that the difference in the HoQI2 Offset isn't due to either of those factors, and is infact either because it has drifted, or because the original offset wasn't great.
10s from 2026-08-19 05:00:00
HOQI 1:
OFFSET X0=-0.0730847 --> -0.07069 [-3.2% Change]
OFFSET Y0=-0.0595926 --> -0.05883 [-1.3%]
Axes a: 0.794142406 --> 0.76297 [-3.9%]
Axes b: 0.71738585 --> 0.68999 [-3.8%]
Rotation Ang: 146.645-->146.82° [0.12%]
HOQI 2:
OFFSET X0=-0.0606974 --> -0.05580 [8.1%]
OFFSET Y0=0.00274197 --> 0.00563 [105%] ????
Axes a: 0.6477522995 --> 0.61450 [-5.1%]
Axes b: 0.61753553917 -->0.58815 [-4.8%]
Rotation Ang: 162.256-->161.40°° [0.53%]
I've pushed the values gotten from 1600s of data from 2026-08-24 10:00:00. The ellipse fitting is shown in figure 1
The values are listed in the table below
| HoQI | Variable | Channel | Initial Value | New Value | % Change |
|---|---|---|---|---|---|
| HoQI1 | x0 Offset* | H1:ISI-HAM3_CRSRY_HOQI1_QUAD1_OFFSET | 0.0730847 | 0.07301 | -0.1022 |
| HoQI1 | y0 Offset* | H1:ISI-HAM3_CRSRY_HOQI1_QUAD2_OFFSET | 0.0595926 | 0.05879 | -1.35 |
| HoQI1 | 1/Axes a** | H1:ISI-HAM3_CRSRY_HOQI1_QUAD1_ROT_GAIN | 1.25922 | 1.28566 | -2.1 |
| HoQI1 | 1/Axes b** | H1:ISI-HAM3_CRSRY_HOQI1_QUAD2_ROT_GAIN | 1.39394 | 1.4266 | -2.3 |
| HoQI1 | Rotation Angle | H1:ISI-HAM3_CRSRY_HOQI2_PHASE_ROT | 146.645° | 147.03° | 0.26 |
| HoQI2 | x0 Offset* | H1:ISI-HAM3_CRSRY_HOQI2_QUAD1_OFFSET | 0.0606974 | 0.06256 | 3.1 |
| HoQI2 | y0 Offset* | H1:ISI-HAM3_CRSRY_HOQI2_QUAD2_OFFSET | -0.00274197 | -0.00589 | -114 |
| HoQI2 | 1/Axes a** | H1:ISI-HAM3_CRSRY_HOQI2_QUAD1_ROT_GAIN | 1.5438 | 1.46578 | -5.3 |
| HoQI2 | 1/Axes b** | H1:ISI-HAM3_CRSRY_HOQI2_QUAD2_ROT_GAIN | 1.61934 | 1.5262 | -6.1 |
| HoQI2 | Rotation Angle | H1:ISI-HAM3_CRSRY_HOQI2_PHASE_ROT | 162.256° | 161.22° | -0.64 |
*Offsets have a minus sign applied to them in the code when outputting, in this table the negative is ignored, i.e. what the channel reads
**The axes are actually 1/output, this table shows 1/axes, i.e. what the channel reads