Merged in develop
All checks were successful
Building, testing and releasing LASP if it has a tag / Build-Test-Ubuntu (push) Successful in 1m51s
Building, testing and releasing LASP if it has a tag / Release-Ubuntu (push) Has been skipped

This commit is contained in:
Anne de Jong 2024-03-19 13:40:39 +01:00
commit 46d1eda94d

View File

@ -3,7 +3,8 @@ Provides class MeasurementSet, a class used to perform checks and adjustments
on a group of measurements at the same time.
"""
__all__ = ['MeasurementSet']
__all__ = ["MeasurementSet"]
from .lasp_measurement import Measurement, MeasurementType
from typing import List
import time
@ -16,7 +17,7 @@ class MeasurementSet(list):
"""
def __init__(self, mlist: List[Measurement]=[]):
def __init__(self, mlist: List[Measurement] = []):
"""
Initialize a measurement set
@ -25,8 +26,10 @@ class MeasurementSet(list):
"""
if any([not isinstance(i, Measurement) for i in mlist]):
raise TypeError('Object in list should be of Measurement type')
raise TypeError("Object in list should be of Measurement type")
# Sort by time stamp, otherwise the order is random
mlist.sort(key=lambda x: x.time, reverse=True)
super().__init__(mlist)
def getNewestReferenceMeasurement(self, mtype: MeasurementType):
@ -46,7 +49,8 @@ class MeasurementSet(list):
return mnewest
def getReferenceMeasurements(self, mtype: MeasurementType):
"""Get all reference measurements of a certain type
"""Get all available reference measurements of a certain type in the
current set.
Args:
mtype (MeasurementType): The type of which to list
@ -55,7 +59,7 @@ class MeasurementSet(list):
a new measurement set including all measurements of a certain type
"""
return [m for m in self if m.measurementType() == mtype]
def getNewestReferenceMeasurements(self):
"""Returns a dictionary with newest measurement of each type that is not specific returns None in case no measurement is found."""
newest = {}
@ -72,16 +76,15 @@ class MeasurementSet(list):
def newestReferenceOlderThan(self, secs):
"""Returns a dictionary of references with the newest reference, that is still
older than `secs` seconds. """
older than `secs` seconds."""
curtime = time.time()
newest = self.getNewestReferenceMeasurements()
newest_older_than = {}
newest_older_than = {}
for key, m in newest.items():
if curtime - m.time >= secs:
newest_older_than[key] = m
return newest_older_than
def measTimeSame(self):
"""
Returns True if all measurements have the same measurement
@ -117,4 +120,3 @@ class MeasurementSet(list):
return all([first == meas.channelConfig for meas in self])
else:
return False