Convert your Gyrosco.pe travels to GPX files

Overview

gyroscope2gpx

This little python joint will do you a favor of taking your "Travel" export from Gyroscope (https://gyrosco.pe) and turn it into a bunch of daily GPX files. Maybe you need this for some reason!

Usage!

  1. Clone this repository and install dependencies
    1. Must use Python3
    2. pip install -r requirements.txt
  2. Go to https://gyrosco.pe/export/
  3. Export your "Travels" csv file
  4. Run the script (help below)
    1. example: ./gyroscope2gpx myexport.csv
usage: gyroscope2gpx.py [-h] [-o OUTPUTDIR] [--debug] inputfile

Reads a 'Travels' CSV export from Gyroscope and converts to daily GPX files.

positional arguments:
  inputfile             csv file from Gyroscope

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUTDIR, --outputdir OUTPUTDIR
                        (optional) directory to output GPX files, defaults to ./gyroscope2gpx_output
  --debug

Important stuff to be aware of

There are a few caveats with how this data exports from Gyroscope and is thusly processed:

  1. Gyroscope does not include time data for each point in a segment, only start and end times for the segment
  2. Because of #1, this little script assumes that the points are equidistantly spaced in time across that interval.
  3. This means that the track will indicate you traveled at constant velocity throughout that time interval (impressive, if not astronomically impossible)
  4. There is no elevation data, so we use a third party library to load it, which requires an internet connection and a few gigabytes of data to download, depending on where you've been in the world (only once!)

Because of these caveats, these tracks are probably not well used for say, uploading to Strava, or something. However, they might be reasonably useful for geotagging your 35mm photos (my use case!)

If you'd like to see something change in the data provided by Gyroscope, try [email protected] :)

Subsequent executions, updating data

If a GPX file already exists in the output directory, it will be skipped. If you need to overwrite a file for any reason, delete it yourself and run the script.

Elevation data

Elevation data is provided by the SRTM.py library, which has this to say:

On every elevation requested the library will:

  1. Check if the SRTM file is stored locally
  2. If not -- download it from NASA servers and store locally (in ./.srtmcache/)
  3. Parse elevations from it

This could mean quite a bit of data needs to be downloaded, so beware (my export needed about 2.29gb of elevation data!)

I could make this part optional, I guess? Create an issue!

Follow me on Gyrosco.pe:

https://gyrosco.pe/ngordon779/

License

This software is licensed under the GNU GPLv3. See file COPYING.

You might also like...
Convert text with ANSI color codes to HTML or to LaTeX.

Convert text with ANSI color codes to HTML or to LaTeX.

It is a Blender Tool which can convert the Object Data Attributes in face corner to the UVs or Vertex Color.

Blender_ObjectDataAttributesConvertTool It is a Blender Tool which can convert the Object Data Attributes in face corner to the UVs or Vertex Color. D

Convert Photoshop curves (acv) to xmp presets for Lightroom

acv2xmp Convert Photoshop curves (acv) to Lightroom preset (xmp) acv2xmp.py Basic command prompt that relies on standard library only and can be used

UFDR2DIR - A script to convert a Cellebrite UFDR to the original file structure

UFDR2DIR A script to convert a Cellebrite UFDR to it's original file and directo

Scripts to convert the Ted-MDB corpora into the formats for DISRPT shared task and the converted corpora

Scripts to convert the Ted-MDB corpora into the formats for DISRPT shared task and the converted corpora.

Render your templates using .txt files

PizzaX About Run Run tests To run the tests, open your terminal and type python tests.py (WIN) or python3 tests.py (UNX) Using the function To use the

Purge your likes and wall comments from VKontakte. Set yourself free from your digital footprint.

vk_liberator Regain liberty in the cruel social media world. This program assists you with purging your metadata from Russian social network VKontakte

switching computer? changing your setup? You need to automate the download of your current setup? This is the right tool for you :incoming_envelope:

🔮 setup_shift(SS.py) switching computer? changing your setup? You need to automate the download of your current setup? This is the right tool for you

 🗽 Like yarn outdated/upgrade, but for pip. Upgrade all your pip packages and automate your Python Dependency Management.
🗽 Like yarn outdated/upgrade, but for pip. Upgrade all your pip packages and automate your Python Dependency Management.

pipupgrade The missing command for pip Table of Contents Features Quick Start Usage Basic Usage Docker Environment Variables FAQ License Features Upda

Comments
  • Issues running the script on macOS 12.4 (MBP M1)

    Issues running the script on macOS 12.4 (MBP M1)

    I'm getting the following error message when trying to run the script:

    python3 gyroscope2gpx.py gyroscope-travels-export.csv 
    INFO:__main__:Loading input csv...
    /opt/homebrew/lib/python3.9/site-packages/dateparser/date_parser.py:35: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
      date_obj = stz.localize(date_obj)
    INFO:__main__:Done.
    INFO:__main__:Grouping Gyroscope data into segments...
    INFO:__main__:Done.
    Traceback (most recent call last):
      File "/Downloads/gyroscope2gpx-master/gyroscope2gpx.py", line 127, in <module>
        main()
      File "/Downloads/gyroscope2gpx-master/gyroscope2gpx.py", line 111, in main
        filename = os.path.join(args.outputdir,basename)
      File "/opt/homebrew/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/posixpath.py", line 76, in join
        a = os.fspath(a)
    TypeError: expected str, bytes or os.PathLike object, not NoneType
    

    Any obvious thing I'm missing? Can I contribute with any more information to sort it out?

    opened by forsgren 1
Owner
nick g
mostly python these days, but I have a lot of knives in storage
nick g
A Python script to convert your favorite TV series into an Anki deck.

Ankiniser A Python3.8 script to convert your favorite TV series into an Anki deck. How to install? Download the script with git or download it manualy

null 37 Nov 3, 2022
Convert temps in your Alfred search bar

Alfred Temp Converter Convert temps in your Alfred search bar. Download Here Usage: temp 100f converts to Celsius, Kelvin, and Rankine. temp 100c conv

Justin Hamilton 4 Apr 11, 2022
An awesome script to convert the University Of Oviedo web calendar to Google or Outlook calendars.

autoUniCalendar Un script en Python para convertir el calendario de la intranet de la Universidad de Oviedo en un calendario de Outlook o Google Calen

Bimo99B9 14 Sep 28, 2022
Convert-Decimal-to-Binary-Octal-and-Hexadecimal

Convert-Decimal-to-Binary-Octal-and-Hexadecimal We have a number in a decimal number, and we have to convert it into a binary, octal, and hexadecimal

Maanyu M 2 Oct 8, 2021
Convert a .vcf file to 'aa_table.tsv', including depth & alt frequency info

Produce an 'amino acid table' file from a vcf, including depth and alt frequency info.

Dan Fornika 1 Oct 16, 2021
A simple python script to convert Rubber Ducky payloads into AutoHotKey scripts

AHKDuckyReplacer A simple python script to convert Rubber Ducky payloads into AutoHotKey scripts. I have also added a sample payload for testing. I wi

Krizsan0596 5 Sep 28, 2022
A script that convert WiiU BotW mods to Switch

UltimateBoTWConverter A script that convert WiiU BotW mods to Switch. It uses every resource I could find under the sun that allows for conversion, wi

null 11 Nov 8, 2022
dta Convert Dict To Attributes!

dta (Dict to Attributes) dta is very small dict (or json) to attributes converter. It is only have 1 files and applied to every python versions.

Rukchad Wongprayoon 0 Dec 31, 2021
Convert .1pux to .csv

1PasswordConverter Convert .1pux to .csv 1Password uses this new export format .1pux, I assume stands for 1 Password User eXport. As of right now, 1Pa

Shayne Hartford 7 Dec 16, 2022
Convert Roman numerals to modern numerals and vice-versa

Roman Numeral Conversion Utilities This is a utility module for converting from and to Roman numerals. It supports numbers upto 3,999,999, using the v

Fictive Kin 1 Dec 17, 2021