Skip to content
Snippets Groups Projects
Commit a0f688f4 authored by Raphael Sturgis's avatar Raphael Sturgis
Browse files

minor

parent d501d077
No related branches found
No related tags found
1 merge request!6Develop
......@@ -2,3 +2,4 @@
build/
skais.egg-info/
*.coverage
*__pycache__*
......@@ -3,4 +3,5 @@ setuptools~=57.0.0
numpy~=1.19.5
numba~=0.53.1
scipy~=1.5.4
POT~=0.7.0
\ No newline at end of file
hmmlearn~=0.2.6
scikit-learn~=1.0.1
\ No newline at end of file
......@@ -5,6 +5,7 @@ import numpy as np
from numba import jit
from scipy.interpolate import interp1d
from skais.stats.angluar import angular_dispersion
from skais.utils.geography import great_circle
from skais.utils.stats import calc_std_dev
......@@ -171,6 +172,15 @@ def l2_angle(dat, radius):
return l2
def angle_dispersion(dat, radius):
l2 = np.zeros(dat.shape)
dat = np.concatenate([np.full(radius, dat[0]), dat, np.full(radius, dat[-1])])
for i in range(radius, dat.shape[0] - radius):
data = dat[i - radius:i + radius + 1]
l2[i - radius] = angular_dispersion(np.radians(data))
class AISTrajectory:
def __init__(self, df, interpolation_time=None):
df = df.drop_duplicates(subset=['ts_sec'])
......@@ -267,6 +277,16 @@ class AISTrajectory:
stds[:radius] = np.nan
self.df[f"{field}_std"] = stds
def compute_all_dispersions(self, radius):
fields = ['cog', 'heading', 'angles_diff']
for field in fields:
if field in self.df.columns:
dat = self.df[field].to_numpy()
disp = angle_dispersion(dat, radius)
disp[-radius:] = np.nan
disp[:radius] = np.nan
self.df[f"{field}_disp"] = disp
def compute_position_features(self, radius):
dat = np.stack([self.df.longitude.to_numpy(), self.df.latitude.to_numpy()], axis=1)
std = compute_position_angle_std(dat, radius)
......
import random
from hmmlearn.hmm import GMMHMM, GaussianHMM
from matplotlib import pyplot as plt
from numba import jit
from scipy import linalg
from sklearn.datasets import make_spd_matrix
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment