Mostrando entradas con la etiqueta XML. Mostrar todas las entradas
Mostrando entradas con la etiqueta XML. Mostrar todas las entradas

19 de abril de 2010

Ficheros GPX y nombre de ruta en mi Edge o Forerunner.

Cuando uno tiene una ruta en GPX y quiere pasarla al GPS, lo suyo es ponerle un nombre que le recuerde de qué se trata. No es difíl. Se puede hacer desde los programillas habituales o directamente modificando el contenido de los ficheros. Pero debes de tenerlo claro, porque si no, es también fácil que no consigas ponérselo ni de casualidad. Lo vemos.

Una confusión habitual. No es lo mismo el nombre de un ruta que el del fichero que la contiene

Vas a Internet. Te bajas una ruta. La grabas con un nombre que te permitirá en el futuro recordarla. Por ejemplo "Ruta_Chula.gpx".

La pasas al GPS. Desconectas el GPS del ordenador. Buscas la ruta en éste, en "Carreras guardadas" . No está. Miras mejor. Bueno, sí que hay una ruta nueva, pero no tiene el nombre de la que grabaste. Su nombre es una fecha. La abres. ¡Vaya, sí es la ruta que has pasado! ¿Te habrás equivocado al darle el nombre?

Vuelves a conectar el GPS al ordenador. Buscas la ruta. Allí está ella. "Ruta_Chula.gpx" te mira desafiante desde la carpeta en donde la guardaste ("Carreras guardadas")  y desde la que la pasate al Garmin. ¿Qué está pasando? ¿Se está riendo una vez más el aparatito de ti?

Hombre, tú ya sabes de qué va eso del XML. La explicación es trivial.

¿Leiste el comentario http://deporteyelectronica.blogspot.com/2010/04/xml-ese-gran-desconocido.html? Pues entonces el misterio es fácil de resolver.

Sencillamente, a tu Garmin le es indiferente el nombre con que grabaste la ruta. El, de lo único que sabe es del nombre que está en la etiqueta "[name]" del fichero que contiene los datos de la ruta. Si esa etiqueta está sin contenido, es decir, pone "[name /]", el Garmín (y todos los programas que traten el fichero) considerará que la ruta no tiene nombre y le asignará como tal el de la fecha.

Que tu grabases la ruta con el nombre "Ruta_Chula.gpx" sólo lo entiende el sistema operativo del ordenador (Windows o Mac OS). Los programas que trabajan con el fichero, recuerda que lo que hacen es leer de sus "etiquetas" XML.

Entendido. ¿Y cómo cambio el nombre al que yo quiero? (es una pena no poder poner "Ruta_Chula.gpx")

Para cambiar el contenido de la "etiqueta" en el fichero puedes hacerlo de 2 formas. O con un programa que lo cambie, o directamente editando el ficherito con el "Bloc de Notas" y poniendo el nombre que has decidido.

