From e4ac1430fb314b0da2454639958ac989e4e51c80 Mon Sep 17 00:00:00 2001 From: moritz <email@moritz-huebner.de> Date: Tue, 15 May 2018 11:26:23 +1000 Subject: [PATCH] Moritz Huebner: Removed default parameters for sampling frequency and time duration in the waveform generator --- examples/injection_examples/basic_tutorial.py | 8 ++++---- .../create_your_own_source_model.py | 9 ++++----- .../injection_examples/how_to_specify_the_prior.py | 8 ++++---- examples/injection_examples/injection.py | 7 ++++--- .../injection_examples/marginalized_likelihood.py | 8 ++++---- .../injection_examples/time_domain_source_model.py | 4 +++- examples/open_data_examples/GW150914.py | 11 ++++++----- examples/other_examples/alternative_likelihoods.py | 6 +++--- test/make_standard_data.py | 5 ++--- test/waveform_generator_tests.py | 12 ++++++------ tupak/likelihood.py | 12 ++++++------ tupak/waveform_generator.py | 4 ++-- 12 files changed, 48 insertions(+), 46 deletions(-) diff --git a/examples/injection_examples/basic_tutorial.py b/examples/injection_examples/basic_tutorial.py index c105e80d0..dd990be32 100644 --- a/examples/injection_examples/basic_tutorial.py +++ b/examples/injection_examples/basic_tutorial.py @@ -23,10 +23,10 @@ injection_parameters = dict(mass_1=36., mass_2=29., a_1=0.4, a_2=0.3, tilt_1=0.5 waveform_approximant='IMRPhenomPv2', reference_frequency=50., ra=1.375, dec=-1.2108) # Create the waveform_generator using a LAL BinaryBlackHole source function -waveform_generator = tupak.waveform_generator.WaveformGenerator( - sampling_frequency=sampling_frequency, time_duration=time_duration, - frequency_domain_source_model=tupak.source.lal_binary_black_hole, - parameters=injection_parameters) +waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=time_duration, + sampling_frequency=sampling_frequency, + frequency_domain_source_model=tupak.source.lal_binary_black_hole, + parameters=injection_parameters) hf_signal = waveform_generator.frequency_domain_strain() # Set up interferometers. diff --git a/examples/injection_examples/create_your_own_source_model.py b/examples/injection_examples/create_your_own_source_model.py index 072b90e25..225a1495f 100644 --- a/examples/injection_examples/create_your_own_source_model.py +++ b/examples/injection_examples/create_your_own_source_model.py @@ -26,11 +26,10 @@ def sine_gaussian(f, A, f0, tau, phi0, geocent_time, ra, dec, psi): # We now define some parameters that we will inject and then a waveform generator injection_parameters = dict(A=1e-21, f0=10, tau=1, phi0=0, geocent_time=0, ra=0, dec=0, psi=0) -waveform_generator = tupak.waveform_generator.WaveformGenerator( - frequency_domain_source_model=sine_gaussian, - sampling_frequency=sampling_frequency, - time_duration=time_duration, - parameters=injection_parameters) +waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=time_duration, + sampling_frequency=sampling_frequency, + frequency_domain_source_model=sine_gaussian, + parameters=injection_parameters) hf_signal = waveform_generator.frequency_domain_strain() # Set up interferometers. diff --git a/examples/injection_examples/how_to_specify_the_prior.py b/examples/injection_examples/how_to_specify_the_prior.py index d1c5ceb16..500cf91a9 100644 --- a/examples/injection_examples/how_to_specify_the_prior.py +++ b/examples/injection_examples/how_to_specify_the_prior.py @@ -19,10 +19,10 @@ injection_parameters = dict(mass_1=36., mass_2=29., a_1=0.4, a_2=0.3, tilt_1=0.5 waveform_approximant='IMRPhenomPv2', reference_frequency=50., ra=1.375, dec=-1.2108) # Create the waveform_generator using a LAL BinaryBlackHole source function -waveform_generator = tupak.waveform_generator.WaveformGenerator( - sampling_frequency=sampling_frequency, time_duration=time_duration, - frequency_domain_source_model=tupak.source.lal_binary_black_hole, - parameters=injection_parameters) +waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=time_duration, + sampling_frequency=sampling_frequency, + frequency_domain_source_model=tupak.source.lal_binary_black_hole, + parameters=injection_parameters) hf_signal = waveform_generator.frequency_domain_strain() # Set up interferometers. diff --git a/examples/injection_examples/injection.py b/examples/injection_examples/injection.py index 3ede36287..23b669e5e 100644 --- a/examples/injection_examples/injection.py +++ b/examples/injection_examples/injection.py @@ -15,9 +15,10 @@ def main(): label = 'injection' # Create the waveform generator - waveform_generator = tupak.waveform_generator.WaveformGenerator( - frequency_domain_source_model=tupak.source.lal_binary_black_hole, sampling_frequency=2048, time_duration=4, - parameters={'reference_frequency': 50.0, 'waveform_approximant': 'IMRPhenomPv2'}) + waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=4, sampling_frequency=2048, + frequency_domain_source_model=tupak.source.lal_binary_black_hole, + parameters={'reference_frequency': 50.0, + 'waveform_approximant': 'IMRPhenomPv2'}) # Define the prior # Merger time is some time in 2018, shame LIGO will never see it... diff --git a/examples/injection_examples/marginalized_likelihood.py b/examples/injection_examples/marginalized_likelihood.py index 3479a5f13..7fcd0acee 100644 --- a/examples/injection_examples/marginalized_likelihood.py +++ b/examples/injection_examples/marginalized_likelihood.py @@ -20,10 +20,10 @@ injection_parameters = dict(mass_1=36., mass_2=29., a_1=0.4, a_2=0.3, tilt_1=0.5 waveform_approximant='IMRPhenomPv2', reference_frequency=50., ra=1.375, dec=-1.2108) # Create the waveform_generator using a LAL BinaryBlackHole source function -waveform_generator = tupak.waveform_generator.WaveformGenerator( - sampling_frequency=sampling_frequency, time_duration=time_duration, - frequency_domain_source_model=tupak.source.lal_binary_black_hole, - parameters=injection_parameters) +waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=time_duration, + sampling_frequency=sampling_frequency, + frequency_domain_source_model=tupak.source.lal_binary_black_hole, + parameters=injection_parameters) hf_signal = waveform_generator.frequency_domain_strain() # Set up interferometers. diff --git a/examples/injection_examples/time_domain_source_model.py b/examples/injection_examples/time_domain_source_model.py index 6f8d8c22c..b9446703e 100644 --- a/examples/injection_examples/time_domain_source_model.py +++ b/examples/injection_examples/time_domain_source_model.py @@ -30,7 +30,9 @@ parameters['ra'] = 0 parameters['dec'] = 0 parameters['psi'] = 0 -wg = tupak.waveform_generator.WaveformGenerator(time_domain_source_model=time_domain_sine_gaussian, time_duration=2000, sampling_frequency=1000, parameters=parameters) +wg = tupak.waveform_generator.WaveformGenerator(time_duration=2000, sampling_frequency=1000, + time_domain_source_model=time_domain_sine_gaussian, + parameters=parameters) wg.parameters = parameters plt.plot(wg.frequency_array, wg.frequency_domain_strain()['plus']) plt.xlim(4, 6) diff --git a/examples/open_data_examples/GW150914.py b/examples/open_data_examples/GW150914.py index 4d0271477..2f582f387 100644 --- a/examples/open_data_examples/GW150914.py +++ b/examples/open_data_examples/GW150914.py @@ -44,11 +44,12 @@ prior['luminosity_distance'] = tupak.prior.PowerLaw( # creates the frequency-domain strain. In this instance, we are using the # `lal_binary_black_hole model` source model. We also pass other parameters: # the waveform approximant and reference frequency. -waveform_generator = tupak.waveform_generator.WaveformGenerator( - frequency_domain_source_model=tupak.source.lal_binary_black_hole, - sampling_frequency=interferometers[0].sampling_frequency, - time_duration=interferometers[0].duration, - parameters={'waveform_approximant': 'IMRPhenomPv2', 'reference_frequency': 50}) +waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=interferometers[0].duration, + sampling_frequency=interferometers[ + 0].sampling_frequency, + frequency_domain_source_model=tupak.source.lal_binary_black_hole, + parameters={'waveform_approximant': 'IMRPhenomPv2', + 'reference_frequency': 50}) # In this step, we define the likelihood. Here we use the standard likelihood # function, passing it the data and the waveform generator. diff --git a/examples/other_examples/alternative_likelihoods.py b/examples/other_examples/alternative_likelihoods.py index 74acbc277..ea0f1ed08 100644 --- a/examples/other_examples/alternative_likelihoods.py +++ b/examples/other_examples/alternative_likelihoods.py @@ -68,9 +68,9 @@ fig.savefig('{}/data.png'.format(outdir)) # name doesn't make so much sense. But essentially this is an objects that # can generate a signal. We give it information on how to make the time series # and the model() we wrote earlier. -waveform_generator = tupak.waveform_generator.WaveformGenerator( - sampling_frequency=sampling_frequency, time_duration=time_duration, - time_domain_source_model=model) +waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=time_duration, + sampling_frequency=sampling_frequency, + time_domain_source_model=model) # Now lets instantiate a version of out Likelihood, giving it the time, data diff --git a/test/make_standard_data.py b/test/make_standard_data.py index 71f60fc90..67b395f44 100644 --- a/test/make_standard_data.py +++ b/test/make_standard_data.py @@ -32,9 +32,8 @@ simulation_parameters = dict( psi=2.659 ) -waveform_generator = WaveformGenerator(frequency_domain_source_model=tupak.source.lal_binary_black_hole, - sampling_frequency=sampling_frequency, - time_duration=time_duration, +waveform_generator = WaveformGenerator(time_duration=time_duration, sampling_frequency=sampling_frequency, + frequency_domain_source_model=tupak.source.lal_binary_black_hole, parameters=simulation_parameters) signal = waveform_generator.frequency_domain_strain() diff --git a/test/waveform_generator_tests.py b/test/waveform_generator_tests.py index 5a1cf8dbf..460ef23b6 100644 --- a/test/waveform_generator_tests.py +++ b/test/waveform_generator_tests.py @@ -17,8 +17,8 @@ def gaussian_frequency_domain_strain_2(frequency_array, a, m, s, ra, dec, geocen class TestWaveformGeneratorInstantiationWithoutOptionalParameters(unittest.TestCase): def setUp(self): - self.waveform_generator = tupak.waveform_generator.WaveformGenerator( - frequency_domain_source_model=gaussian_frequency_domain_strain) + self.waveform_generator = tupak.waveform_generator.WaveformGenerator(1, 4096, + frequency_domain_source_model=gaussian_frequency_domain_strain) self.simulation_parameters = dict(amplitude=1e-21, mu=100, sigma=1, ra=1.375, dec=-1.2108, @@ -52,8 +52,8 @@ class TestWaveformGeneratorInstantiationWithoutOptionalParameters(unittest.TestC class TestParameterSetter(unittest.TestCase): def setUp(self): - self.waveform_generator = tupak.waveform_generator.WaveformGenerator( - frequency_domain_source_model=gaussian_frequency_domain_strain) + self.waveform_generator = tupak.waveform_generator.WaveformGenerator(1, 4096, + frequency_domain_source_model=gaussian_frequency_domain_strain) self.simulation_parameters = dict(amplitude=1e-21, mu=100, sigma=1, ra=1.375, dec=-1.2108, @@ -91,8 +91,8 @@ class TestParameterSetter(unittest.TestCase): class TestSourceModelSetter(unittest.TestCase): def setUp(self): - self.waveform_generator = tupak.waveform_generator.WaveformGenerator( - frequency_domain_source_model=gaussian_frequency_domain_strain) + self.waveform_generator = tupak.waveform_generator.WaveformGenerator(1, 4096, + frequency_domain_source_model=gaussian_frequency_domain_strain) self.waveform_generator.frequency_domain_source_model = gaussian_frequency_domain_strain_2 self.simulation_parameters = dict(amplitude=1e-21, mu=100, sigma=1, ra=1.375, diff --git a/tupak/likelihood.py b/tupak/likelihood.py index feb5f2dbd..17bc336a5 100644 --- a/tupak/likelihood.py +++ b/tupak/likelihood.py @@ -150,12 +150,12 @@ def get_binary_black_hole_likelihood(interferometers): likelihood: tupak.likelihood.Likelihood The likelihood to pass to `run_sampler` """ - waveform_generator = tupak.waveform_generator.WaveformGenerator( - frequency_domain_source_model=tupak.source.lal_binary_black_hole, - sampling_frequency=interferometers[0].sampling_frequency, - time_duration=interferometers[0].duration, - parameters={'waveform_approximant': 'IMRPhenomPv2', - 'reference_frequency': 50}) + waveform_generator = tupak.waveform_generator.WaveformGenerator(time_duration=interferometers[0].duration, + sampling_frequency=interferometers[ + 0].sampling_frequency, + frequency_domain_source_model=tupak.source.lal_binary_black_hole, + parameters={'waveform_approximant': 'IMRPhenomPv2', + 'reference_frequency': 50}) likelihood = tupak.likelihood.Likelihood( interferometers, waveform_generator) return likelihood diff --git a/tupak/waveform_generator.py b/tupak/waveform_generator.py index 23c7726d7..6bbd93686 100644 --- a/tupak/waveform_generator.py +++ b/tupak/waveform_generator.py @@ -23,8 +23,8 @@ class WaveformGenerator(object): """ - def __init__(self, frequency_domain_source_model=None, time_domain_source_model=None, sampling_frequency=4096, time_duration=1, - parameters=None): + def __init__(self, time_duration, sampling_frequency, frequency_domain_source_model=None, + time_domain_source_model=None, parameters=None): self.time_duration = time_duration self.sampling_frequency = sampling_frequency self.frequency_domain_source_model = frequency_domain_source_model -- GitLab