Source code for pycbc.results.snr

# Copyright (C) 2022
# Tito Dal Canton, Gareth Cabourn Davies, Ian Harry
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.


#
# =============================================================================
#
#                                   Preamble
#
# =============================================================================
#
"""
Module to generate SNR figures
"""
import pylab as pl
from pycbc.results import ifo_color


[docs]def generate_snr_plot(snrdict, output_filename, triggers, ref_time): """ Generate an SNR timeseries plot as used for upload to GraceDB. Parameters ---------- snrdict: dictionary A dictionary keyed on ifo containing the SNR TimeSeries objects output_filename: string The filename for the plot to be saved to triggers : dictionary of tuples A dictionary keyed on IFO, containing (trigger time, trigger snr) ref_time : number, GPS seconds Reference time which will be used as the zero point of the plot This should be an integer value, but doesn't need to be an integer Returns ------- None """ pl.figure() ref_time = int(ref_time) for ifo in sorted(snrdict): curr_snrs = snrdict[ifo] pl.plot(curr_snrs.sample_times - ref_time, abs(curr_snrs), c=ifo_color(ifo), label=ifo) if ifo in triggers: pl.plot(triggers[ifo][0] - ref_time, triggers[ifo][1], marker='x', c=ifo_color(ifo)) pl.legend() pl.xlabel(f'GPS time from {ref_time:d} (s)') pl.ylabel('SNR') pl.savefig(output_filename) pl.close()
__all__ = ["generate_snr_plot"]