Tengo un amigo que está terminando su maestría en ingeniería aeroespacial. Para su proyecto final, forma parte de un pequeño equipo encargado de escribir un programa para rastrear globos meteorológicos, cohetes y satélites. El programa recibe información de un dispositivo GPS, realiza cálculos con los datos y utiliza los resultados de esos cálculos para controlar una serie de motores diseñados para orientar una antena de comunicación direccional, de modo que el globo, el cohete o el satélite permanezcan siempre enfocados.Analizando la salida del receptor GPS a través de expresiones regulares en Python
Aunque soy un principiante (eterno), tengo más experiencia en programación que mi amigo. Entonces, cuando me pidió consejo, lo convencí para que escribiera el programa en Python, mi idioma de elección.
En este punto del proyecto, estamos trabajando en el código que analiza la entrada desde el dispositivo GPS. Aquí hay alguna entrada de ejemplo, con los datos que necesitamos para extraer en negrita:
$ GPRMC, 092.204,999, 4250,5589, S, 14718.5084, E, 1,12,24.4, 89,6, H ,,, 0000 * 1F $ GPRMC, 093.345,679, 4234,7899, N, 11344.2567, W, 3,02,24.5, 1.000,23, H ,,, 0000 * 1F $ GPRMC, 044.584,936, 1276,5539, N, 88734.1543, E , 2,04,33.5, 600.323, M ,,, * 00 $ GPRMC, 199304.973, 3248.7780, N, 11355.7832, W, 1,06,02.2, 25.722,5, H ,,, * 00 $ GPRMC, 066.487,954, 4572,0089, S, 45572.3345, W, 3,09,15.0, 35000.00, H ,,, * 1F
Aquí está algo más explicación de los datos:
hace"Parece que necesitaré cinco cosas de cada línea. Y tenga en cuenta que cualquiera de estas áreas puede estar vacía. Lo que significa que solo habrá dos comas una al lado de la otra. Tal como ',,,' Hay dos campos que pueden llenos en cualquier momento. Algunos de ellos sólo tienen dos o tres opciones que puede ser, pero no creo que yo debería ser contando con que ".
Dos días mi amigo fue capaz de adquirir el registro completo de la receptor GPS utilizado para hacer un seguimiento de una reciente lanzamiento de un globo meteorológico. Los datos son bastante largo, por lo que poner todo en this pastebin.
estoy todavía bastante nuevo con expresiones regulares a mí mismo, por lo que estoy buscando algo de ayuda.
Por cierto, no parece que su línea de GPRMC $ para ajustarse a la norma. http://home.mira.net/~gnb/gps/nmea.html#gprmc ¿Me estoy perdiendo algo? –
Gracias por señalar eso Federico. Me aseguraré de investigar eso. – crashsystems
Parece más una línea $ GPGGA. –