{"id":1001,"date":"2020-12-04T19:20:37","date_gmt":"2020-12-04T17:20:37","guid":{"rendered":"http:\/\/www.joanillo.org\/?p=1001"},"modified":"2020-12-04T19:20:38","modified_gmt":"2020-12-04T17:20:38","slug":"extraer-informacion-de-un-track-gpx","status":"publish","type":"post","link":"https:\/\/www.joanillo.org\/?p=1001&lang=es","title":{"rendered":"Extraer informaci\u00f3n de un track GPX"},"content":{"rendered":"<p><a href=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2020\/12\/1333019458095-awwndow7i6cd-15cddc9.jpg\"><img src=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2020\/12\/1333019458095-awwndow7i6cd-15cddc9.jpg\" alt=\"\" title=\"Giant XTC 2012\" width=\"300\" class=\"alignright size-medium wp-image-2338\"><\/a>Estaba haciendo un peque\u00f1o script en <em>NodeJS<\/em> para extraer la informaci\u00f3n de mis tracks de BTT. Esta es la informaci\u00f3n b\u00e1sica que se puede extraer:<\/p>\n<pre>$ node xml_stats.js ..\/rutesgps\/montnegreopenmtb_32.gpx\ntrack: ..\/rutesgps\/montnegreopenmtb_32.gpx\n2020-11-05\n29.4 Km (dist\u00e0ncia total)\n02:25:40 (temps en moviment)\n02:58:01 (temps total)\n1121 m (desnivell acumulat)\n886 m (desnivell acumulat amb filtre)\n143m -&gt; 650m (altitud min and max)\n<\/pre>\n<p>La dificultad principal est\u00e1 en entender qu\u00e9 significa y c\u00f3mo se calcula el desnivel acumulado. Pongamos por ejemplo una excursi\u00f3n bastante plana com puede ser el <a href=\"https:\/\/ca.wikipedia.org\/wiki\/Carretera_de_les_Aig%C3%BCes\" target=\"_blank\" rel=\"noopener noreferrer\">Passeig de les Aig\u00fces<\/a> de Barcelona. Teniendo en cuenta que la resoluci\u00f3n de mi GPS es de 1 metro (sin decimales), el hecho de recorrer una superficie plana hace que se vaya acumulando los metros de desnivel de una manera exagerada (aunque el GPS tuviera m\u00e1s resoluci\u00f3n tambi\u00e9n pasar\u00eda). Lo primero que haremos es recalcular las elevaciones de mi track con alg\u00fan servicio online que d\u00e9 las alturas exactas, y con alg\u00fan decimal. Despu\u00e9s, la soluci\u00f3n pasa por filtrar los datos, hacer un suavizado, es decir, hacer una media. Por ejemplo, por cada punto cogemos el valor de la elevaci\u00f3n haciendo la media entre el punto actual y los puntos anterior y posterior. Ser\u00eda una media de tres puntos. Como cada punto se graba a los 4 segundos, ser\u00eda una media de 12 segundos. Ahora bien, puedo hacer filtrados de 5, 7, 9 o 11 puntos, i da como resultado valores de pendient acumulado cada vez m\u00e1s peque\u00f1os. \u00bfQu\u00e9 criterio seguir? El caso es que los diferentes sistemas (mi GPS, <a href=\"https:\/\/ca.wikiloc.com\/rutes\/btt\" target=\"_blank\" rel=\"noopener noreferrer\">wikiloc<\/a>, etc&#8230;) dan valores diferentes. Esto hace que medir la elevaci\u00f3n acumulada en una excursi\u00f3n no sea una medida demasiado fiable. Este efecto no es demasiado problem\u00e1tico en las excursiones con bajadas y subidas largas y constantes. Por contra, con excursiones con zonas llanas y terreno irregular el efecto se acumula m\u00e1s.<\/p>\n<p>Todos estos c\u00e1lculos dan pie a programar otro script para calcular subidas donde podemos definir unas <em>cronoescaladas<\/em>, subidas que se van repitiendo en los entrenamientos y se podr\u00e1 extraer informaci\u00f3n para comparar. De ello hablaremos en un pr\u00f3ximo post&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estaba haciendo un peque\u00f1o script en NodeJS para extraer la informaci\u00f3n de mis tracks de BTT. Esta es la informaci\u00f3n b\u00e1sica que se puede extraer: $ node xml_stats.js ..\/rutesgps\/montnegreopenmtb_32.gpx track: ..\/rutesgps\/montnegreopenmtb_32.gpx 2020-11-05 29.4 Km (dist\u00e0ncia total) 02:25:40 (temps en moviment) 02:58:01 (temps total) 1121 m (desnivell acumulat) 886 m (desnivell acumulat amb filtre) 143m -&gt; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[300,324,320,192],"tags":[],"_links":{"self":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/1001"}],"collection":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1001"}],"version-history":[{"count":1,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/1001\/revisions"}],"predecessor-version":[{"id":1002,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/1001\/revisions\/1002"}],"wp:attachment":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}