mirror of
https://github.com/sstent/FitTrack_ReportGenerator.git
synced 2026-01-28 01:51:39 +00:00
This commit introduces the initial version of the FitTrack Report Generator, a FastAPI application for analyzing workout files. Key features include: - Parsing of FIT, TCX, and GPX workout files. - Analysis of power, heart rate, speed, and elevation data. - Generation of summary reports and charts. - REST API for single and batch workout analysis. The project structure has been set up with a `src` directory for core logic, an `api` directory for the FastAPI application, and a `tests` directory for unit, integration, and contract tests. The development workflow is configured to use Docker and modern Python tooling.
33 lines
1.1 KiB
Markdown
33 lines
1.1 KiB
Markdown
# GPX File Support in GarminSync
|
|
|
|
GarminSync now supports processing GPX files with accurate distance calculation using the Haversine formula.
|
|
|
|
## Features
|
|
|
|
- Parses GPX 1.1 files with extended Garmin TrackPoint extensions
|
|
- Calculates total distance using Haversine formula
|
|
- Extracts elevation data including gain/loss
|
|
- Processes heart rate and cadence data
|
|
- Calculates activity duration
|
|
|
|
## Supported Metrics
|
|
|
|
| Metric | Description | Data Source |
|
|
|--------|-------------|-------------|
|
|
| Distance | Total activity distance | Calculated from GPS coordinates |
|
|
| Duration | Activity duration | Start/end timestamps |
|
|
| Elevation | Min, max, gain, loss | ele tags in track points |
|
|
| Heart Rate | Max and average | gpx:hr extension |
|
|
| Cadence | Average cadence | gpx:cad extension |
|
|
|
|
## Implementation Details
|
|
|
|
The GPX parser:
|
|
1. Uses XML parsing to extract track points
|
|
2. Calculates distance between points using Haversine formula
|
|
3. Processes elevation data to determine gain/loss
|
|
4. Handles time zone conversions for timestamps
|
|
5. Gracefully handles missing data points
|
|
|
|
For more details, see the [gpx_parser.py](garminsync/parsers/gpx_parser.py) file.
|