The standard coherence calculation outputs a frequency series
(FrequencySeries
) giving a time-averaged measure
of coherence.
The TimeSeries
method coherence_spectrogram()
performs the
same coherence calculation every stride
, giving a time-varying coherence
measure.
First, we import the TimeSeriesDict
from gwpy.timeseries import TimeSeriesDict
and then get()
both data sets:
data = TimeSeriesDict.get(['L1:LSC-SRCL_IN1_DQ', 'L1:LSC-CARM_IN1_DQ'],
'Feb 13 2015', 'Feb 13 2015 00:15')
We can then use the coherence_spectrogram()
method
of one TimeSeries
to calcululate the time-varying coherence with
respect to the other, using a 0.5-second FFT length, with a
0.45-second (90%) overlap, with a 8-second stride:
coh = data['L1:LSC-SRCL_IN1_DQ'].coherence_spectrogram(
data['L1:LSC-CARM_IN1_DQ'], 8, 0.5, 0.45)
Finally, we can plot()
the
resulting data
plot = coh.plot()
ax = plot.gca()
ax.set_ylabel('Frequency [Hz]')
ax.set_yscale('log')
ax.set_ylim(10, 8000)
ax.set_title('Coherence between SRCL and CARM for L1')
ax.grid(True, 'both', 'both')
plot.add_colorbar(label='Coherence', clim=[0, 1])
plot.show()
(Source code, png)