Skip to content
Snippets Groups Projects

Several changes to fix line subtraction when lines turn on and off

Merged Aaron Viets requested to merge aaron-viets/gstlal-calibration:lines-off-linesub-fix into main
2 unresolved threads

@louis.dartez pointed out an issue on September 5 when the calibration lines were present in the NOLINES channel during a time when the calibration lines were turned off. This was caused by the fact that, due to the line subtraction gating, the subtraction signal was still being subtracted when the lines were turned off. Here is a spectrogram showing what happened: H1_GDS-CALIB_STRAIN_NOLINES_spectrogram_10-1000Hz_1409576318-27382

In order to fix this, it was necessary to implement a method that distinguishes between zeros and missing data in line witness channels, so that the subtraction can continue to function during brief data dropouts, but actual zeros will cause the subtraction to stop (i.e., to subtract zeros). During these times, it is still important to gate the line subtraction TFs, so that they are not updated with incoherent data that corrupts the subtraction once the lines turn back on. Here is a spectrogram showing the improvement after the first fix: H1_GDS-CALIB_STRAIN_NOLINES_spectrogram_10-1000Hz_1409576318-27482_afterfix

Although this fixes the issue during the time when the lines are off, there is still a problem visible starting just after the 6-hour mark in the above plot. I discovered that this is because the line subtraction was not updating as intended due to secular changes in the TFs. (When significant secular change is detected in the line subtracion TFs, the algorithm is supposed to switch to a shorter running median so that the subtraction can adjust faster--see details in G2400875.) The reason, as I found, was that the GstController was not working in this case. The fix was to implement another way to control the timing of the line subtraction updates. The the resulting improvement in the spectrongram can be seen here: H1_GDS-CALIB_STRAIN_NOLINES_spectrogram_10-1000Hz_1409576318-27482_afterfix2_v2

Finally, I analyzed another stretch of data in response to this aLOG that revealed another minor issue. In this spectrogram, the problem can be seen from around 19 - 22 UTC. The problem was greatly reduced by fixing the fix to the line subtraction updating due to secular change in the TFs noted above, but there was one remaining issue: the gating was not triggered by the calibration measurements being done around that time because the lock state during calibration measurements (700) is greater than the lock state during low noise (600). So, I included an option in gstlal_compute_strain to require the lock state to be equal to a particular value rather than greater than that value. Here is a spectrogram of that time after the final fix: H1_GDS-CALIB_STRAIN_NOLINES_spectrogram_10-1000Hz_1410782718-56100_v2

Merge request reports

Merge request pipeline #664796 passed

Merge request pipeline passed for 804f40ee

Approved by

Merged by Aaron VietsAaron Viets 5 months ago (Oct 15, 2024 7:18pm UTC)

Merge details

  • Changes merged into main with f17338d3.
  • Deleted the source branch.

Pipeline #669620 passed

Pipeline passed for f17338d3 on main

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
891 891 case ARG_CLEAR_ON_GAP:
892 892 element->clear_on_gap = g_value_get_boolean(value);
893 893 break;
894 case ARG_RESET_TIME:
894 case ARG_RESET_TIME: ;
  • This is a bigger change than I would have imagined. @madeline-wade can you help review this?

  • Madeline Wade
  • Madeline Wade
  • Madeline Wade
  • The issue reported in LLO aLOG 73549 is also corrected by this fix. Here is an ASD produced from the C00 data that was shown in that aLOG: L1_NOLINES_C00_ASD_55-65Hz_1412469018-3600 This ASD is one that I produced using this fix during the same time: L1_NOLINES_TEST_ASD_55-65Hz_1412469018-3600

    Edited by Aaron Viets
  • 247 251 }
    248 252
    249 253
    254 static void reset(GSTLALSmoothKappas *element) {
    • Can you add a comment into this function explaining it's purpose? (This is not critical for review, but will likely help us in the future when we are trying to understand what we've done historically.)

    • Please register or sign in to reply
  • I am happy with this MR upon review.

  • Madeline Wade approved this merge request

    approved this merge request

  • Aaron Viets mentioned in commit f17338d3

    mentioned in commit f17338d3

  • merged

  • Please register or sign in to reply
    Loading