DOI:

https://doi.org/10.14483/23448407.4414

Publicado:

2011-12-20

Número:

Núm. 6 (2012)

Sección:

Artículo de investigación científica y tecnológica

Gudux, una aproximación al procesamiento de datos gnss en software libre

Autores/as

  • David Monroy Machado Universidad Distrital

Palabras clave:

C , GPSTk, RINEX, WxWidgets (es).

Referencias

Bancroft, S. (s.f ). An Algebraic Solution of the GPS Equations, AES-21, (1), 56-59.Tolman B. W.; Harris, B.; Gaussiran, T.; Munton, D.; Little J.; Mach R.; Scot N.; et al. (2004).

The GPS Toolkit – Open Source GPS Software.Smart J.; y Hock K.; y Csomor S.; (2005). Cross-Platform GUI Programming with wxWidgets. www.gnu.orgGurtner, W.; Stey, L.; (2007).

RINEX. The Receiver Inde-pendent Exchange Format Version 3.00, Astronomical Institute, University of Bern, Unavco, 2-7.Fernández, C.; Ramírez, A., Fernández J. A.; (2001).

Implementación de corrección por pseudodistancias del algoritmo de Bancroft en Matlab para el procesamiento preliminar en GPS. Hofmann, B., (primavera de 2001)

GPS Theory and Practice,2a. edición, Austria.Liberty, J., Horvat, D. B. (2001). Aprendiendo C++ para Linux en 21 días, México: Pearson.Wall, K. (1999).

Linux Programming by example. Que, Indianapolis, Estados Unidos. Recuperado de www.wxwidgets.org, www.gpstk.org

Cómo citar

APA

Machado, D. M. (2011). Gudux, una aproximación al procesamiento de datos gnss en software libre. UD y la geomática, (6), 89–96. https://doi.org/10.14483/23448407.4414

ACM

[1]
Machado, D.M. 2011. Gudux, una aproximación al procesamiento de datos gnss en software libre. UD y la geomática. 6 (dic. 2011), 89–96. DOI:https://doi.org/10.14483/23448407.4414.

ACS

(1)
Machado, D. M. Gudux, una aproximación al procesamiento de datos gnss en software libre. U.D. geomatica 2011, 89-96.

ABNT

MACHADO, David Monroy. Gudux, una aproximación al procesamiento de datos gnss en software libre. UD y la geomática, [S. l.], n. 6, p. 89–96, 2011. DOI: 10.14483/23448407.4414. Disponível em: https://revistas.udistrital.edu.co/index.php/UDGeo/article/view/4414. Acesso em: 28 nov. 2023.

Chicago

Machado, David Monroy. 2011. «Gudux, una aproximación al procesamiento de datos gnss en software libre». UD y la geomática, n.º 6 (diciembre):89-96. https://doi.org/10.14483/23448407.4414.

Harvard

Machado, D. M. (2011) «Gudux, una aproximación al procesamiento de datos gnss en software libre», UD y la geomática, (6), pp. 89–96. doi: 10.14483/23448407.4414.

IEEE

[1]
D. M. Machado, «Gudux, una aproximación al procesamiento de datos gnss en software libre», U.D. geomatica, n.º 6, pp. 89–96, dic. 2011.

MLA

Machado, David Monroy. «Gudux, una aproximación al procesamiento de datos gnss en software libre». UD y la geomática, n.º 6, diciembre de 2011, pp. 89-96, doi:10.14483/23448407.4414.

Turabian

Machado, David Monroy. «Gudux, una aproximación al procesamiento de datos gnss en software libre». UD y la geomática, no. 6 (diciembre 20, 2011): 89–96. Accedido noviembre 28, 2023. https://revistas.udistrital.edu.co/index.php/UDGeo/article/view/4414.

Vancouver

1.
Machado DM. Gudux, una aproximación al procesamiento de datos gnss en software libre. U.D. geomatica [Internet]. 20 de diciembre de 2011 [citado 28 de noviembre de 2023];(6):89-96. Disponible en: https://revistas.udistrital.edu.co/index.php/UDGeo/article/view/4414

Descargar cita

Visitas

455

Dimensions


PlumX


Descargas

Los datos de descargas todavía no están disponibles.


GUDUX, UNA APROXIMACIÓN AL PROCESAMIENTO DE DATOS GNSS EN SOFTWARE LIBRE

GUDUX ONE APPROACH TO THE GNSS DATA PROCESSING IN OPEN SOURCE SOFTWARE

David Monroy Machado

Universidad Distrital Francisco José de Caldas david.monroy.machado@gmail.com

