From 9a237e9e21c861f56a46ad91a907b06f5d380ff2 Mon Sep 17 00:00:00 2001 From: Priyanka Arkalgud Ganeshamurthy Date: Wed, 31 Jul 2024 09:50:34 +0200 Subject: [PATCH] function for updating measurement value of existing measurement object --- pyvolt/measurement.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pyvolt/measurement.py b/pyvolt/measurement.py index d19e74e..8e56b78 100644 --- a/pyvolt/measurement.py +++ b/pyvolt/measurement.py @@ -386,3 +386,26 @@ def mergeMeasurementSets(meas_set_1, meas_set_2): meas_set = MeasurementSet() meas_set.measurements = meas_set_1.measurements + meas_set_2.measurements return meas_set + + def update_existing_measurement(self, element_uuid, meas_data, dist="normal", seed=None, type="simulation", + ): + for meas in self.measurements: + if meas.element.uuid == element_uuid: + if type == "simulation": + np.random.seed(seed) + if dist == "normal": + err_pu = np.random.normal(0, 0, 1) + if meas.meas_type not in [MeasType.Ipmu_phase, MeasType.Vpmu_phase]: + zdev = meas_data * meas.std_dev + elif meas.meas_type in [MeasType.Ipmu_phase, MeasType.Vpmu_phase]: + zdev = meas.std_dev + meas.meas_value = meas_data + zdev * err_pu[0] + elif dist == "uniform": + err_pu = np.random.uniform(-1, 1, 1) + if meas.meas_type not in [MeasType.Ipmu_phase, MeasType.Vpmu_phase]: + zdev = (meas_data * meas.std_dev) + elif meas.meas_type in [MeasType.Ipmu_phase, MeasType.Vpmu_phase]: + zdev = meas.std_dev + meas.meas_value = meas_data + np.multiply(3 * zdev, err_pu[0]) + elif type == "field": + meas.meas_value = meas_data