Module defs.OzoneMonitor

The docstring for this submodule

Classes

class OzoneAnalyser (file: DATFile, on_time_interval)

The docstring for this class

Description: Bla bla bla

Attributes

word : str
A word

Methods

init: HelloWorld The class constructor

Expand source code
class OzoneAnalyser():

    """The docstring for this class
    
    Description: Bla bla bla

    Attributes
    ----------
    word: str
        A word

    Methods
    -------
    __init__: HelloWorld
        The class constructor
    """

    def __init__(self, file: DATFile, on_time_interval):

        self.file = file
        self.on_time_interval = on_time_interval
        self.averaged_data = None

    def GetData(self):

        self.file.read()

    def AverageWithSMPS(self, smps_analyser: OFRAnalyser, cut_edges: int, subtract_baseline = ['yes', 5]):

        avg_ozone = []
        mprr_data = []

        local_smps_data = smps_analyser.data[(smps_analyser.data['Starting Time (-)'] >= smps_analyser.on_time_interval[0]) &
                                             (smps_analyser.data['Starting Time (-)'] <= smps_analyser.on_time_interval[1])].reset_index()

        baseline = None

        for index, data in local_smps_data.iterrows():

            start = data['Starting Time (-)']

            if index == 0:

                if subtract_baseline[0] == 'yes':
                    baseline_start = start - pd.Timedelta(minutes = int(subtract_baseline[1]))
                    baseline_ozone_data = self.file.data[(self.file.data['timestamp'] >= baseline_start) &
                                                         (self.file.data['timestamp'] <= start)]
                    baseline = np.average(baseline_ozone_data['ozone'])

            if index in list(range(cut_edges)):
                    continue

            stop = start + pd.Timedelta(seconds = data['Sampling Time (s)'])

            mprr_data.append(data['Mass Production Rate (kg/s)'])

            local_ozone_data = self.file.data[(self.file.data['timestamp'] >= start) &
                                              (self.file.data['timestamp'] <= stop)]
            avg_ozone.append(np.average(local_ozone_data['ozone']))

        for sub_index in list(range(cut_edges)):
                del avg_ozone[-(sub_index + 1)]
                del mprr_data[-(sub_index + 1)]

        out_mprr_data = np.array(mprr_data)

        if subtract_baseline[0] == 'yes':
                out_avg_ozone = np.array([baseline - value for value in avg_ozone])
        elif subtract_baseline[0] != 'yes':
                out_avg_ozone = np.array([value for value in avg_ozone])

        self.averaged_data = pd.DataFrame({'Ozone (ppb)': out_avg_ozone, 'Mass Production Rate (kg/s)': out_mprr_data})

Methods

def AverageWithSMPS(self, smps_analyser: OFRAnalyser, cut_edges: int, subtract_baseline=['yes', 5])
def GetData(self)