PageSourceSearch

https://colby.id.au/assets/js/c725859d.af230b05.js

js colby.id.au collected 2026-10-05 07:09:29 UTC 4,632 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkpc_thoughts=self.webpackChunkpc_thoughts||[]).push([[1256],{28453:(e,t,a)=>{a.d(t,{R:()=>o,x:()=>s});var n=a(96540);const r={},i=n.createContext(r);function o(e){const t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(i.Provider,{value:t},e.children)}},60248:e=>{e.exports=JSON.parse('{"permalink":"/combining-gpx-and-hrm-files","source":"@site/blog/2012-01-18-combining-gpx-and-hrm-files.md","title":"Combining GPX and HRM Files into TCX Format","description":"Polar RCX5","date":"2012-01-18T21:12:00.000Z","tags":[{"inline":true,"label":"awk","permalink":"/tags/awk"},{"inline":true,"label":"gpx","permalink":"/tags/gpx"},{"inline":true,"label":"hrm","permalink":"/tags/hrm"},{"inline":true,"label":"polar","permalink":"/tags/polar"},{"inline":true,"label":"strava","permalink":"/tags/strava"},{"inline":true,"label":"tcx","permalink":"/tags/tcx"}],"readingTime":12.67,"hasTruncateMarker":true,"authors":[{"name":"Paul Colby","url":"https://github.com/pcolby","socials":{"github":"https://github.com/pcolby","linkedin":"https://www.linkedin.com/in/paulcolby1/","Qt":"https://forum.qt.io/user/paul-colby","x":"https://x.com/twitStirrer"},"imageURL":"https://github.com/pcolby.png","key":"paul","page":null}],"frontMatter":{"authors":"paul","date":"2012-01-18T21:12","image":"assets/PolarRCX5.gif","slug":"combining-gpx-and-hrm-files","tags":["awk","gpx","hrm","polar","strava","tcx"],"title":"Combining GPX and HRM Files into TCX Format"},"unlisted":false,"prevItem":{"title":"Windows gpx2tcx Batch File","permalink":"/windows-gpx2tcx-batch-file"},"nextItem":{"title":"PHP binding for Apache Qpid\'s Messaging API","permalink":"/php-binding-for-apache-qpids-messaging-api"}}')},73476:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/PolarRCX5-7ccc1dad62bda31719255d02404e7729.gif"},79330:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>p});var n=a(60248),r=a(74848),i=a(28453);const o={authors:"paul",date:"2012-01-18T21:12",image:"assets/PolarRCX5.gif",slug:"combining-gpx-and-hrm-files",tags:["awk","gpx","hrm","polar","strava","tcx"],title:"Combining GPX and HRM Files into TCX Format"},s=void 0,l={authorsImageUrls:[void 0]},p=[];function c(e){const t={a:"a",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{class:"blog-post-image",children:(0,r.jsx)(t.img,{alt:"Polar RCX5",src:a(73476).A+"",width:"136",height:"198"})}),"\n",(0,r.jsxs)(t.p,{children:["Three of the most common file formats for recording exercise data are\n",(0,r.jsx)(t.a,{href:"http://www.polar.fi/files/Polar_HRM_file%20format.pdf",children:"HRM"}),", ",(0,r.jsx)(t.a,{href:"http://www.topografix.com/gpx.asp",children:"GPX"})," and\n",(0,r.jsx)(t.a,{href:"http://developer.garmin.com/schemas/tcx/v2/",children:"TCX"}),".  HRM is an older proprietary, but open, standard created and\nmaintained by ",(0,r.jsx)(t.a,{href:"http://www.polar.fi/",children:"Polar"}),", which deals with heartrate information, as well as speed, cadence, altitude\nand power.  GPX is another older standard which deals primary with geolocation data from GPS receivers.  TCX is a newer\nformat that effectively supports all that HRM and GPX support combined, and then some."]}),"\n",(0,r.jsxs)(t.p,{children:["My shiny new ",(0,r.jsx)(t.a,{href:"http://www.polar.fi/en/products/maximize_performance/running_multisport/RCX5",children:"Polar RCX5"})," (which I really\nlike) happens to export data (via the\n",(0,r.jsx)(t.a,{href:"http://www.polar.fi/en/support/downloads/Polar_WebSync_Software?product_id=35252&category=downloads",children:"Polar WebSync"}),"\napplication) as separate HRM and GPX files (for legacy reasons, no doubt).  Whereas ",(0,r.jsx)(t.a,{href:"http://www.strava.com/",children:"Strava"}),"\n(which I also really like) supports GPX and TCX imports (amoung others).  So of course, I can import my GPX files from\nthe RCX5 to Strava pretty easily, however, that will provide Strava with 
1no heartrate nor cadence data, since the GPX\nformat does not support those."]}),"\n",(0,r.jsx)(t.p,{children:"So the question I faced was: how to combine the GPX and HRM files from my RCX5 to a single TCX file?  Since I found no\nappropriate tools readily available, I wrote my own ;)"})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.