Updated sensors and added empty logger for speedup

This commit is contained in:
dario
2024-06-13 22:16:22 +02:00
parent 382cb9aad4
commit c0ccd93acf
14 changed files with 5080 additions and 5035 deletions

View File

@@ -3,12 +3,13 @@ from typing import List
from numpy.typing import ArrayLike
from spatz.sensors.gps import GPS
from spatz.dataset import ArrayLike, Dataset
from spatz.simulations.data_source import DataSource
from spatz.logger import ArrayLike, Logger
from spatz.transforms import Transform
class Erinome_I(GPS):
def __init__(self, dataset: Dataset, logger: Logger, transforms: List[Transform] = []):
def __init__(self, dataset: DataSource, logger: Logger, transforms: List[Transform] = []):
super().__init__(dataset, logger, transforms)
def _get_name(self):

View File

@@ -8,6 +8,7 @@ from numpy.typing import ArrayLike
from pandas import NA
from spatz.dataset import ArrayLike, Dataset
from spatz.simulations.data_source import DataSource
from spatz.logger import ArrayLike, Logger
from spatz.sensors import Sensor
from spatz.transforms import Transform
@@ -17,25 +18,24 @@ from spatz.transforms import Transform
class GPS(Sensor):
def __init__(self, dataset: Dataset, logger: Logger, transforms: List[Transform] = []):
def __init__(self, dataset: DataSource, logger: Logger, transforms: List[Transform] = []):
"""GPS Module which provides the following information:
- Longitude (in °)
- Latitiude (in °)
- Altitude (in m)
- Lock (1 or 0)
"""
super().__init__(dataset, logger, transforms)
def _get_data(self) -> ArrayLike:
vel = self._dataset.get_total_velocity()
long = self._dataset.get_longitude()
lat = self._dataset.get_latitude()
alt = self._dataset.get_altitude()
lock = 1
# TODO: At which speed do we assume that GPS becomes unreliable?
if vel / self._dataset.get_speed_of_sound() > 1:
return np.array([0, 0, 0])
x = self._dataset.fetch_values(['latitude', 'longitude', 'altitude'])
x = self._sensor_specific_effects(x)
self._log('longitude', long)
self._log('latitude', lat)
self._log('altitude', alt)
self._log('lock', lock)
# Convert to degrees.
x *= 180 / math.pi
return x
return np.array([long, lat, alt, lock])