2017-07-27 4 views
0

J'essaie de convertir les coordonnées GPS en phrases NMEA dans le but de simuler des données GPS. L'objectif est d'alimenter ces données en logiciel de navigation maritime. Cependant, les données que j'ai générées semblent être incorrectes. J'utilise cette fonction suivante en python pour convertir les degrés GPS au format décimal au format NMEA 0183:Conversion des degrés décimaux en NMEA 0183 en python

import math 

def decdeg2nmea(dd): 
    num = abs(dd) 
    d = float(math.floor(num)) 
    m = num - d 
    return '%i%f' % (int(degree), minutes * 60.00) 

Est-ce incorrect?

Répondre

0

Les chiffres doivent être complétés par zéro. Les degrés devraient être représentés par trois caractères pour les longitudes, c'est-à-dire 4 degrés à l'est serait 004, et les latitudes devraient être représentées par deux caractères. Les minutes doivent être représentées par deux caractères plus les décimales. C'est à dire. 4.5 degrés E serait 00430.0

Puisque vous utilisez abs vous perdez également le signe, vous devez donc le réinsérer aussi. Je pense que quelque chose comme ça devrait fonctionner pour les longitudes:

import math 

def decdeg2nmea(dd): 
    num = abs(dd) 
    d = float(math.floor(num)) 
    m = num - d 
    sign = '-' if dd < 0 else '' 
    return sign+'%03i%02.5f' % (int(d), m * 60.00)