-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbib_ais.py
More file actions
37 lines (27 loc) · 1.31 KB
/
Copy pathbib_ais.py
File metadata and controls
37 lines (27 loc) · 1.31 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
import csv
import numpy as np
import bib_bateau as bateau
RT = 6311000 #rayon de la Terre (en m)
pi = 3.141592
def charger_ais(input_file):#pour préparer la simulation en temps réel
data=[]
with open(input_file, 'r', newline='') as input:
csvreader = csv.reader(input, delimiter=',')
for row in csvreader:
mmsi=row[0]
hours=int(row[1][11:13])
minuts=int(row[1][14:16])
seconds=int(row[1][17:19])
temps=int(hours*3600+minuts*60+seconds)
latitude=float(row[2])
longitude=float(row[3])
#speed over ground (SOG) : vitesse par rapport au sol (pas à la mer)
SOG=float(row[4])*0.514 #1 noeud ~= 0.514 m/s
#course over ground (COG) : direction de déplacement du bateau (pas son orientation), par rapport au Nord
COG=float(row[5])*pi/180 #l'angle est donné en degrés
vitesse_lat=SOG*np.cos(COG)/RT
vitesse_lon=(SOG*np.sin(COG))/(RT*np.cos(latitude*pi/180)) #on considèrera que cos(lat) ne varie pas entre 2 mesures consécutives
while temps > len(data)-1:
data.append([]) #secondes pendant lesquelles rien est reçu
data[temps].append([mmsi,[temps, longitude, latitude, vitesse_lat, vitesse_lon]])
return data