Le programme ci-dessous permet d'extraire la latitude d'une trame NMEA de type GPGGA, et de l'exprimer en °, ', ''.
Exécuter le programme (bouton triangle en haut de la page).
from math import*
trame = "$GPGGA, 064036.289, 4836.5375, N, 00740.9373, E, 1, 04, 3.2,200.2, M, , , , 0000*0E"
T = trame.split(",") # Coupe la trame en une série de données, séparées par des virgules ","
latitude = float(T[2]) # Récupère la case 2 de T (qui commence à 0 !), sous forme d'un nombre décimal (float)
degre = floor(latitude/100) # "floor" récupère la valeur entière du nombre, sans ses décimales
minute = floor(latitude-degre*100)
seconde = round((latitude-floor(latitude))*60) # "round" arrondit la valeur à l'entier le plus proche
print("La latitude est ",degre,"° ",minute,"' ",seconde,"'' ",T[3]) # Affiche la latitude, en ° ' '' (degré, minute, seconde)
On souhaite, de la même façon, extraire la longitude de la trame NMEA.
On a recopié ci-dessous les lignes du programme permettant d'extraire, calculer et afficher la latitude.
Modifier le programme ci-dessous pour qu'il affiche la longitude de la trame NMEA, en °, ', '' (degré, minute, seconde), à la place de la latitude. Note : Les calculs sont identiques ...
latitude = float(T[2]) # Récupère la case 2 de T (qui commence à 0 !), sous forme d'un nombre décimal (float)
degre = floor(latitude/100) # "floor" récupère la valeur entière du nombre, sans ses décimales
minute = floor(latitude-degre*100)
seconde = round((latitude-floor(latitude))*60) # "round" arrondit la valeur à l'entier le plus proche
print("La latitude est ",degre,"° ",minute,"' ",seconde,"'' ",T[3]) # Affiche la latitude, en ° ' '' (degré, minute, seconde)
On souhaite enfin afficher l'heure de la trame NMEA.
Compléter les 3 premières lignes de programme ci-dessous pour qu'il affiche l'heure de la trame NMEA, en heure, minute, seconde.
heure =
h =
min =
sec = round(heure - h*10000 - min*100 , 3)
print("L'heure de la trame NMEA est", h, "h", min, "min", sec, "s")