diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py index e6ebd5d10a19aa396fb9400c171de4bdf3e87f0e..3e27eab81d6400f585f364b2b29a2bd5f467135e 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 42b7672ec556a491ffd7e471c046f2d3c7d74f28..3d0fe7fb4089d5ef3cd83127b201f19edafa7c8a 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],