From 367dd961318b21b377aaf22744892aaeaae6cb7e Mon Sep 17 00:00:00 2001 From: su530201 <olivier.kaufmann@umons.ac.be> Date: Tue, 10 Oct 2023 17:09:05 +0200 Subject: [PATCH] Uses self._hw values for R and dev --- ohmpi/hardware_system.py | 12 ++++++------ ohmpi/ohmpi.py | 9 +++------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py index e6ebd5d1..3e27eab8 100644 --- a/ohmpi/hardware_system.py +++ b/ohmpi/hardware_system.py @@ -261,8 +261,8 @@ class OhmPiHardware: self.exec_logger.event(f'OhmPiHardware\tread_values\tend\t{datetime.datetime.utcnow()}') @property - def last_rho(self): - v = self.readings[:, 2] != 0 + def last_resistance(self, delay=0.): + v = np.where((self.readings[:, 0] >= delay) & (self.readings[:, 2] != 0))[0] if len(v) > 1: # return np.mean(np.abs(self.readings[v, 4] - self.sp) / self.readings[v, 3]) return np.mean(self.readings[v, 2] * (self.readings[v, 4] - self.sp) / self.readings[v, 3]) @@ -270,10 +270,10 @@ class OhmPiHardware: return np.nan @property - def last_dev(self): - if len(self.readings) > 1: - v = self.readings[:, 2] != 0 # exclude sample where there is no injection - return 100. * np.std(self.readings[v, 2] * (self.readings[v, 4] - self.sp) / self.readings[v, 3]) / self.last_rho + def last_dev(self, delay=0.): + v = np.where((self.readings[:, 0] >= delay) & (self.readings[:, 2] != 0)) + if len(v) > 1: + return 100. * np.std(self.readings[v, 2] * (self.readings[v, 4] - self.sp) / self.readings[v, 3]) / self.last_resistance else: return np.nan diff --git a/ohmpi/ohmpi.py b/ohmpi/ohmpi.py index 42b7672e..3d0fe7fb 100644 --- a/ohmpi/ohmpi.py +++ b/ohmpi/ohmpi.py @@ -461,17 +461,14 @@ class OhmPi(object): if 'delay' in kwargs.keys(): delay = kwargs['delay'] else: - delay = 0. + delay = injection_duration * 2/3 # TODO: check if this is ok and if last point is not taken the end of injection x = np.where((self._hw.readings[:, 0] >= delay) & (self._hw.readings[:, 2] != 0)) - print(f'length of series: {len(x)}') - # R = np.mean((self._hw.readings[x, 2] * (self._hw.readings[x, 4] - self._hw.sp)) / self._hw.readings[x, 3]) Vmn = np.mean(self._hw.readings[x, 2] * (self._hw.readings[x, 4] - self._hw.sp)) Vmn_std = 100. * np.std(self._hw.readings[x, 2] * (self._hw.readings[x, 4])) # - self._hw.sp)) I = np.mean(self._hw.readings[x, 3]) I_std = 100. * np.std(self._hw.readings[x, 3]) - R = Vmn / I - R_std = 100. * np.std(self._hw.readings[x, 2] * (self._hw.readings[x, 4] - self._hw.sp) / self._hw.readings[x, 3]) / R - + R = self._hw.last_resistance(delay=delay) + R_std = self._hw.last_dev(delay=delay) d = { "time": datetime.now().isoformat(), "A": quad[0], -- GitLab