#1 Thu 02 December 2010 18:57
- eldamialr
- Juste Inscrit !
- Date d'inscription: 2 Dec 2010
- Messages: 2
Bathymétrie: extraire la profondeur d'un fichier NMEA
Bonjour,
Comme dit dans le sujet, j'ai en ma possession un fichier trace de levé bathy. Il est au format NMEA et contient des données sur la plani et profondeur (combinaison d'un garmin et sondeur). Voici un extrait pour une position:
$GPGLL,4649.2433,N,00641.0033,E,070230,A,D*4E
$GPBOD,,T,,M,,*47
$GPBWC,070230,,,,,,T,,M,,N,,D*78
$GPVTG,160.2,T,160.0,M,4.3,N,8.0,K,D*2B
$GPXTE,A,A,,,N,D*54
$PGRME,3.0,M,4.2,M,5.2,M*2C
$PGRMZ,1410,f,3*2F
$PGRMM,CH-1903*44
$GPRTE,1,1,c,*37
$WIMWV,,R,,S,A*3E
$GPAPB,A,A,,,N,V,V,,,,,,,,D*62
$SDDBT,138.6,f,42.26,M,23.11,F*09
$SDDPT,42.26,0.10*64
$SDMTW,6.0,C*32
$GPRMC,070232,A,4649.2411,N,00641.0045,E,4.3,160.1,120491,0.2,E,D*1D
$GPRMB,A,,,,,,,,,,,,V,D*19
$GPGGA,070232,4649.2411,N,00641.0045,E,2,11,0.8,429.9,M,48.2,M,,*4E
$GPGSA,A,3,02,04,09,12,14,21,25,29,30,31,37,,1.4,0.8,1.1*3C
$GPGSV,3,1,11,02,29,057,45,04,06,031,38,09,05,148,38,12,38,088,47*7B
$GPGSV,3,2,11,14,24,238,42,21,05,181,27,25,77,047,50,29,69,217,51*7A
$GPGSV,3,3,11,30,44,292,48,31,37,309,48,37,34,160,41*4E
On retrouve les données sur la profondeur à la ligne $SDDBT.
Je n'ai pas de mal à extraire la plani en lat/lon grâce au programme GPSBabel, par exemple en XML. Pour ce qui est de la profondeur, je n'ai pas trouvé le moyen de l'extraire automatiquement!
Mon but est d'obtenir un listing de points en txt ou csv par exemple afin d'obtenir des visualisation 3D des fonds marins.
En espérant que quelqu'un ait déjà eu ce problème.
Cordialement
Hors ligne
#2 Thu 02 December 2010 22:53
Re: Bathymétrie: extraire la profondeur d'un fichier NMEA
Bonjour eldamialr,
Effectivement l'idée est de synchroniser les données de positionnement du GPS (chaîne GGA ou RMC) avec les données de profondeur issues du sondeur (chaîne DPT).
La chaîne DBT (Depth Below Transducer) ne donne pas d'information sur l'immersion de la sonde sous la surface de l'eau. La chaîne 'depth' DPT oui : 0,1 m. Il faut donc rajouter à la valeur de sonde sous la capteur la valeur de l'immersion du transducteur pour obtenir la profondeur sous la surface de l'eau.
Les chaînes DPT ne sont pas horodatées, mais les chaînes GGA le sont et leur fréquence est à priori d'une position toutes les 2 secondes (07:02:30 puis 07:02:32) voire peut-être d' 1 Hz (à vérifier sur le fichier complet)
Ainsi, la vitesse de l'embarcation étant faible (chaîne VTG 4,3 noeuds), on peut faire une approximation (sans besoin d'interpolation des données) en associant par paires les 2 chaînes GGA et DPT apparaissant séquentiellement pour créer le quadruplet Time Lat Lon Depth
Dans l'exemple :
07h02mn32s,46°49.2411'N,6°41.0045'E,42.26+0.10m
à coder par exemple en Unix time et degrés décimaux
Notes : si les données ont été prises en mer, il faut aussi prendre en considération les effets de la marée pour référencer les données de sonde par rapport au zéro hydrographique..
A priori pas possible avec votre fichier, vu que l'on ne connaît pas la date (chaîne ZDA inexistante) à priori.
D'autre part, le format NMEA ne donnant pas de chaîne précisant la géodésie utilisée dans l'enregistrement des données GGA et RMC, il serait utile de connaître le datum utilisé par défaut par le Garmin (à priori WGS84)
Vous pouvez aussi avec un émulateur de terminal (type HyperTerminal ou autre soft de communication), rejouer les données à l'aide d'un PC pour les envoyer via une liaison série null-modem sur un autre PC équipé du logiciel suivant permettant de constituer ce fichier XYZ :
http://www.justmagic.com/Olex_presta_se … ATHY-35882
Bien cordialement
--
Peio Elissalde
Magic Instinct Software
Hors ligne