Hi all,
I run an unsupervised glitch-discovery pipeline (DANTE) over public O4a strain. One 32 s window in L1 came out as the highest-scoring candidate of the whole search, and I cannot take it further with public data alone. I would like help deciding whether what it contains is a known glitch morphology, or whether my pipeline is reacting to something uninteresting.
Please read this as "what am I missing?", not as a detection claim. I am an independent researcher with no LVK access, so the auxiliary-channel question — the decisive one — is exactly the one I cannot answer myself.
The window, and the feature in it
| Property | Value |
|---|---|
| Detector | L1 |
| Flagged window | GPS 1382955228 – 1382955260 (UTC 2023-11-02 10:13:30) |
| Loud feature inside it | GPS 1382955253.17 (+25.17 s into the window) |
| Morphology | sharp onset, then narrowband \~28–30 Hz ringing lasting several seconds, with structure near 50–60 Hz |
| Amplitude | peak whitened strain 27, about 45× the median per-second energy of the window |
| Data | public GWOSC strain, CAT1-gated |
An important caveat about what my pipeline actually selected. The anomaly score comes from a Top-k patch pooling over the window's spectrogram, and for this candidate that selection is diffuse: the patches span 27.7 s of the 32 s window, with 41% of them in the first 4 s, and only 3 of 68 within 1 s of the loud feature described above. So the window is anomalous as a window, and I cannot claim that the feature at +25.17 s is what drove the flag. I am showing it because it is the one obviously non-Gaussian thing in there, and because it is the part a detector expert can most plausibly recognise.
The figure
Attached: the full whitened window (top) and Q-scans around the loud feature. Deliberately produced with stock gwpy calls rather than my pipeline, so it reproduces in about ten lines:
ts = TimeSeries.fetch_open_data('L1', 1382955224, 1382955264, sample_rate=4096)
w = ts.whiten(4, 2).crop(1382955228, 1382955260)
w.q_transform(outseg=(1382955249, 1382955257), frange=(10, 512)).plot()
What I checked with public data
- Cross-detector coincidence — none. Normalized cross-correlation of the whitened strains over the light-travel lag window (validated at 1.00 for an identical injected waveform vs 0.043 for independent noise). No H1 counterpart.
- Auxiliary-channel coherence — max 0.478 against a family-wise threshold of 0.663 from a time-shift surrogate null. No correlation found.
- Morphological isolation — one of only 2 candidates out of 10,372 falling outside the single macro-cluster my clustering produces, and the highest anomaly score in the run.
What I could not check — the honest limits
- My auxiliary-channel test is much weaker than its name suggests. I used the 7 channels available to me for L1, and 5 of those 7 are calibration-related (
CAL-PCALX/Y_RX_PD,SUS-ETMX_L1/L2/L3_CAL_LINE); the others areASC-X_TR_A_NSUMandIMC-WFS_B_I_PIT. There is no seismometer, magnetometer, microphone or accelerometer in that set. For a hypothesis like "a mechanical resonance was rung up", that is close to no test at all. - No Gravity Spy comparison was possible. The released classification sets cover O1/O2/O3a/O3b and stop at GPS ≈1.269e9; O4a starts near 1.369e9. Zero overlap, so my cross-match returned "not found" for all 10,372 candidates by construction. That is a coverage gap, not evidence of novelty, and I do not treat it as one.
- I have not checked GraceDB or the hardware-injection channel for this time.
- n = 1. Nothing like it recurs in my search, so this is not a glitch class — at most a single instance.
What I am asking
- Is the impulsive-onset-plus-30 Hz-ringing shape a known O4a morphology with a name? To me it looks like a mechanical resonance excited by an impulse, but that is a guess from outside.
- Does anything appear in the full auxiliary channel set at GPS 1382955253.17 in L1 — seismic, suspension, or ASC in particular? This is the decisive check and the one I cannot run.
- Was L1 in a normal operating state then? Any commissioning activity, injection, or known excursion?
- Is it present in Omicron triggers? If a standard trigger generator did not flag it, that would point at my preprocessing rather than at the instrument, which I would very much want to know.
If this turns out to be a well-known artefact, that is a genuinely useful answer for me — it bounds what my pipeline is finding, and I will say so publicly.
Context and reproducibility
Method and limitations: arXiv:2607.18136. Code: github.com/lucacirfeta/dante-gravi-signal-ml
One caveat on reproducibility, since it bears on any number above that comes from my pipeline rather than from raw strain: the whitening and Q-transform are provided by gwpy, and my dependency specification bounded versions from below rather than pinning them. Re-running under a later gwpy major release reproduces the analysis qualitatively but not numerically. The figure and the amplitude numbers in this post are independent of that — they come from stock gwpy on public strain, as shown above.
Happy to provide per-event records or re-run any check that would help.
Thanks

