This commit is contained in:
parent
ef155c1acb
commit
78a94cec81
@ -13,6 +13,7 @@ from .lasp_octavefilter import *
|
|||||||
from .lasp_slm import * # SLM, Dummy
|
from .lasp_slm import * # SLM, Dummy
|
||||||
from .lasp_record import * # RecordStatus, Recording
|
from .lasp_record import * # RecordStatus, Recording
|
||||||
from .lasp_daqconfigs import *
|
from .lasp_daqconfigs import *
|
||||||
|
from .lasp_measurementset import *
|
||||||
# from .lasp_siggen import * # SignalType, NoiseType, SiggenMessage, SiggenData, Siggen
|
# from .lasp_siggen import * # SignalType, NoiseType, SiggenMessage, SiggenData, Siggen
|
||||||
# from .lasp_weighcal import * # WeighCal
|
# from .lasp_weighcal import * # WeighCal
|
||||||
# from .tools import * # SmoothingType, smoothSpectralData, SmoothingWidth
|
# from .tools import * # SmoothingType, smoothSpectralData, SmoothingWidth
|
||||||
|
@ -0,0 +1,66 @@
|
|||||||
|
"""
|
||||||
|
Provides class MeasurementSet, a class used to perform checks and adjustments
|
||||||
|
on a group of measurements at the same time.
|
||||||
|
|
||||||
|
"""
|
||||||
|
__all__ = ['MeasurementSet']
|
||||||
|
from .lasp_measurement import Measurement
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
|
||||||
|
class MeasurementSet(list):
|
||||||
|
"""
|
||||||
|
Group of measurements that have some correspondence to one another. Class
|
||||||
|
is used to operate on multiple measurements at once.
|
||||||
|
|
||||||
|
"""
|
||||||
|
def __init__(self, mlist: List[Measurement] =[]):
|
||||||
|
"""
|
||||||
|
Initialize a measurement set
|
||||||
|
|
||||||
|
Args:
|
||||||
|
mlist: Measurement list
|
||||||
|
|
||||||
|
"""
|
||||||
|
if any([not isinstance(i, Measurement) for i in mlist]):
|
||||||
|
raise TypeError('Object in list should be of Measurement type')
|
||||||
|
|
||||||
|
super().__init__(mlist)
|
||||||
|
|
||||||
|
def measTimeSame(self):
|
||||||
|
"""
|
||||||
|
Returns True if all measurements have the same measurement
|
||||||
|
time (recorded time)
|
||||||
|
|
||||||
|
"""
|
||||||
|
if len(self) > 0:
|
||||||
|
first = self[0].N
|
||||||
|
return all([first == meas.N for meas in self])
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def measSimilar(self):
|
||||||
|
"""
|
||||||
|
Similar means: channel metadata is the same, and the measurement time
|
||||||
|
is the same. It means that the recorded data is, of course, different.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
True if measChannelsSame() and measTimeSame() else False
|
||||||
|
|
||||||
|
"""
|
||||||
|
return self.measTimeSame() and self.measChannelsSame()
|
||||||
|
|
||||||
|
|
||||||
|
def measChannelsSame(self):
|
||||||
|
"""
|
||||||
|
This method is used to check whether a set of measurements can be
|
||||||
|
accessed in a loop, i.e. for computing power spectra or sound levels on
|
||||||
|
a set of measurements, simultaneously. If the channel data is the same
|
||||||
|
(name, sensitivity, ...) it returns True.
|
||||||
|
"""
|
||||||
|
if len(self) > 0:
|
||||||
|
first = self[0].channelConfig
|
||||||
|
return all([first == meas.channelConfig for meas in self])
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
Loading…
Reference in New Issue
Block a user