From a0b7e2152cb6fc27a229213a9a10cee10f8c10b3 Mon Sep 17 00:00:00 2001 From: Joshua Brandt <joshua.brandt@ligo.org> Date: Mon, 14 Jun 2021 01:30:36 +0000 Subject: [PATCH] Solution to Incorrect Injected SNR values in log files --- AUTHORS.md | 1 + bilby/gw/detector/__init__.py | 23 ++++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/AUTHORS.md b/AUTHORS.md index bfd80a6e9..8386a6517 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -30,6 +30,7 @@ Isobel Marguarethe Romero-Shaw Jade Powell James A Clark John Veitch +Joshua Brandt Katerina Chatziioannou Kaylee de Soto Khun Sang Phukon diff --git a/bilby/gw/detector/__init__.py b/bilby/gw/detector/__init__.py index b68313c0f..f6cc1e989 100644 --- a/bilby/gw/detector/__init__.py +++ b/bilby/gw/detector/__init__.py @@ -5,7 +5,6 @@ from .networks import * from .psd import * from .strain_data import * - def get_safe_signal_duration(mass_1, mass_2, a_1, a_2, tilt_1, tilt_2, flow=10): """ Calculate the safe signal duration, given the parameters @@ -32,7 +31,7 @@ def get_safe_signal_duration(mass_1, mass_2, a_1, a_2, tilt_1, tilt_2, flow=10): def inject_signal_into_gwpy_timeseries( - data, waveform_generator, parameters, det, outdir=None, label=None): + data, waveform_generator, parameters, det, power_spectral_density=None, outdir=None, label=None): """ Inject a signal into a gwpy timeseries Parameters @@ -43,8 +42,10 @@ def inject_signal_into_gwpy_timeseries( An initialised waveform_generator parameters: dict A dictionary of the signal-parameters to inject - ifo: bilby.gw.detector.Interferometer + det: bilby.gw.detector.Interferometer The interferometer for which the data refers too + power_spectral_density: bilby.gw.detector.PowerSpectralDensity + Power spectral density determining the sensitivity of the detector. outdir, label: str If given, the outdir and label used to generate a plot @@ -56,7 +57,19 @@ def inject_signal_into_gwpy_timeseries( A dictionary of meta data about the injection """ + from gwpy.timeseries import TimeSeries + from gwpy.plot import Plot + ifo = get_empty_interferometer(det) + + if isinstance(power_spectral_density, PowerSpectralDensity): + ifo.power_spectral_density = power_spectral_density + elif power_spectral_density is not None: + raise TypeError( + "Input power_spectral_density should be bilby.gw.detector.psd.PowerSpectralDensity " + "object or None, received {}.".format(type(power_spectral_density)) + ) + ifo.strain_data.set_from_gwpy_timeseries(data) parameters_check, _ = convert_to_lal_binary_black_hole_parameters(parameters) @@ -83,13 +96,13 @@ def inject_signal_into_gwpy_timeseries( dt = parameters['geocent_time'] + time_shift - data.times[0].value n_roll = dt * data.sample_rate.value n_roll = int(np.round(n_roll)) - signal_shifted = gwpy.timeseries.TimeSeries( + signal_shifted = TimeSeries( data=np.roll(signal, n_roll), times=data.times, unit=data.unit) signal_and_data = data.inject(signal_shifted) if outdir is not None and label is not None: - fig = gwpy.plot.Plot(signal_shifted) + fig = Plot(signal_shifted) fig.savefig('{}/{}_{}_time_domain_injected_signal'.format( outdir, ifo.name, label)) -- GitLab