From bbd379b86b8278dd9561faf29e75e890e76de0c2 Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Wed, 20 Jun 2018 20:53:56 +1000 Subject: [PATCH] make asd and psd properties --- tupak/gw/detector.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tupak/gw/detector.py b/tupak/gw/detector.py index 79964ffc4..7e1d58d07 100644 --- a/tupak/gw/detector.py +++ b/tupak/gw/detector.py @@ -629,10 +629,11 @@ class PowerSpectralDensity: power_spectral_density_interpolated: scipy.interpolated.interp1d Interpolated function of the PSD """ + self.__both_updated = True + self.__power_spectral_density = [] + self.__amplitude_spectral_density = [] self.frequencies = [] - self.power_spectral_density = [] - self.amplitude_spectral_density = [] self.power_spectral_density_interpolated = None if asd_file is not None: @@ -679,6 +680,29 @@ class PowerSpectralDensity: min(self.power_spectral_density))) logging.warning("You may have intended to provide this as an amplitude spectral density.") + @property + def power_spectral_density(self): + return self.__power_spectral_density + + @power_spectral_density.setter + def power_spectral_density(self, power_spectral_density): + self.__power_spectral_density = power_spectral_density + self._interpolate_power_spectral_density() + self.__both_updated = ~self.__both_updated + if not self.__both_updated: + self.amplitude_spectral_density(power_spectral_density**0.5) + + @property + def amplitude_spectral_density(self): + return self.__amplitude_spectral_density + + @power_spectral_density.setter + def power_spectral_density(self, amplitude_spectral_density): + self.__amplitude_spectral_density = amplitude_spectral_density + self.__both_updated = ~self.__both_updated + if not self.__both_updated: + self.power_spectral_density(amplitude_spectral_density**2) + def import_amplitude_spectral_density(self): """ Automagically load one of the amplitude spectral density curves contained in the noise_curves directory. -- GitLab