Giter Site home page Giter Site logo

suuntoapp2gpx's Introduction

This script converts the suunto android app track data to gpx or geojson files

A suunto sports watch can record track data, but the suunto app does not have a share or export function to create gpx files from that data.

UPDATE:

  • the Suunto App now has the possibility to save GPX data from a track, so this script may be obsolete now
  • Steps:
    1. record your activity as usual
    2. open activity in suunto app, choose the 3-dot menu, then ‘Save route’
    3. Give route a name and click Save
    4. Close the activity and go to the routes
    5. Find the saved route and click the share icon
    6. Share the link to your browser.
    7. A GPX file will be saved

This script takes a zip file from the android app, typically stored at <Internal Storage>/Android/data/com.stt.suunto/files/smlzip/ and converts the samples taken by the watch and stored in JSON files to a GPX file.

To get the zip-files from the android device to a machine that runs python I use syncthing but any other file transfer tool would do just fine.

Alternative methods to reach the same result:

  • export the activity from the suunto app as ‘garmin fit’ file from the menu and use gpsbabel to convert to a gpx file. This method is possibly simpler to use, but harder to automate as the fit files need to be generated manually each time after an activity.

suuntoapp2gpx's People

Contributors

mrvdb avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

suuntoapp2gpx's Issues

Read attributes in other samples than GPS data

Apart from samples with location information, such as:

    {
      "Attributes": {
        "suunto/sml": {
          "Sample": {
            "GPSAltitude": 91.4,
            "Latitude": 0.31337,
            "Longitude": 0.31337,
            "UTC": "2019-12-30T11:08:45.000+00:00"
          }
        }
      },
      "Source": "suunto-191910002448",
      "TimeISO8601": "2019-12-30T12:08:45.000+01:00"
    },

There are other Samples, containing

  • EHPE - Estimated Horizontal Position Error, EVPE - Estimated Vertical Position Error, NumberOfSatellites, Satellite5BestSNR - what is basically quality of GPS/GNSS signal
  • AbsPressure, Altitude, Cadence, Distance, Power, SeaLevelPressure, Speed, Temperature, VerticalSpeed - which is data coming from other sensors
  • BatteryCharge, BatteryCurrent, BatteryVoltage

It would be nice to include the middle point. The challange here is that they are reported with different timestamps than location data.

And readings from heart beat monitor:

    {
      "Attributes": {
        "suunto/sml": {
          "R-R": {
            "IBI": [
              392,
              410,
              295,
              403,
              322,
              364,
              277,
              335,
              391,
              435
            ]
          }
        }
      },
      "Source": "suunto-191910002448",
      "TimeISO8601": "2019-12-30T12:08:45.580+01:00"
    },

Where IBI stands for "Inter Beat Interval.

The challange here, is that there are multiple samples reported on the same timestamp, which probably needs to be concatenated - as then sum of IBI is close to difference in timestamps. Anyway - IBI data have quite a lot of variation which suggests that this data needs to be cleaned before calculating real BPM.

Data could be then put in either of:

Please bear in mind, that Garmin extension is more restrictive on allowed values:

  • cad values 0-254
  • hr values 1-255

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.