When I started running in 2012 I looked for an app I could use on my phone to track it. It happened that Endomondo was on special offer then, so I installed it. It did the job pretty well. I do like all the statistics it could give me, although it seemed to suffer from some GPS glitches that could result in crazy speeds now and again. At the start of this year I switched to Strava as I knew more people using that and it has some nice features. I am even paying for it to get access to more features. Last week I heard Endomondo is shutting down. It seems Under Armour also own MyFitnessPal and are favouring that in future. They provide a way to migrate your data across, but that is no use to me.
This is my running over the years I used Endomondo. It is the sort of data I would like to keep and be able to do more things with.
They did provide the option to download all your data and I have done this. It comes as a set of JSON files, These are fairly simple to process in Python.
As the data was spread across multiple files I had to process them all. I only really wanted some of the header data rather than all the tracking points, but that is available too. I had to loop through the dictionaries as some files had an extra 'name' one at the start, so I could not just use the index number. I created a list of dictionaries which ended up with 866 items.
I had logged activities such as walking, cycling and swimming, but I was mainly interested in those for running. I realised it would be easier to filter and process those as a Pandas dataframe. The conversion is very simple. This is part of why I like Python so much. I do have to look up how to filter and create group totals as I have not done too much of this sort of programming. Pandas is very powerful and can do a lot of what you might do with a database.
I tried to plot it as a bar chart, but I can only seem to get it without spaces between the bars. If I do not set a width I get really thin lines that do not all show up and fractional values do not work. I may experiment more with that. The totals came out slightly different to what Endomondo showed, but that does not matter too much. Once you have the data loaded you can do what you want with it.
I am open to suggestions on alternative ways to get these results as I may have missed out on simpler options. Even as it stands my code only takes seconds to process the data.
I see Strava also offer data download, but I have not looked into that yet. We give our data to all sorts of services and it is always good to see ways to get it out again.