diff --git a/AUTHORS.md b/AUTHORS.md index bfd80a6e9bf73780d29bc0a133324434cd4eba1c..8386a65172af168a6ac1c76b28d9676498213439 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 b68313c0fb2f84c3c33dac380a0a1fbadb4c53a2..f6cc1e989f6002e721f2687eeba74babb3bbfe01 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))