Coordonnées GPS folium python
Bonjour,
comme je l'avais déjà signalé j'ai des difficultés à convertir des coordonnées obtenues par NMEA sur folium, comment puis-je faire pour avoir les "bonnes coordonnées" ?
Je vous joins mes programmes python qui donnent des cartes avec plusieurs kilomètres d'erreur :-/
à bientôt et merci d'avance,
F.D.
comme je l'avais déjà signalé j'ai des difficultés à convertir des coordonnées obtenues par NMEA sur folium, comment puis-je faire pour avoir les "bonnes coordonnées" ?
Je vous joins mes programmes python qui donnent des cartes avec plusieurs kilomètres d'erreur :-/
import math def f(x): return x*100/60 def extraction_csv(fichiercsv): liste=[] with open(fichiercsv,'r') as fcscv: lecteur = csv.reader(fcscv, delimiter=',') for ligne in lecteur: if '$GNGGA' in ligne: ##print(f'La ligne est {ligne}') liste.append(ligne) return liste def convert_GPS(L): L_GPS=[] i=0 for donnees in L: point1=f'Point {i}', f'{donnees[2]}', f'{donnees[4]}' L_GPS.append(point1) i=i+1 return L_GPSet aussi
import NMEA_CSV as nc import folium import csv import math as m def fract(x): return x-m.trunc(x) def nom_to_html(mon_fichier): l=len(mon_fichier) nom=mon_fichier[:l-4]+'_map.html' return nom def mk_crd(x): t1=x/100 temp=t1-m.floor(x/100) return t1+temp/100*60 a=43.709419 b=1.469382 def fichier_to_map(mon_fichier): points=nc.extraction_csv(mon_fichier) Pts_GPS=nc.convert_GPS(points) x=mk_crd(float(Pts_GPS[0][1])) y=mk_crd(float(Pts_GPS[0][2])) sortie = nom_to_html(mon_fichier) carte=folium.Map(location=[x,y],zoom_start=15) k=0 l=len(Pts_GPS) for pt in Pts_GPS: k=k+1 lat=mk_crd(float(pt[1])) lon=mk_crd(float(pt[2])) if (k%6==0): folium.Marker([lat,lon],popup='Ici').add_to(carte) lat=mk_crd(float(Pts_GPS[l-1][1]))+0.0283762 lon=mk_crd(float(Pts_GPS[l-1][2]))+0.018285 print(f'La dernière donnée est lat={lat} et lon={lon}') folium.Marker([a,b],popup='La').add_to(carte) carte.save(sortie) ## l'idéal serait de prendre les données en itérable et de marquer les points def fonction_test(sortie): carte=folium.Map(location=[a,b],zoom_start=15) carte.save(sortie) ##points=extraction_csv('Nmea2.txt') ##Pts_GPS=convert_GPS(points) #### ###### ##c=folium.Map(location=points[0],zoom_start=15) ###### ##for lat,lon,nom in points: ## lat=float(lat) ## lon=float(lon) ## folium.Marker([lat,lon], popup=nom).add_to(c) #### ##c.save('maCarte1.html') ## fichier_to_map('Nmea90.txt')Voilà... je ne peux pas vous joindre mon fichier Nmea90.txt, si quelqu'un teste mon programme avec "son" fichier Nmea ?
à bientôt et merci d'avance,
F.D.
Réponses
-
Je ne saurais dire si c'est l'origine du problème, mais en général avec Python, j'évite de mélanger des entiers et des réels; comme tu travailles avec des flottants, je mettrais un point aux différents paramètres (100. 60. etc.) pour éviter que ce soit Python qui fasse les conversions Int $\rightarrow$ float
Peut-on imaginer que les erreurs viennent du manque de précision, d'arrondis à la lecture, etc (voir par exemple latitude, longitude et "0.0283762" ou "0.018285; idem pour a, b); une idée jetée comme ça.
Sans le fichier Nmea, difficile d'aller plus avant
Paul
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 7 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 52 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 772 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres