<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sports on Fr-ISO</title>
    <link>https://www.evers-senne.de/tags/sports/</link>
    <description>Recent content in Sports on Fr-ISO</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>blog@evers-senne.de (Friso)</managingEditor>
    <webMaster>blog@evers-senne.de (Friso)</webMaster>
    <lastBuildDate>Sun, 13 Apr 2025 17:26:56 +0200</lastBuildDate>
    
        <atom:link href="https://www.evers-senne.de/tags/sports/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Gps Tracks @ home</title>
      <link>https://www.evers-senne.de/post/tech/gps-tracks/</link>
      <pubDate>Sun, 13 Apr 2025 17:26:56 +0200</pubDate>
      <author>blog@evers-senne.de (Friso)</author>
      <guid>https://www.evers-senne.de/post/tech/gps-tracks/</guid>
      
        <description>&lt;h2 id=&#34;sources&#34;&gt;Sources&lt;/h2&gt;
&lt;p&gt;Using Garmin devices to record my outdoor activities, all tracks are send to Garmin-cloud via the app GarminConnect automatically. This is very convenient and cloud-to-cloud connections forward the tracks to Strava and Komoot.
Long before the Bluetooth-Cloud-Automagic-era I already used a Garmin Edge 710  with USB connectivity only. As a Linux user I read out the  TCX files from the mass storage, stored it locally and sent it to Garmin years later for completeness.&lt;/p&gt;
&lt;h2 id=&#34;archiving-at-home&#34;&gt;Archiving at home&lt;/h2&gt;
&lt;p&gt;But I cannot accept Garmin as a long-term archive for all data of highly personal value. My track archive dates back until 2008 and I do not wont to loose it some day just because a company goes out of business or the like.
So digging in the web I found a script to download activities from Garmin as GPX files. For many years this helped me to just download and sync to my own Nextcloud.
The smart watches also can record health data and the &lt;em&gt;Body Battery&lt;/em&gt; is one of the highlights for me. So the next logical step was to also archive these data at home.
The library &lt;a href=&#34;https://github.com/cyberjunky/python-garminconnect&#34;&gt;python-garminconnect&lt;/a&gt; offers a complete API to Garmin cloud and to store time series data, InfluxDB seems to be a good choice.
So a few lines of glue code later, a new script was born to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download health data and send to my local InfluxDB,&lt;/li&gt;
&lt;li&gt;Download activities, save as local GPX files and let Nextcloud client sync to my self-hosted Nextcloud.&lt;/li&gt;
&lt;li&gt;A decent backup strategy (3-2-1) shall help to not loose data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;visualizing-1&#34;&gt;Visualizing #1&lt;/h2&gt;
&lt;p&gt;Nextcloud&amp;rsquo;s plugin &lt;em&gt;Gpxpod&lt;/em&gt; can scan directories and visualize all GPX/TCX files on a map. Because all geo data was already synced to Nextcloud, this was a no-brainer and worked very well for many years.
But when the plugin architecture changes, it seems that all geo-filtering was done in the frontend (the browser) and in my setup this totally crashed. Selecting a directory with only hundreds of tracks results in too many of track points. Sending these to the browser need time and bandwidth, filtering for the current viewport of the map in the browser needs memory and CPU. So my browser tab gets stuck and then crashed.&lt;/p&gt;
&lt;h2 id=&#34;visualizing-2&#34;&gt;Visualizing #2&lt;/h2&gt;
&lt;p&gt;Recently I stumbled upon &lt;a href=&#34;https://github.com/Freika/dawarich&#34;&gt;Dawarich&lt;/a&gt; (German for &amp;ldquo;I was there&amp;rdquo;). May that solve my geo-visualization problem?
20 Minutes later I had the Postgres, Dawarich and the Sidekick container up and running (Redis was already available) and imported the first tracks. The visualization and filters are really great. But with a million points it ran into the same problem, maybe in the backend but with the result of being unusable.&lt;/p&gt;
&lt;h2 id=&#34;data-filtering-and-simplification&#34;&gt;Data filtering and simplification&lt;/h2&gt;
&lt;p&gt;So it seems I have to work on the data. First approach was, to separate files in directories based on their area. Reason: There are far more files from my home region than from other regions e.g. vacation trips.
But the later are more interesting. So I added a geo-filter to my script from above:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;taking the first track point of each file and compare to predefined geo-bounding boxes,&lt;/li&gt;
&lt;li&gt;put all tracks from &amp;ldquo;home&amp;rdquo; into a directory,&lt;/li&gt;
&lt;li&gt;put all tracks from &amp;ldquo;fomer home&amp;rdquo; into a second directory,&lt;/li&gt;
&lt;li&gt;Put all other tracks in a third directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For Nextcloud / Gpxpod this helped to focus on other regions, but rendering was still very slow. My home region was still to large in number of files / track points.&lt;/p&gt;
&lt;p&gt;Next step: Sub-sampling. The original tracks have a sampling rate of 1 to a few seconds, resulting in very precise recordings. But for coarse visualization this is not required. Fiddling with &lt;em&gt;gpsbabel&lt;/em&gt; on the commandline I decided that filtering according to a cross track error of 10 meters (&amp;quot;-x simplify, crosstrack,error=0.01k&amp;quot;) reduces the number of track points to 5 % and only very sharp turns get distorted. The visual quality in Dawarich and Gpxpod is totally sufficient.&lt;/p&gt;
&lt;p&gt;To add this step to my sync script I chose the lazy way: Just calling for gpsbabel as an external command.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;
&lt;p&gt;Getting all data from Garmin semi-automatically (start the script), filtering tracks geographically by bounding boxes and simplifying to 5 % of data is required to visualize &amp;gt;2000 tracks in Gpxpod and Dawarich. But the result is great: I can see all my activities, even those in my home region interactively on a single map!&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>My sports and activities</title>
      <link>https://www.evers-senne.de/post/sports/activities_overview/</link>
      <pubDate>Sun, 23 Feb 2025 00:00:00 +0000</pubDate>
      <author>blog@evers-senne.de (Friso)</author>
      <guid>https://www.evers-senne.de/post/sports/activities_overview/</guid>
      
        <description>&lt;h2 id=&#34;cannot-live-without&#34;&gt;Cannot live without&lt;/h2&gt;
