From 1b06db41526c44561287dde64975f45774a3b5b9 Mon Sep 17 00:00:00 2001 From: dario Date: Sat, 1 Jun 2024 17:44:16 +0200 Subject: [PATCH] Renamed ms5611 and added temperature sensor --- spatz/sensors/__init__.py | 1 + .../pressure/{ms5611_01ba03.py => ms5611.py} | 6 ++--- spatz/sensors/sensor.py | 4 +-- spatz/sensors/temperature/ms5611.py | 25 +++++++++++++++++++ spatz/simulation.py | 9 +++++++ 5 files changed, 40 insertions(+), 5 deletions(-) rename spatz/sensors/pressure/{ms5611_01ba03.py => ms5611.py} (92%) create mode 100644 spatz/sensors/temperature/ms5611.py diff --git a/spatz/sensors/__init__.py b/spatz/sensors/__init__.py index fa85c4b..101594e 100644 --- a/spatz/sensors/__init__.py +++ b/spatz/sensors/__init__.py @@ -2,4 +2,5 @@ from spatz.sensors.sensor import Sensor from spatz.sensors.gps import GPS from spatz.sensors.imu import Accelerometer, Gyroscope, IMU from spatz.sensors.pressure import PressureSensor +from spatz.sensors.temperature import TemperatureSensor from spatz.sensors.compound import CompoundSensor \ No newline at end of file diff --git a/spatz/sensors/pressure/ms5611_01ba03.py b/spatz/sensors/pressure/ms5611.py similarity index 92% rename from spatz/sensors/pressure/ms5611_01ba03.py rename to spatz/sensors/pressure/ms5611.py index 3ce201b..e0e2dcf 100644 --- a/spatz/sensors/pressure/ms5611_01ba03.py +++ b/spatz/sensors/pressure/ms5611.py @@ -7,7 +7,7 @@ from spatz.logger import Logger from spatz.transforms import GaussianNoise, Transform, ProportionalGaussian -class MS5611_01BA03(PressureSensor): +class MS5611(PressureSensor): def __init__(self, dataset: Dataset, logger: Logger, transforms: List[Transform] = [], ts_effects=True): super().__init__(dataset, logger, transforms, ts_effects) @@ -17,7 +17,7 @@ class MS5611_01BA03(PressureSensor): self.__noise = ProportionalGaussian(0, 0.0015) def _get_name(self) -> AnyStr: - return 'MS5611_01BA03' + return 'MS5611' def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float: t = self._dataset.get_time() @@ -30,4 +30,4 @@ class MS5611_01BA03(PressureSensor): # Log the noise added to the pressure measurements. self._logger.write('noise', noisy - x, domain=self._get_name()) - return noisy + return noisy \ No newline at end of file diff --git a/spatz/sensors/sensor.py b/spatz/sensors/sensor.py index efaf9fd..b5cce73 100644 --- a/spatz/sensors/sensor.py +++ b/spatz/sensors/sensor.py @@ -38,11 +38,11 @@ class Sensor: @abstractmethod def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float: raise NotImplementedError() - + @abstractmethod def _get_data(self) -> ArrayLike | float: raise NotImplementedError() - + def get_init_data() -> ArrayLike: pass diff --git a/spatz/sensors/temperature/ms5611.py b/spatz/sensors/temperature/ms5611.py new file mode 100644 index 0000000..621c405 --- /dev/null +++ b/spatz/sensors/temperature/ms5611.py @@ -0,0 +1,25 @@ +from numpy.typing import ArrayLike +from typing import List, AnyStr + +from spatz.transforms.noise import GaussianNoise +from spatz.dataset import Dataset +from spatz.sensors import TemperatureSensor +from spatz.transforms import Transform + + +class MS5611Temperature(TemperatureSensor): + def __init__(self, dataset: Dataset, transforms: List[Transform] = ...): + super().__init__(dataset, transforms) + + self.__noise = GaussianNoise(0, 0.5) + + def _get_name(self) -> AnyStr: + return 'MS5611' + + def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float: + t = self._dataset.get_time() + noisy = self.__noise(t, x) + + self._log('temperature', noisy) + + return noisy \ No newline at end of file diff --git a/spatz/simulation.py b/spatz/simulation.py index 53715fd..1d1ebf4 100644 --- a/spatz/simulation.py +++ b/spatz/simulation.py @@ -75,6 +75,15 @@ class Simulation: if verbose: pbar.close() + def advance_to(self, t: float): + t_old = self.__dataset.get_time() + self.__dataset.step(t - t_old) + self.__logger.step(t - t_old) + + def advance(self, dt: float): + self.__dataset.step(dt) + self.__logger.step(dt) + def get_dataset(self) -> Dataset: return self.__dataset