Recibido: 20/02/2012 - Aceptado: 15/07/2012


RESUMEN

Gudux es una aplicación desarrollada completamente en el lenguaje de programación C++, implementando las librerías wxWidgets y GPSTk, cuyo objetivo consiste en la determinación de la tripleta de coordenadas latitud, longitud y altura, como también X, Y y Z geocéntricas, de dos puntos denominados BASE y Rover. El procesamiento de los datos de posicionamiento global se hace de forma diferencial, es decir, mediante la corrección de las coordenadas de un punto BASE, junto con el establecimiento de las coordenadas del punto Rover, y desde luego el vector establecido entre los dos puntos; los datos de entrada para ambos puntos (BASE y Rover) deben estar en formato Rinex1 .

1 Por las siglas en inglés de Receiver Independent Exchange Format, formato de intercambio independiente entre receptores.

Palabras clave: C++, GPSTk, RINEX, WxWidgets.

ABSTRACT

Gudux is an application it was developed in C++ programming language, it implemented both libraries wxWidgets and GPSTk; the objective is to get the three coordinates latitude longitude and height, as the geocentric coordinates X, Y and Z of two points named BASE and Rover. The processing of the data of the global positioning is to make of differential technic, so means of corrections of the BASE’s coordinates, the calculate of the Rover’s coordinates and the vector between the both points; the data of the both points (BASE and Rover) must be in Rinex format.

Key words: C++, WxWidgets, GPSTk, Rinex.

INTRODUCCIÓN

El posproceso de la información GNSS2 es uno de los tópicos de mayor atención actual para la comunidad geodésica, consiste en la obtención del conjunto de coordenadas de alta precisión, que pueden ser de dos tipos: geodésicas, latitud, longitud y altura; o X, Y, Z que incluyan en su determinación el centro de masas de la tierra. Esta posición se determina a partir de la lectura de los “pseudorrangos” (distancia satélite-receptor) medidos en la observación o posicionamiento, contenidos dentro de cada uno de los ficheros Rinex3, resultantes del trabajo en campo. En la actualidad las herramientas que permiten realizar procesamientos de información Rinex se encuentran clasificadas en dos grandes clases: 1) herramientas científicas, 2) herramientas comerciales. Como una breve descripción de las herramientas científicas, se puede decir que son aquellas que demandan un nivel de conocimiento mayor por parte del usuario en cada uno de los conceptos y procesos que involucran la obtención de las coordenadas, tales como los diferentes modelos de las condiciones atmosféricas, perturbaciones gravitacionales y dinámica terrestre, entre otras; en algunos casos poca amigabilidad con el usuario y su licenciamiento puede ser de un alto costo, y en otros presentan restricciones en su implementación. En cuanto a las herramientas de procesamiento comerciales, cuentan con altos costos de adquisición de licencias para su uso, son muy amigables para el procesamiento y no demandan altos niveles de conocimiento en el procesamiento de la información.

2 Global Navigation Satellite System, sistema satelital de navegación global.

3 Formato de intercambio independiente entre receptores.

El procesamiento de datos GNSS que Gudux desarrolla lo hace implementando la técnica de corrección de las coordenadas de forma diferencial, implementando los mismos satélites en los puntos involucrados dentro del vector (BASE y Rover). Este procesamiento implementa el código de Bancroft en la determinación de las coordenadas iniciales para cada uno de los puntos a partir de los pseudorrangos medidos, según Bancroft (1985), acompañada de la teoría de mínimos cuadrados ordinarios para el refinamiento del conjunto de coordenadas obtenidas por cada una de las observaciones calculadas.

Gudux es una herramienta desarrollada en el lenguaje de programación C++, fuertemente orientada a objetos, la cual implementa las librerías GPStk que se encarga del procesamiento de los ficheros Rinex y el cálculo de las coordenadas (Tolman, Harris, Gaussiran, Munton, Little, Mach, Nelsen y Renfro et.al., 2004) y wxWidgets que tiene la responsabilidad de manejar las interface gráfica de usuario GUI4 de la aplicación (Smart, Hock y Csomor, 2005). Ambas librerías poseen LGPL5 como licencia de software, la cual, según las definiciones del proyecto GNU6, otorga las libertades de uso, distribución y modificación del código fuente. Los ficheros de entrada que Gudux requiere para el procesamiento de datos GNSS deben ser en formato Rinex7 (*.YYD, *.YYG, *.YYO, *.YYN y *.YYM), y como resultado, se obtiene un reporte que contiene los diferentes estadísticos resultados del procesamiento de los datos ingresados y la tripleta de coordenadas correspondiente a los dos puntos que componen el vector.