&lt;p&gt;Over the years I developed a passion for multiple outdoor sports, and I took care to find matching sports for summer and winter. When living in north of Germany, road biking was sufficient: Summer and winter are nearly equally cold/warm, terrain nearly flat.
But when moving to the Black Forrest, a hill region in south of Germany, more opportunities came along and the winters are not so nice for biking. So today it splits as follows.&lt;/p&gt;
&lt;h2 id=&#34;summer&#34;&gt;Summer&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Mountain Biking in the Black Forrest and sometimes in the Alps is very much fun. Long up-hills, fast or technical down-hills, not using shaped trails, the terrain is always challenging enough for me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Road biking is like flying, at least in comparison to mountain biking. But the climbs can also be long and exausting.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hiking, if all else fails, in the Black Forrest or in the real mountains. This is the activity which is most compatible with other people.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sometimes: Climbing, Via Ferrata. Doing this to infrequently, the power and technique always fades away over the weeks and month of other sports.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Every now and then: Running, Trail Running. In summer this only fills the last gaps in my calendar.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;winter&#34;&gt;Winter&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ski Mountaineering, as a tour guide and trainer in DAV, I organize multiple events and trainings per year.&lt;/li&gt;
&lt;li&gt;Running is my replacement for cycling, when it is too cold out side. As long as there is no snow in the trails, I prefer trail running. But more or less flat around the lake is at least acceptable.&lt;/li&gt;
&lt;li&gt;Some times: Downhill skiiing. Riding down pistes only happens once or twice a year. Going off-piste is preferred.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;tracking-not-trecking&#34;&gt;Tracking, not trecking&lt;/h2&gt;
&lt;p&gt;Since 2008 I use Garmin devices to record nearly all sportive movements. This gives a nice history of tracks and statistics, from home region and all trips.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://connect.garmin.com/&#34;&gt;Garmin:&lt;/a&gt; &lt;em&gt;jfevers&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.strava.com/athletes/37666215&#34;&gt;Strava:&lt;/a&gt; &lt;em&gt;Jan-Friso Evers-Senne&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Visualizing tracks my self is a different story, will published later.&lt;/p&gt;
</description>
      
    </item>
    
  </channel>
</rss>
