sábado, marzo 14, 2009

Sacando información de un GPS BT747A en MacOS X

Mi mujer me regaló por Reyes un GPS BT747A para hacer geotagging (almacenar la información del lugar donde fue tomada una fotografía en la misma). Este modelo puede funcionar en dos modos: registrando los puntos y almacenándolos en una memoria interna, para sacarlos posteriormente, o bien mandando las coordenadas que recibe a través de bluetootch o USB a un ordenador en formato determinado.

El GPS viene acompañado de un software que sólo funciona en Windows. Se puede configurar diversas funciones desde el mismo, aparte de obtener la información. Como uso MacOS X, lo que más me interesa es obtener la información del GPS en un formato que pueda usar con el software que utilizo para añadir la información a las fotografías.

Lo primero es usar un driver que me permita conectarme con el GPS a través de USB. Este aparato lleva una emulación de puerto serie que utiliza un chip de SiLabs. Hay que bajarse dicho driver e instalarlo en el sistema. El driver es un binario universal, soporta tanto Intel como PowerPC. Una vez instalado en el sistema y conectado el GPS se creará un fichero especial en el directorio /dev de la máquina. Podemos ver cual es si escribimos la siguiente orden en una ventana de la aplicación Terminal, veremos cual es el dispositivo:

ls /dev/cu.usbmodem*
/dev/cu.usbmodem1B1
Los tres últimos caracteres depende del puerto USB al cual se ha conectado el GPS.

Una vez que hemos comprobado que el sistema ha detectado correctamente el GPS, uso la utilidad gpsbabel, al menos desde su versión 1.3.6 para obtener la información de la unidad de GPS y almacenarla en un formato que entiendan los programas para el posterior procesamiento de las fotografías. En este caso, el GPS es de tipo mtk. Si además se quiere borrar la información almacenada una vez recuperada, se le puede pasar otra opción.

La sintaxis general de la utilidad es la siguiente:

gpsbabel [opciones de entrada] -f fichero_entrada [opciones de salidad] -F fichero de salida

Para el nuestro caso, el fichero de entrada será el dispositivo por el que aperece el GPS, /dev/cu.usbmodem1B1, y el fichero de salida el que queremos. Por ejemplo, si usamos el GPSPhotoLinker, el formato debe ser gpx. Aparte, si deseamos que gpsbabel procese la información de las rutas, habría que pasarle las opciones correspondientes.

Con todo lo anterior, para obtener la información almacenada en nuestro GPS, almacenarla en formato gpx y borrar la memoria del dispositivo una vez que hayamos acabado, se utilizaría la siguiente orden desde una aplicación de Terminal. El fichero resultante,salida.gpx quedaría almacenado en el directorio actual.

gpsbabel -t -r -w -i mtk,erase -f /dev/cu.usbmodem1B1 -o gpx -F salida.gpx

Los parámetros que se le pasan a la línea de comando son los siguientes:

  • -t Procesas la información de pistas.
  • -r Procesa la información de rutas.
  • -w Procesa la información de waypoints. Esta es la opción por defecto.
  • -i mtk,erase El tipo de dispositivo y opciones asociadas al mismo. En nuestro caso, es mtk y una vez procesada la información la borra, erase.
  • -f /dev/cu.usbmodem1B1 Dispositivo de entrada.
  • -o gpx Formato de salida de los datos, en este caso gpx.
  • -F salida.gpx Nombre del fichero de salida donde se almacenaran los datos.
Una vez terminado el proceso de transformación, podremos usar el mismo en el programa que queramos.

Technorati Tags: ,

No hay comentarios: