Libro excel
Tengo una entrada anterior dedicada a este tema. Reconozco que es una forma muy barroca de resolver algo que se puede resolver mejor y mucho mas fácilmente.
Lo mas complicado de la conversión de un fichero GPX a otro formato es pasar todos los parámetros de cada uno de los puntos a una sola línea, con el añadido de que si se ha manipulado el fichero los saltos de línea pueden estar en cualquier sitio. Aunque este tipo de conversiones es mucho mas fácil hacerlas programando he trabajado este tipo de conversiones para hacerlas sin programación. He conseguido hacerlo de dos maneras, ambas son fáciles de hacer pero ambas son un poco complicadas de explicar. ¡Espero acertar!
Primera y, quizás, mas sencilla:
- Preparamos un fichero GPX solo con un track, sin rutas ni waypoints. De momento solo garantizo el resultado utilizando un datum WGS84.
- Copiamos el fichero GPX a un fichero de texto (TXT). Al finalizar cambiaremos el .txt por .htm.
- Editamos con un editor de textos (bloc de notas).
- Como el resultado final va a ser un fichero HTM (página web) debemos prescindir de los delimitadores de etiquetas HTML (<>). En este caso no voy a necesitarlos de nuevo pero si alguien desea recuperarlos después puede reemplazarlos por un MayorQue o un MenorQue y luego hacer la operación inversa.
- Los parametros de los puntos de un track, en cualquiera de los formatos, son latitud, longitud, altura y fecha con hora del momento en que se tomó. Estos dos últimos parámetros pueden ser opcionales.
- Como en un paso posterior en Excel voy a pasar el texto a columnas elijo como separador la coma (,).
- Reemplazamos < por el signo coma (,)
- Reemplazamos > por el signo coma (,)
- Reemplazamos " (comillas) por el signo coma (,)
- Reemplazamos ,trkpt por <br>,trkpt
- En este punto podemos reemplazar trkpt, lat=, lon=, ele, time y / por un espacio o bien eliminarlos como parte del trabajo en excel.
- Salvamos y guardamos el fichero como .htm
- Hacemos un doble click sobre este fichero. Si hay muchos puntos puede tardar mucho en abrirse.
- La primera línea que se ve es la cabecera del fichero. A continuación deben deben aparecer como n líneas con los datos de los puntos del track :
trkpt lat=,42.17672892, lon=,42.17672892, ,ele,1065,/ele, ,time,2009-1-17T09:01:37Z,/time,/trkpt,
Abrimos un libro excel, en la página htm seleccionamos las todas líneas de los puntos, copiamos y pegamos en el libro Excel, normalmente en la casilla A1. Si hemos copiado la cabecera la eliminamos del libro excel.
Ya con el libro Excel:
- Seleccionamos la columna con las líneas copiadas.
- En Datos buscamos Texto en columnas.
- Indicamos que es un texto delimitado. Marcamos la casilla "coma".
- Importamos todos los campos como texto, si los importamos como general nos darán problemas. En este punto podemos desechar los literales y otros campos inútiles.
- Una vez pasado el texto a columnas, dependiendo de la conversión que vayamos a hacer, hay que pasar la altura de metros a pies y trabajar el formato de la fecha.
- La fecha de los ficheros GPX tiene el formato 2009-1-17T09:01:37Z. Eliminamos la T y Z y lo convertimos a número con =SUSTITUIR(SUSTITUIR($I1;"T";" ");"Z";"")+0. Cambiamos la coma por punto con =SUSTITUIR(L1;",";".").
- La altura del punto para pasarlas de metros a pies la dividimos por 0,32. Sustituimos la como por un punto con =SUSTITUIR(N1;",";".")
- Cada línea de puntos de un fichero plt esta compuesta por Latitud,Longitud ,0, Altura, Fecha en número, fecha en formato fecha.
Cabera de un fichero PLT:
En oziExplorer creamos un fichero de track (plt) con un par de puntos. Abrimos ese fichero con el editor de textos, borramos los puntos que hemos utilizado para simular un track y añadimos, mediante un copia-pega los puntos procedentes del fichero GPX.
Salvamos y probamos.
OziExplorer Track Point File Version 2.1
WGS 84
Altitude is in Feet
Reserved 3
0,5,255,19/05/2015 14:25:33 ,0,0,0,2951611,-1,0
1454 Sustituir, aunque no es necesario, por el número de líneas.
41.889032,-8.849871 ,0, 3, 41039.3403935185,05-10-2012 08:10:10
Segundo método:
Aquí la cuestión, como ya he dicho, consiste en situar en una sola línea todos los parámetros de un punto. El método que utilizo para conseguir esta alineación es, primero, eliminar los satos de línea para después añadirlos antes del primer parámetro del punto.
Tengo dos s.o. WXP y Guadalinex. En WXP la sustitución de los satos de línea se puede hacer con el block de notas (noteppad), y en Guadalinex se puede hacer, mucho mas sencillo con el editor de textos GEDIT. GEDIT también tiene una versión, gratuita, para windows.
******************************************************
- He cambiado de sistema a Windows7. Este cambio, además de S.O. supone un cambio de máquina (de 32 bits a 64) que ha dejado inútil mi colección de programas, casi ninguno me vale ya. De todas maneras es un cambio que, en algún momento, hay que hacer.
- En cuanto a los saltos de línea, los primeros pasos parecen indicar que, a veces, lo que funcionaba en WXP no funciona en Windows7.
- A fecha de hoy (31/05/2016). Seguiré probando y si encuentro solución ya la subiré.
- En un primer intento quiero convertir un fichero GPX que he tratado con un programa bajo W7.
- De momento, si el fichero GPX está tal y como lo bajas del GPS, parece que sigue funcionando como en WXp.
Solución encontrada (2/6/2016):
- Sigo sin saber que carácter se me ha colado en el fichero. Intuyo que es algún código no ASCII, quizás UNICODE u otro.
- Abro con GEDIT el fichero en cuestión. Selecciono el texto que me interese convertir.
- Lo copio en una hoja excel (A1).
- Después del copia pega cada línea debe quedar en una sola celda.
- En otra columna (B, celda B1) pongo la siguiente fórmula: =LIMPIAR(ESPACIOS(A1)). La función LIMPIAR elimina los caracteres no imprimibles.
- Arrastro la formula hasta el final.
- Copio la columna B.
- Abro en GEDIT un documento nuevo.
- Pego la columna copiada.
- Elimino los saltos de línea tal y como se explica a continuación.
- Coloco un salto de línea a principio de cada punto.
******************************************************
Con GEDIT:
- Copiamos el fichero GPX como fichero de texto. Lo abrimos con GEDIT. Para GEDIT el salto de línea es \n.
- Eliminamos los saltos de línea con GEDIT. Reemplazamos \n por un espacio o un carácter nulo.
- Eliminamos los retornos de carro con GEDIT. Reemplazamos \r por un espacio o un carácter nulo.
- Reemplazamos <trkpt por \n<trkpt. Esto sitúa un salto de línea antes del inicio de cada punto.
- Hacemos el resto de las sustituciones del primer método.
- Salvamos como TXT y abrimos el fichero con excel.
- Pasamos los datos a columnas, eliminamos literales, preparamos fecha y altura y continuamos como en el primer punto.
Con block de notas (notepad):
Si el fichero GPX no ha sido manipulado entre los caracteres visibles aparece un cuadradito. Este "cuadradito" es un salto de línea. Lo copiamos, elegimos reemplazar y pegamos el cuadradito en reemplazar y lo reemplazamos por un espacio o un carácter nulo. Reemplazamos <trkpt por cuadradito<trkpt. Continuamos como en el método anterior.
Si el fichero GPX ha sido manipulado el cuadradito ya no aparece. En este caso abrimos excel, escribimos en cualquier celda =caracter(10) y nos debe aparecer el cuadradito. Sustituimos según el paso anterior y continuamos según lo explicado.
** Válido para WXP. Los windows mas modernos parece que no se comportan igual.