4Graphic User Interface, Interface gráfica de usuario.

5 Lesser General Public License, Licencia pública general.

6 GNU’s Not Unix.

7 Formato de intercambio independiente entre receptores

METODOLOGÍA

Gudux es una iniciativa que nació en la Universidad Distrital en la modalidad de proyecto de grado como un primer paso para la generación de una herramienta que permita el procesamiento de datos GNSS. Se basa en las libertades de desarrollo de software que se proponen dentro del proyecto GNU (Stallman, 1984):

Libertad 0: libertad de usar el programa para cualquier propósito.

Libertad 1: libertad de estudiar cómo funciona el programa.

Libertad 2: libertad de distribuir copias del programa.

Libertad 3: libertad de hacer mejoras y hacerlas públicas.

Gudux cuenta con una interface gráfica que permite amigabilidad en su implementación. En su desarrollo se buscaron e incorporaron algoritmos para el procesamiento de datos GNSS que satisficieran altos niveles de precesión en la estimación de las coordenadas, junto con la implementación de estadísticos que permitieran la evaluación de cada una de las coordenadas estimadas.

Gudux toma la información proveniente de receptores GNSS en formato Rinex, este formato organiza la información por épocas de observación, es decir, espacios de tiempo discriminando en cada uno de esos lapsos o segmentos los pseudorrangos medidos a cada uno de los satélites observados en el momento en el que se realiza la toma de datos (Gurtner y Gurtner, et. al., 2007); para Gudux es indispensable contar con los datos de observación (*.YYO), navegación (*.YYN) y condiciones metereológicas (*.YYM) (Gurtner y Gurtner 2007) de dos puntos que se deseen procesar, ya que para la mayoría de las herramientas de procesamiento de datos GNSS solo basta con las observaciones y las navegaciones. Esto se debe a que el algoritmo implementado por Gudux estima las efemérides a partir de las observaciones mismas.

Metodología de procesamiento de datos GNSS en Gudux

La manera en que Gudux calcula las coordenadas sobre la superficie de referencia, que en este caso corresponde al elipsoide, se obtiene mediante la implementación del método de Bancroft (Fernández, Ramírez y Fernández, 2001), el cual establece las coordenadas iniciales a un punto mediante:

Donde Pk corresponde a la magnitud del pseudorrango (distancia satélite-receptor) al satélite de coordenadas Xk, Yk, Zk; y x,y,z corresponden a las coordenadas desconocidas del observador. La forma matricial del método de bancroft se define por:

Ya que no solo basta con un pseudorrango de medición para la estimación de las coordenadas de un observador (Fernández, Ramírez y Fernández, 2001), por lo tanto se hace necesario la incorporación de un sistema matricial para resolver las tres incógnitas (x, y, z) relacionadas con la ubicación del punto sobre el elipsoide de referencia.

La figura 1 representa la técnica empleada en los sistemas de navegación satelital para determinar la tripleta de coordenadas latitud, longitud y altura (Hoffman, 2001).

El procedimiento que Gudux sigue para la obtención de las coordenadas de los puntos ingresados lo hace siguiendo el procedimiento que se puede observar en la figura 2.

En la figura 2 anterior las cajas de color verde corresponden a insumos necesarios para la etapa de color azul celeste a la cual se encuentran asociadas, mientras que las cajas de color amarillo hacen referencia a procesos o funciones implementadas en su correspondiente etapa.

Metodología de desarrollo para Gudux

Como se mencionó, Gudux se desarrolló completamente en el lenguaje de programación C++. Las herramientas informáticas implementadas para el desarrollo de Gudux fueron:

• g++ como compilador.

• Emacs como editor de texto para cada uno de los ficheros cabecera *hpp, ficheros fuente *cpp y Makefile

• Sistema operativo GNU/Linux en distribución Ubuntu 6.06.

En la actualidad Gudux se ha probado en versiones recientes de Ubuntu 10.04, 11.02, y en distribuciones como Debian 6, con resultados positivos y sin complicaciones.

El desarrollo de Gudux se hizo implementando como técnica de notación la denominada dromedario, la cual permite identificar los nombres compuestos con la inicial de la segunda parte del nombre en mayúscula (Liberty, 2001).

Dentro del desarrollo de Gudux se construyeron cuatro clases:

• Rinex

• Procesamiento Rinex

• Ventana

• Aplicación

• DiálogoDatos

