import math import numpy as np from typing import Any, List from numpy.linalg import norm 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 # WG84 googlen (world model GPS) class GPS(Sensor): 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: long = self._dataset.get_longitude() lat = self._dataset.get_latitude() alt = self._dataset.get_altitude() lock = 1 self._log('longitude', long) self._log('latitude', lat) self._log('altitude', alt) self._log('lock', lock) return np.array([long, lat, alt, lock])