Skip to content
Snippets Groups Projects
Commit 4b4bd5e2 authored by Moritz's avatar Moritz
Browse files

Cleared up some properties

parent 44a0f3d8
No related branches found
No related tags found
1 merge request!474Refactor strain data
...@@ -5,6 +5,7 @@ from bilby.core import utils ...@@ -5,6 +5,7 @@ from bilby.core import utils
from bilby.core.series import CoupledTimeAndFrequencySeries from bilby.core.series import CoupledTimeAndFrequencySeries
from bilby.core.utils import logger from bilby.core.utils import logger
from bilby.gw import utils as gwutils from bilby.gw import utils as gwutils
from bilby.gw.detector.utils import SubclassPropertyAccessor
try: try:
import gwpy import gwpy
...@@ -23,6 +24,12 @@ except ImportError: ...@@ -23,6 +24,12 @@ except ImportError:
class InterferometerStrainData(object): class InterferometerStrainData(object):
""" Strain data for an interferometer """ """ Strain data for an interferometer """
duration = SubclassPropertyAccessor('duration', '_times_and_frequencies')
sampling_frequency = SubclassPropertyAccessor('sampling_frequency', '_times_and_frequencies')
start_time = SubclassPropertyAccessor('start_time', '_times_and_frequencies')
frequency_array = SubclassPropertyAccessor('frequency_array', '_times_and_frequencies')
time_array = SubclassPropertyAccessor('time_array', '_times_and_frequencies')
def __init__(self, minimum_frequency=0, maximum_frequency=np.inf, def __init__(self, minimum_frequency=0, maximum_frequency=np.inf,
roll_off=0.2): roll_off=0.2):
""" Initiate an InterferometerStrainData object """ Initiate an InterferometerStrainData object
...@@ -49,6 +56,7 @@ class InterferometerStrainData(object): ...@@ -49,6 +56,7 @@ class InterferometerStrainData(object):
self._times_and_frequencies = CoupledTimeAndFrequencySeries() self._times_and_frequencies = CoupledTimeAndFrequencySeries()
# self._set_time_and_frequency_array_parameters(None, None, None) # self._set_time_and_frequency_array_parameters(None, None, None)
self._frequency_mask = None
self._frequency_domain_strain = None self._frequency_domain_strain = None
self._frequency_array = None self._frequency_array = None
self._time_domain_strain = None self._time_domain_strain = None
...@@ -93,25 +101,17 @@ class InterferometerStrainData(object): ...@@ -93,25 +101,17 @@ class InterferometerStrainData(object):
else: else:
return True return True
@property
def minimum_frequency(self):
return self.__minimum_frequency
@minimum_frequency.setter
def minimum_frequency(self, minimum_frequency):
self.__minimum_frequency = minimum_frequency
@property @property
def maximum_frequency(self): def maximum_frequency(self):
""" Force the maximum frequency be less than the Nyquist frequency """ """ Force the maximum frequency be less than the Nyquist frequency """
if self.sampling_frequency is not None: if self.sampling_frequency is not None:
if 2 * self.__maximum_frequency > self.sampling_frequency: if 2 * self._maximum_frequency > self.sampling_frequency:
self.__maximum_frequency = self.sampling_frequency / 2. self._maximum_frequency = self.sampling_frequency / 2.
return self.__maximum_frequency return self._maximum_frequency
@maximum_frequency.setter @maximum_frequency.setter
def maximum_frequency(self, maximum_frequency): def maximum_frequency(self, maximum_frequency):
self.__maximum_frequency = maximum_frequency self._maximum_frequency = maximum_frequency
@property @property
def frequency_mask(self): def frequency_mask(self):
...@@ -121,14 +121,12 @@ class InterferometerStrainData(object): ...@@ -121,14 +121,12 @@ class InterferometerStrainData(object):
------- -------
array_like: An array of boolean values array_like: An array of boolean values
""" """
try: if self._frequency_mask is not None:
return self._frequency_mask
except AttributeError:
frequency_array = self._times_and_frequencies.frequency_array
mask = ((frequency_array >= self.minimum_frequency) &
(frequency_array <= self.maximum_frequency))
self._frequency_mask = mask
return self._frequency_mask return self._frequency_mask
frequency_array = self._times_and_frequencies.frequency_array
self._frequency_mask = ((frequency_array >= self.minimum_frequency) &
(frequency_array <= self.maximum_frequency))
return self._frequency_mask
@property @property
def alpha(self): def alpha(self):
...@@ -644,45 +642,3 @@ class InterferometerStrainData(object): ...@@ -644,45 +642,3 @@ class InterferometerStrainData(object):
self._times_and_frequencies = CoupledTimeAndFrequencySeries(duration=duration, self._times_and_frequencies = CoupledTimeAndFrequencySeries(duration=duration,
sampling_frequency=sampling_frequency, sampling_frequency=sampling_frequency,
start_time=start_time) start_time=start_time)
@property
def sampling_frequency(self):
return self._times_and_frequencies.sampling_frequency
@sampling_frequency.setter
def sampling_frequency(self, sampling_frequency):
self._times_and_frequencies.sampling_frequency = sampling_frequency
@property
def duration(self):
return self._times_and_frequencies.duration
@duration.setter
def duration(self, duration):
self._times_and_frequencies.duration = duration
@property
def start_time(self):
return self._times_and_frequencies.start_time
@start_time.setter
def start_time(self, start_time):
self._times_and_frequencies.start_time = start_time
@property
def frequency_array(self):
""" Frequencies of the data in Hz """
return self._times_and_frequencies.frequency_array
@frequency_array.setter
def frequency_array(self, frequency_array):
self._times_and_frequencies.frequency_array = frequency_array
@property
def time_array(self):
""" Time of the data in seconds """
return self._times_and_frequencies.time_array
@time_array.setter
def time_array(self, time_array):
self._times_and_frequencies.time_array = time_array
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment