-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimulation.py
More file actions
40 lines (32 loc) · 1.1 KB
/
simulation.py
File metadata and controls
40 lines (32 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from dataclasses import dataclass
from typing import List
import numpy as np
@dataclass
class State:
real_position: np.ndarray
real_attitude: float
# next 4 are measured
measured_attitude: float
velocity_parallel: float
velocity_perpendicular: float
distances: np.ndarray
@dataclass
class Simulation:
states: List[State]
initial_position: np.ndarray
initial_attitude: float
@dataclass
class Simulations:
simulations: List[Simulation]
beacon_positions: np.ndarray
start_position: np.ndarray
sigma_position: float
sigma_attitude: float
sigma_velocity: float
sigma_measurement: float
def split(self, ratio):
n = int(len(self.simulations) * ratio)
return Simulations(self.simulations[:n], self.beacon_positions, self.start_position, self.sigma_position,
self.sigma_attitude, self.sigma_velocity, self.sigma_measurement), Simulations(
self.simulations[n:], self.beacon_positions, self.start_position, self.sigma_position, self.sigma_attitude,
self.sigma_velocity, self.sigma_measurement)