GNU General Public License v3.0

项目介绍

dodo-saba/fit2gpx 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 GNU General Public License v3.0 许可证,目前获得 140 个 Star、27 次 Fork。

仓库全名
dodo-saba/fit2gpx
开源许可证
GNU General Public License v3.0
Star 数
140
Fork 数
27
未关闭 Issue
4

README 摘要

fit2gpx -- convert .fit to .gpx This is a simple Python library for converting .FIT files to .GPX files. It also includes tools to convert Strava data downloads in bulk to GPX. FIT is a GIS data file format used by Garmin GPS sport devices and Garmin software GPX is an XML based format for GPS tracks. When: Use Cases 1. You need to convert .FIT files to pandas dataframe (e.g. for data analysis) 2. You need to…

完整内容见 GitHub 原始 README 或本页 。

常见问题

fit2gpx 用什么语言开发?

主要使用 Python 编写,采用 GNU General Public License v3.0 许可证,目前有 140 个 Star。

fit2gpx 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 fit2gpx 的源码?

可以直接克隆仓库:git clone https://github.com/dodo-saba/fit2gpx.git,默认分支为 main;安装与运行步骤见仓库 README。

fit2gpx 最近还在维护吗?

仓库最近一次更新为 2025年6月4日,当前有 4 个未关闭 Issue;Star 数为 140,可作为社区活跃度的参考。

关于

A simple Python library for converting .FIT files to .GPX files. It also includes tools to convert Strava data downloads in bulk to GPX.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
198
价值分
92
活跃状态
活跃

README

made-with-python Documentation Status GitHub license

Buy Me A Coffee

fit2gpx – convert .fit to .gpx

This is a simple Python library for converting .FIT files to .GPX files. It also includes tools to convert Strava data downloads in bulk to GPX.

  • FIT is a GIS data file format used by Garmin GPS sport devices and Garmin software
  • GPX is an XML based format for GPS tracks.

When: Use Cases

  1. You need to convert .FIT files to pandas dataframe (e.g. for data analysis)
  2. You need to convert .FIT files to .GPX
  3. You need to fix files downloaded from Strava by converting the raw .FIT files to their .GPX counterparts

Why

Motivation

I decided to create this package after spending a few hours searching for a simple solution to quickly convert hundreds of FIT files to GPX. I needed to do this as GIS applications do not parse FIT files. Whilst a few solutions existed, they are command line scripts which offered very little flexibility.

Relevance to Strava
  • Pre-GPDR, you could bulk export all your Strava activities as GPX files.
  • Post-GDPR, you can export an archive of your account. Whilst this includes much more data, activity GPS files are now downloaded in their original file format (eg. GPX or FIT format, some gzipped, some not) and named like 2500155647.gpx, 2500155647.gpx.gz, 2500155647.fit, and 2500155647.fit.gz.
  • How to bulk export you Strava Data

Overview

The fit2gpx module provides two converter classes:

  • Converter: used to convert a single or multiple FIT files to pandas dataframes or GPX files
  • StravaConverter: used to fix all the Strava Bulk Export problems in three steps:
    1. Unzip GPX and FIT files
    2. Add activity metadata to existing GPX files
    3. Convert FIT files to GPX including activity metadata from Strava)

Use Case 1: FIT to pd.DataFrame

Step 1: Import module and create converter object

from fit2gpx import Converter

conv = Converter()

Step 2: Convert FIT file to 2 pd.DataFrame: fit_to_dataframes()

df_lap, df_point = conv.fit_to_dataframes(fname='3323369944.fit')
  • df_laps: information per lap: lap number, start time, total distance, total elapsed time, max speed, max heart rate, average heart rate
  • df_points: information per track point: longitude, latitude, altitude, timestamp, heart rate, cadence, speed, power, temperature
    • Note the ‘enhanced_speed’ and ‘enhanced_altitude’ are also extracted. Where overlap exists with their default counterparts, values are identical. However, the default or enhanced speed/altitude fields may be empty depending on the device used to record (detailed information).

Use Case 2: FIT to GPX

Import module and create converter object

from fit2gpx import Converter

conv = Converter()          # create standard converter object

Use case 2.1: convert a single FIT file: fit_to_gpx()

gpx = conv.fit_to_gpx(f_in='3323369944.fit', f_out='3323369944.gpx')

Use case 2.2: convert many FIT files to GPX files: fit_to_gpx_bulk()

conv.fit_to_gpx_bulk(dir_in='./project/activities/', dir_out='./project/activities_convert/')

Use Case 3: Strava Bulk Export Tools (FIT to GPX conversion)

Copy the below code, adjusting the input directory (DIR_STRAVA), to fix the Strava Bulk Export problems discussed in the overview.

from fit2gpx import StravaConverter

DIR_STRAVA = 'C:/Users/dorian-saba/Documents/Strava/'

# Step 1: Create StravaConverter object
# - Note: the dir_in must be the path to the central unzipped Strava bulk export folder
# - Note: You can specify the dir_out if you wish. By default it is set to 'activities_gpx', which will be created in main Strava folder specified.

strava_conv = StravaConverter(
    dir_in=DIR_STRAVA
)

# Step 2: Unzip the zipped files
strava_conv.unzip_activities()

# Step 3: Add metadata to existing GPX files
strava_conv.add_metadata_to_gpx()

# Step 4: Convert FIT to GPX
strava_conv.strava_fit_to_gpx()

Command line interface

You can install this package using pip:

pip install --user --upgrade .

And then you can run the fit2gpx command to convert a FIT file to GPX:

fit2gpx 3323369944.fit 3323369944.gpx

Or convert a directory of FIT files to a directory of GPX files:

fit2gpx ./project/activities ./project/activities_convert

Or convert a Strava export directory to a directory of GPX files:

fit2gpx export_23749537 export_23749537_gpx

You can also read the FIT file from standard input and/or write the GPX file to standard output:

fit2gpx - 3323369944.gpx < 3323369944.fit
fit2gpx 3323369944.fit - > 3323369944.gpx

To see the help, run:

fit2gpx -h

Dependencies

pandas

pandas is a Python package that provides fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive.

gpxpy

gpxpy is a simple Python library for parsing and manipulating GPX files. It can parse and generate GPX 1.0 and 1.1 files. The generated file will always be a valid XML document, but it may not be (strictly speaking) a valid GPX document.

fitdecode

fitdecode is a rewrite of the fitparse module allowing to parse ANT/GARMIN FIT files.

评论

暂无评论