{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"language_info":{"name":"python","version":"3.7.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# **Trame NMEA** \n\n**Le programme ci-dessous permet d'extraire la latitude d'une trame NMEA de type GPGGA, et de l'exprimer en °, ', ''.**\n\n> **Exécuter** le programme (bouton triangle en haut de la page). ","metadata":{},"id":"b19be2fb"},{"cell_type":"code","source":"from math import*\n\ntrame = \"$GPGGA, 064036.289, 4836.5375, N, 00740.9373, E, 1, 04, 3.2,200.2, M, , , , 0000*0E\"\n\nT = trame.split(\",\") # Coupe la trame en une série de données, séparées par des virgules \",\"\n\nlatitude = float(T[2]) # Récupère la case 2 de T (qui commence à 0 !), sous forme d'un nombre décimal (float)\ndegre = floor(latitude/100) # \"floor\" récupère la valeur entière du nombre, sans ses décimales\nminute = floor(latitude-degre*100)\nseconde = round((latitude-floor(latitude))*60) # \"round\" arrondit la valeur à l'entier le plus proche\nprint(\"La latitude est \",degre,\"° \",minute,\"' \",seconde,\"'' \",T[3]) # Affiche la latitude, en ° ' '' (degré, minute, seconde)","metadata":{"scrolled":true,"trusted":true},"execution_count":null,"outputs":[],"id":"2493f598"},{"cell_type":"markdown","source":"On souhaite, de la même façon, extraire la **longitude** de la trame NMEA. \n\nOn a recopié ci-dessous les lignes du programme permettant d'extraire, calculer et afficher la latitude. \n\n> **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* ...","metadata":{},"id":"901eb532"},{"cell_type":"code","source":"latitude = float(T[2]) # Récupère la case 2 de T (qui commence à 0 !), sous forme d'un nombre décimal (float)\ndegre = floor(latitude/100) # \"floor\" récupère la valeur entière du nombre, sans ses décimales\nminute = floor(latitude-degre*100)\nseconde = round((latitude-floor(latitude))*60) # \"round\" arrondit la valeur à l'entier le plus proche\nprint(\"La latitude est \",degre,\"° \",minute,\"' \",seconde,\"'' \",T[3]) # Affiche la latitude, en ° ' '' (degré, minute, seconde)","metadata":{"trusted":true},"execution_count":null,"outputs":[],"id":"9c5a76f5"},{"cell_type":"markdown","source":"### **Bonus :**\n\nOn souhaite enfin afficher l'**heure** de la trame NMEA. \n\n> **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.","metadata":{},"id":"8740d4ab-45a4-4531-a376-1b706f441aeb"},{"cell_type":"code","source":"heure =\nh =\nmin =\nsec = round(heure - h*10000 - min*100 , 3)\nprint(\"L'heure de la trame NMEA est\", h, \"h\", min, \"min\", sec, \"s\")","metadata":{"trusted":true},"execution_count":null,"outputs":[],"id":"7b9f5c7c-7d86-4acb-a8f5-8a2a689b6a90"},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[],"id":"050d5dc2-ecc2-4f2e-a33a-da49870b9fd4"}]}