Skip to content
Snippets Groups Projects

Draft: Resolve "Angles calculated using compute_point_angles seem incorect"

2 files
+ 45
5
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -137,17 +137,26 @@ def compute_position_dist_std(dat, radius):
@@ -137,17 +137,26 @@ def compute_position_dist_std(dat, radius):
return dist_means
return dist_means
 
@jit(nopython=True)
 
def angle_between_three_points(p1, p2, p3):
 
alpha = bearing(p2, p1)
 
beta = bearing(p2, p3)
 
 
return alpha - beta
 
 
def compute_point_angles(dat):
def compute_point_angles(dat):
angles = np.zeros(dat.shape[0])
angles = np.zeros(dat.shape[0])
 
 
p1 = (dat[0][0], dat[0][1])
 
p2 = (dat[1][0], dat[1][1])
 
angles[0] = bearing(p2, p1)
for i in range(1, dat.shape[0] - 1):
for i in range(1, dat.shape[0] - 1):
p1 = (dat[i - 1][0], dat[i - 1][1])
p1 = (dat[i - 1][0], dat[i - 1][1])
p2 = (dat[i][0], dat[i][1])
p2 = (dat[i][0], dat[i][1])
p3 = (dat[i + 1][0], dat[i + 1][1])
p3 = (dat[i + 1][0], dat[i + 1][1])
alpha = bearing(p2, p1)
angles[i] = angle_between_three_points(p1, p2, p3)
beta = bearing(p2, p3)
angles[i] = 180 - abs(abs(alpha - beta) - 180)
return angles
return angles
@@ -182,6 +191,7 @@ def angle_dispersion(dat, radius):
@@ -182,6 +191,7 @@ def angle_dispersion(dat, radius):
return disp
return disp
 
class AISTrajectory:
class AISTrajectory:
def __init__(self, df, interpolation_time=None):
def __init__(self, df, interpolation_time=None):
df = df.drop_duplicates(subset=['ts_sec'])
df = df.drop_duplicates(subset=['ts_sec'])
Loading