From 24bcc44f30671670b67f7b197b3f3648116bc2b4 Mon Sep 17 00:00:00 2001 From: Gregory Ashton <gregory.ashton@ligo.org> Date: Fri, 5 Jun 2020 09:23:53 -0500 Subject: [PATCH] Changes to the waveform generator 1) Default to the BBH conversion function 2) Print a summary of the various methods used by the WFG 3) Downgrade the warning message about the wfg time 4) Remove the default conversion (do nothing function) --- bilby/core/utils.py | 7 +++++++ bilby/gw/likelihood.py | 2 +- bilby/gw/waveform_generator.py | 18 ++++++++++++------ test/waveform_generator_test.py | 4 ++-- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/bilby/core/utils.py b/bilby/core/utils.py index 6797fe82..d4704ae5 100644 --- a/bilby/core/utils.py +++ b/bilby/core/utils.py @@ -1236,6 +1236,13 @@ def kish_log_effective_sample_size(ln_weights): return log_n_eff +def get_function_path(func): + if hasattr(func, "__module__") and hasattr(func, "__name__"): + return "{}.{}".format(func.__module__, func.__name__) + else: + return func + + class IllegalDurationAndSamplingFrequencyException(Exception): pass diff --git a/bilby/gw/likelihood.py b/bilby/gw/likelihood.py index 25d0c37e..f3291777 100644 --- a/bilby/gw/likelihood.py +++ b/bilby/gw/likelihood.py @@ -196,7 +196,7 @@ class GravitationalWaveTransient(Likelihood): "The waveform_generator {} is None. Setting from the " "provided interferometers.".format(attr)) elif wfg_attr != ifo_attr: - logger.warning( + logger.debug( "The waveform_generator {} is not equal to that of the " "provided interferometers. Overwriting the " "waveform_generator.".format(attr)) diff --git a/bilby/gw/waveform_generator.py b/bilby/gw/waveform_generator.py index ace07035..89432314 100644 --- a/bilby/gw/waveform_generator.py +++ b/bilby/gw/waveform_generator.py @@ -3,6 +3,7 @@ import numpy as np from ..core import utils from ..core.series import CoupledTimeAndFrequencySeries from .utils import PropertyAccessor +from .conversion import convert_to_lal_binary_black_hole_parameters class WaveformGenerator(object): @@ -57,7 +58,7 @@ class WaveformGenerator(object): self.time_domain_source_model = time_domain_source_model self.source_parameter_keys = self.__parameters_from_source_model() if parameter_conversion is None: - self.parameter_conversion = _default_parameter_conversion + self.parameter_conversion = convert_to_lal_binary_black_hole_parameters else: self.parameter_conversion = parameter_conversion if waveform_arguments is not None: @@ -67,6 +68,15 @@ class WaveformGenerator(object): if isinstance(parameters, dict): self.parameters = parameters self._cache = dict(parameters=None, waveform=None, model=None) + utils.logger.info( + "Waveform generator initiated with\n" + " frequency_domain_source_model: {}\n" + " frequency_domain_source_model: {}\n" + " parameter_conversion: {}" + .format(utils.get_function_path(self.frequency_domain_source_model), + utils.get_function_path(self.time_domain_source_model), + utils.get_function_path(self.parameter_conversion)) + ) def __repr__(self): if self.frequency_domain_source_model is not None: @@ -77,7 +87,7 @@ class WaveformGenerator(object): tdsm_name = self.time_domain_source_model.__name__ else: tdsm_name = None - if self.parameter_conversion.__name__ == '_default_parameter_conversion': + if self.parameter_conversion is None: param_conv_name = None else: param_conv_name = self.parameter_conversion.__name__ @@ -237,7 +247,3 @@ class WaveformGenerator(object): raise AttributeError('Either time or frequency domain source ' 'model must be provided.') return set(utils.infer_parameters_from_function(model)) - - -def _default_parameter_conversion(parmeters): - return parmeters, list() diff --git a/test/waveform_generator_test.py b/test/waveform_generator_test.py index 69e3112c..d759c2f9 100644 --- a/test/waveform_generator_test.py +++ b/test/waveform_generator_test.py @@ -73,7 +73,7 @@ class TestWaveformGeneratorInstantiationWithoutOptionalParameters(unittest.TestC self.waveform_generator.start_time, self.waveform_generator.frequency_domain_source_model.__name__, self.waveform_generator.time_domain_source_model, - None, + bilby.gw.conversion.convert_to_lal_binary_black_hole_parameters.__name__, self.waveform_generator.waveform_arguments, ) ) @@ -92,7 +92,7 @@ class TestWaveformGeneratorInstantiationWithoutOptionalParameters(unittest.TestC self.waveform_generator.start_time, self.waveform_generator.frequency_domain_source_model, self.waveform_generator.time_domain_source_model.__name__, - None, + bilby.gw.conversion.convert_to_lal_binary_black_hole_parameters.__name__, self.waveform_generator.waveform_arguments, ) ) -- GitLab