La clase Rinex se encarga de la lectura y carga de los ficheros que proveen la información relacionada con los pseudorrangos obtenidos por los receptores GNSS; ProcesamientoRinex involucra los métodos y atributos que permiten el cálculo de las coordenadas; en esta clase se construyeron listas con el fin de facilitar la manipulación de los datos en el momento de aplicar los diferentes estadísticos, también se definió el proceso estadístico para cada una de las coordenadas calculadas; la clase Ventana se encarga del comportamiento de los eventos y asociación de estos dentro de la GUI (Graphic User Interface) a los métodos y atributos del procesamiento de los datos; por otra parte, la clase Aplicación se encarga de ejecutar el contenido de la clase Ventana; y por último, la clase DiálogoDatos es responsable de desplegar en dos ventanas independientes las coordenadas obtenidas con el resumen de las estadísticas y la longitud del vector entre los dos puntos.

En la figura 3se puede observar el contenido de cada una de las clases anteriormente descritas, junto con la relación existente entre ellas, con la cual se obtuvo la compilación exitosa y ejecución de Gudux.

El proceso de desarrollo de Gudux se realizó en tres fases: 1) desarrollo relacionado con las clases involucradas en el procesamiento de la información GNSS; en otras palabras, el diseño, declaración y compilación de las clases Rinex y Procesamientos Rinex, que a su vez implementan la librería GPStk; 2) desarrollo de la GUI, las clases Ventana, Aplicacion, DialogoDatos, las cuales implementan la librería wxWidgets; 3) la combinación de los desarrollos anteriormente descritos y la ejecución de las pruebas correspondientes.

La interface gráfica que acompaña a Gudux se puede observar en la figura 4:

Se le ha divido en cuatro secciones con el fin de orientar al lector. En la sección 1 se ingresan las coordenadas conocidas del punto que se ha denominado BASE a la hora de realizar el levantamiento en campo. La sección 2 relaciona las cajas de texto y botones que ayudarán al usuario a encontrar y definir la ruta de los ficheros Rinex (*.YYO, *.YYN, *.YYM) del punto definido como BASE. La sección 3 comprende las cajas de texto y botones para definir y encontrar la ruta a los ficheros Rinex (*.YYO, *.YYN, *.YYM), correspondientes al punto definido como Rover en el levantamiento en campo.

La salida de los datos finales del procesamiento con Gudux se presenta de dos formas: mediante una ventana que despliega las coordenadas geodésicas como planas geocéntricas, tal y como se puede observar en la figura 5.

Por otra parte, y como una segunda alternativa, Gudux genera un reporte en el que se encuentra de forma más detallada el procesamiento que se ha calculado, junto con el resultado de los diferentes estadísticos aplicados en el procesamiento de los ficheros Rinex ingresados; una muestra del reporte que se genera por Gudux se puede observar en la figura 6.

Alcance

Gudux se presenta como una naciente alternativa informática, con la que se puede profundizar en temas relacionados con el desarrollo de aplicaciones, el tratamiento de las señales definidas para los sistemas de navegación satelital GNSS, así como la manipulación, conversión y transformación de coordenadas tratadas en la geodesia. Hasta el momento Gudux procesa un solo vector compuesto por dos puntos, y la estimación de las efemérides de los satélites la obtiene a partir de las observaciones hechas.

En la actualidad se están buscando y construyendo nuevas mejoras para Gudux que permitan una masificación en su implementación, además de mayor satisfacción, amigabilidad y confianza; esto se ha venido desarrollando las reuniones que Sirgas ha venido desarrollando en los últimos tres años.

Las técnicas de procesamiento de datos GNSS han obligado a su desarrollador a poner esta herramienta a la vanguardia, mejorando la precisión de las coordenadas, e incorporando el procesamiento de punto preciso (PPP) como técnica de procesamiento y como una alternativa para los centros de procesamiento de Sirgas.

Procesamientos

Para evaluar a Gudux se utilizaron datos de las estaciones permanentes de la red Magna-Eco, las cuales son densifi- cación de la red Sirgas, que a su vez supervisa y controla el Instituto Geográfico Agustín Codazzi.

Las aplicaciones que se utilizaron para la evaluación de los resultados a cada uno de los vectores calculados con Gudux fueron Leica Geoffi ce (LGO) V4, Azstech solutions V2, y por último se realizó el cálculo de magnitud del vector entre estaciones a partir de las coordenadas publicadas por el DGFI8.

8 Formato de intercambio independiente entre receptores

Los vectores que se calcularon fueron:

•Bogotá (BOGA) - Ibagué (IBAG)

•Ibagué (IBAG) - Neiva (NEVA)

•Bogotá (BOGA) - Pereira (PERA)

•Bogotá (BOGA) - Neiva (NEVA)

