For discrete data in the form of event triggers, it is often very illuminating to analyse the rate at which these events occur in time - usually a high event rate is indicative of a higher noise level.
One can calculate the event rate of any of the annotated tables using its event_rate()
method.
For example, as defined for the SnglBurstTable
:
SnglBurstTable.
event_rate
(stride, start=None, end=None, timecolumn='time')[source]Calculate the rate TimeSeries
for this Table
.
Parameters: | stride :
start :
end :
timecolumn :
|
---|---|
Returns: | rate :
|
We can use the same data as for the example on plotting event triggers to demonstrate how to calculate and display the rate versus time of some event triggers:
>>> from gwpy.table.lsctables import SnglBurstTable
>>> events = SnglBurstTable.read('../../gwpy/tests/data/'
'H1-LDAS_STRAIN-968654552-10.xml.gz')
>>> rate = events.event_rate(1, start=968654552, end=968654562)
>>> plot = rate.plot()
>>> plot.set_xlim(968654552, 968654562)
>>> plot.set_ylabel('Event rate [Hz]')
>>> plot.set_title('LIGO Hanford Observatory event rate for GW100916')
>>> plot.show()
(Source code, png)
This code is a snippet of the example on plotting event rate.
Following from a simple rate versus time calculation, it is often useful to calculate the event rate for multiple conditions on the same table.
The binned_event_rates()
method is attached to each Table
subclass for convenience.
SnglBurstTable.
binned_event_rates
(stride, column, bins, operator='>=', start=None, end=None, timecolumn='time')[source]Calculate an event rate TimeSeriesDict
over
a number of bins.
Parameters: | stride :
column :
bins :
start :
end :
timecolumn :
|
---|---|
Returns: | rates :
|
For example, in the following example, we calculate the rate of events with signal-to-noise ratio (SNR) above some threshold, for the same table as above.
>>> rates = events.binned_event_rates(1, 'snr', [2, 3, 5, 8], operator='>=',
start=968654552, end=968654562)
>>> # Finally, we can make a plot:
>>> plot = rates.plot(label='name')
>>> plot.set_xlim(968654552, 968654562)
>>> plot.set_ylabel('Event rate [Hz]')
>>> plot.set_title('LIGO Hanford Observatory event rate for GW100916')
>>> plot.add_legend()
(Source code, png)
This code is a snippet of the example on plotting event rate.