Mi consejo es que no te metas en líos de editar ficheros. Usa un programa. Por ejemplo, "Mapsource" permite cambiar el nombre de una ruta muy fácilmente.

 Pasos en Mapsource: 

  1. Abre el fichero (Nota: recuerda que GPX no es el formato nativo de Mapsource. Si no ves el fichero en la carpeta en la que sabes que está, fijate si en el desplegable que hay al lado del nombre del fichero a abrir, no está indicado que es de tipo GPX. )
  2. Selecciona la pestaña de la parte izquierda de la pantalla que  pone "Caminos. En ella verá el "GPX" que has abierto (ya puedes constatar que no tiene nombre).
  3. Pulsa sobre el GPX con el botón derecho del ratón (o haz "doble-click sobre él).  Aparece un menú. Elige "Propiedades de Camino".
  4. Accedes a una ventana con un campo que se llama "Nombre:" No pierdas la ocasión, pon "Ruta_Chula.gpx".
  5. Salva el archivo. Recuerda salvarlo en Formato GPX eligiendo ese tipo en la ventana de "Guardar" o "Guardar como"
  6. Ya has acabado. Si editas el fichero con el "Bloc de Notas", verás que donde antes ponía "[name /]", ahora pone "[name]Ruta_chula[/name]" (recuerdo que he cambiado las "<" y ">" por "[" y "]" porque si no lo hiciera, como estás viendo este texto en un navegador, interpretaría el texto como marcas html y no lo verías bien)
Si ahoras pasas el fichero a tu GPS, verás como ya aparece con el nombre esperado.

Ver todo el tema...

18 de abril de 2010

XML. Ese gran desconocido.

Hace tiempo que estoy pensando en escribir algunos comentarios sobre ficheros con formatos XML. Nuestras rutas, la configuración del dispositivo, nuestro perfil, .... mucha de la información que gestionamos con nuestros GPS´s se escribe en XML. Siempre me frenaba el que es un tema que puede resultar árido, pero, por otra parte, conocer un poco sobre XML da la posibilidad de ver directamente los datos de las actividades que hacemos, sin que te los filtre ningún programa. Y esto abre nuevas posibilidades que pueden venir bien. Voy a intentarlo. Prometo hacerlo sin entrar en excesivos detalles. Primero con este comentario general. Luego en algún otro sobre los ficheros GPX y TCX. Vamos allá.

El origen: un problema que hay que solucionar.

Uno de los grandes problemas que surgen al intercambiar información, es que los distintos interlocutores que la consumen deben ser capaces de interpretar su contenido. Dicho en otras palabras, deben saber en que lenguaje está escrita esa información y ser capaces de entender ese lenguaje.

Habitualmente, los proveedores de programas y dispositivos utilizan lenguajes distintos para sus productos. Cada uno el suyo. Generando lo que se llama información "propietaria". Es decir, información que sólo ellos son capaces de entender y tratar. Esto, les protege frente al uso de sus productos por parte de otros, pero complica enormemente la vida a los usuarios, ya que no pueden intercambiar información generada por unos programas o dispositivos, con otros programas o dispositivos diferentes.

Para evitar esto, ya hace muchos años apareció algo llamado SGML (1986, Estandar ISO 8879). SGML significa "Standard Generalized Markup Language" y es un estándar que dice cómo hay que definir lenguajes para escribir documentos. La definición se hace en base a "etiquetas" ("marcas"), de forma que cuando alguien quiere escribir un documento de acuerdo a un lenguaje definido, va "etiquetando" el contenido con "etiquetas" conocidas que es capaz de interpretar cualquiera que conozca el significado de esas "etiquetas"".

De esta forma, si alguien genera información y quiere que la pueda consumir cualquiera, sólo tiene que definirse un lenguaje, publicarlo y escribir la información a compartir usando ese lenguaje.

Con esto, problema solucionado. La información ha pasado de ser "propietaria" a ser "pública" y de uso generalizado. Han nacido los estándares. Por ejemplo, el GPX.

Esto no hay quien lo entienda. ¿Puedes poner algún ejemplo conocido?

Bueno, no es corporativismo (yo soy fisiquillo), pero la implementación que con toda seguridad más repercusión ha tenido de definición de un lenguaje a partir de SGML se produjo en el CERN de Ginebra ("Organización Europea para la Investigación Nuclear") a finales de los 80. Fue Tim Berners-Lee, un físico contratado a principios de los 80 en el CERN, el que junto a su equipo diseñó e implementó en1989 un mecanismo para compartir facilmente información entre todos los que estaban allí currando.

El lenguaje se llamó HTML (HyperText Markup Language). También crearon el protocolo HTTP (HyperText Transfer Protocol), el sistema de localización de objetos en la web URL (Uniform Resource Locator) y, en definitiva, todo lo que luego se conoció como "World Wide Web"  o "WWW"(¿os suena?)

---------------------------------------------------
Nota: el CERN es un laboratorio europeo en el que trabajan muchos físicos españoles junto a sus colegas de otos paises. En él está ubicado uno de los mayores aceleradores de partículas del mundo. Cuenta con grandes éxitos como el descubrimiento de algunas de las partículas elementales. Su último hito (30 de marzo pasado) fue la colisión de haces de protones en el Gran Colisionador de Hadrones (LHC) a una energía de 7 TeV (teraelectronvoltios). Una energía sin precedentes en un acelerador de partículas, que recreó una situación similar a los instantes posteriores al Big Bang (teoría del origen del universo). Yo estaba un poco acongojado por si la recreaban de verdad y nos freían (al cabo de un centésimo de segundo aproximadamente tras la gran explosión que dio origen al Universo, que es el momento más primitivo del que podemos hablar con cierta seguridad, la temperatura era de unos cien mil millones de grados centígrados). Pero bueno, todo acabó bien.
----------------------------------------------------

Cuando alguien escribe en HTML, introduce una serie de "Etiquetas" ("Tags" en inglés) para indicar qué hay que hacer con el texto que se escribe y, de esta forma, que los consumidores del mismo sepan interpretarlo y tratarlo. Los principales consumidores de este tipo ed información, como no se os escapa, son los navegadores (Internet Explorer, Safari, Fire Fox, Chrome, ...). Yodos conocen las reglas con que se escribe HTML y son capaces de interpretar lo escrito de acuerdo a estas reglas para enseñarnos lo que vemos cuando nos conectamos a Internet.

Ejemplos:

  • Si quieres que un texto esté en "negrita", al inicio de la frase se usa la etiqueta "b" (las etiquetas se ponen siempre entre "<" y ">") y, al final de la frase, se indica con "/b" que debe dejarse ya de escribir en "negrita" (para los puristas del HTML ahora es recomedado usar "strong" y "/strong", pero, para un ejemplo, da igual)
  • Si quieres que desde un texto se navegue a otro, indicarás el inicio de ese texto con "a href=" y para indicar que se acaba el trozo desde el que se navega, lo indicarás con "/a"

las etiquetas "b", "/b", "a href =" y "/a"  forman parte del lenguaje conocido y cualquier programa (como los navegadores que ya dijimos) sabe interpretarlas y qué hacer con ellas.
 
¿Y XML?
 
XML es una simplificación de SGML es decir, no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Fundamentalmente está pensado como un definidor de lenguajes para el intercambio de información estructurada.
 
¿Y que tiene que ver esto con el GPS que yo uso?

La mayoría de los ficheros que usas con tu GPS están escritos usando un lenguaje definido con XML.

En ellos, las etiquetas indican cómo se llama una ruta, con qué programa se creó, cuando empiezan y acaban los datos de un punto de track, qué datos son (longitud, latitud, elevación, hora), ... Todo esto está "etiquetado" en el fichero, y es de ahí de donde toman la información los programas (SporTracks, Garmin Training Center, Mapsource, ...) para tratar tus actividades.

Ejemplo de parte de un fichero GPX

Acontinuación puedes ver los datos de un punto de track de un fichero GPX (he cambiado las "<" y ">" por "[" y "]" porque si no lo hiciera, como estás viendo este texto en un navegador, interpretaría el texto como marcas html y no lo verías bien):

[trkpt lat="39.4752883911133" lon="-0.366190165281296"]

[ele]17.441162109375[/ele]
[time]2010-01-10T09:02:06Z[/time]
[/trkpt]

Es el primer punto que grabó mi Forerrunner cuando corrí los 10K de Valencia el 10 de enero de este año.

Como podéis, ver se indica cuando comienzan los datos de 1 punto con su latitud y longitud  ([trkpt lat="39.4752883911133" lon="-0.366190165281296"]), la elevación ([ele]17.441162109375[/ele]), la fecha y hora en que se grabó ( [time]2010-01-10T09:02:06Z[/time] , y la marca de que se acaba la toma de datos para ese punto ( [/trkpt] ).

Ya acabo

Bueno, espero no haberme enrrollado mucho más allá de lo necesario. Espero también que, para los nuevos en estos temas, ahora sea más fácil  entender cómo se guardan los datos que graba su GPS.

En próximos artículos, aprovechando lo dicho aquí, comentaré cuestiones alrededor de los ficheros GPX y TCX. Empezaré por uno sencillito, sobre los "nombres de rutas".

Ver todo el tema...