•Bogotá (BOGA) - Pasto (PSTO)

Los vectores entre estaciones en Gudux se calcularon según el procedimiento para el cálculo de coordenadas con corrección diferencial con GPS. Las coordenadas del punto denominado BASE, se obtuvieron de la solución generada por el DGFI para Sirgas; por otra parte, las líneas base se calcularon con los datos Rinex a veinticuatro horas, y posteriormente a doce horas.

Resultados

Los resultados de los vectores calculados obtenidos con Gudux, junto con los de las demás aplicaciones utilizadas en la evaluación del presente proyecto, se presentan en la tabla 1.

Las diferencias correspondientes entre los vectores calculados por cada una de las aplicaciones y Gudux se presentan en la tabla 2.

A cada uno de los vectores obtenidos se les calculó errores medios cuadráticos con el fin de estudiar el comportamiento de las coordenadas con señales obtenidas en horas de la mañana y para analizar la consistencia de los de las coordenadas obtenidas. Estos resultados se pueden observar en la tabla 3.

CONCLUSIONES

Como primera conclusión, en el desarrollo de este proyecto se tratarán las diferencias medidas entre las longitudes de los vectores calculados con las demás herramientas. Los resultados obtenidos con Gudux (columna 1 de la tabla 1), se acercan al orden de los centímetros, y lucen comparables con las aplicaciones reconocidas de uso comercial, aunque es importante resaltar que el ejercicio de este proyecto no es competir con las herramientas tradicionalmente utilizadas para este efecto, sino por el contrario, presentar a la comunidad una nueva alternativa al posproceso de datos GNSS.

El cálculo de los vectores realizado a las diferentes líneas base con Gudux se llevó a cabo con datos a veinticuatro horas, a doce horas y a seis horas; dicho ejercicio sirvió para corroborar la teoría establecida para la recolección de datos GNSS en campo, en la que se establece que a mayor distancia entre los puntos que componen al vector, mayor debe ser el tiempo de rastreo en estos. Lo anterior sugiere que el comportamiento del algoritmo implementado en Gudux cuenta con un alto nivel de confiabilidad en las tareas de posproceso de datos GNSS, sujeto a las diferencias encontradas con las demás aplicaciones, ya que en el ejercicio no se sobrepasaron los centímetros entre los resultados obtenidos con las restantes aplicaciones.

Por último, es de resaltar el importante papel que desempeñó el software libre en el desarrollo de esta aplicación, pues por medio de su licenciamiento, documentación y soporte existente fue posible la realización y ejecución de Gudux.

RECOMENDACIONES

Esta nueva alternativa requiere de una continuidad en su proceso de desarrollo y maduración, pues existen muchas tareas dentro del posproceso de datos GNSS, como lo es la implementación de efemérides precisas, el procesamiento de datos Glonass y un modelamiento local ionosférico, para obtener mejores resultados.

Como una segunda recomendación podemos decir que Gudux es el comienzo en el desarrollo de nuevas alternativas tanto para la comunidad universitaria como para la comunidad investigativa y general. Se sugiere evaluar el comportamiento de la aplicación Gudux en diferentes circunstancias en las que se presente la práctica de la ingeniería, es decir, procesos que involucren el multipah, o distorsiones a la señal de diferentes tipos.

Referencias

  1. Bancroft, S. (s.f). An Algebraic Solution of the GPS Equations, AES-21, (1), 56-59.
  2. Tolman B. W.; Harris, B.; Gaussiran, T.; Munton, D.; Little J.; Mach R.; Scot N.; et al. (2004). The GPS Toolkit – Open Source GPS Software.
  3. Smart J.; y Hock K.; y Csomor S.; (2005). Cross-Platform GUI Programming with wxWidgets. Recuperado de: www.gnu.org
  4. Gurtner, W.; Stey, L.; (2007). RINEX. The Receiver Independent Exchange Format Version 3.00, Astronomical Institute, University of Bern, Unavco, 2-7.
  5. Fernández, C.; Ramírez, A., Fernández J. A.; (2001). Implementación de corrección por pseudodistancias del algoritmo de Bancroft en Matlab para el procesamiento preliminar en GPS.
  6. Hofmann, B., (primavera de 2001) GPS Theory and Practice, 2a. edición, Austria.
  7. Liberty, J., Horvat, D. B. (2001). Aprendiendo C++ para Linux en 21 días, México: Pearson.
  8. Wall, K. (1999). Linux Programming by example. Que, Indianapolis, Estados Unidos. Recuperado de: www. wxwidgets.org, www.gpstk.org

Loading...