Update README.md
This commit is contained in:
32
README.md
32
README.md
@@ -1,6 +1,6 @@
|
|||||||
# 🏃♂️ GPX Jogging Dashboard
|
# 🏃♂️ Jogging Dashboard
|
||||||
|
|
||||||
An interactive Python Dash app to visualize, analyze, and explore your jogging or running sessions recorded as GPX files.
|
An interactive Python Dash app to visualize, analyze, and explore your jogging or running sessions recorded as GPX/FIT files.
|
||||||
|
|
||||||
<p align="left">
|
<p align="left">
|
||||||
<img src="WebAppGPXDashboard.jpg" alt="Description" width="800">
|
<img src="WebAppGPXDashboard.jpg" alt="Description" width="800">
|
||||||
@@ -13,7 +13,8 @@ An interactive Python Dash app to visualize, analyze, and explore your jogging o
|
|||||||
- **Info Banner** with total distance, duration, and average pace
|
- **Info Banner** with total distance, duration, and average pace
|
||||||
- **Interactive Map View** with route trace and start/stop markers
|
- **Interactive Map View** with route trace and start/stop markers
|
||||||
- **Elevation Profile** with relative height and gradient fill
|
- **Elevation Profile** with relative height and gradient fill
|
||||||
- **Speed Over Time** plot with smoothing and average line
|
- **Speed Over Time** plot with smoothing and average line
|
||||||
|
- **Heart Rate Over Time** plot with smoothing and average line (if .fit)
|
||||||
- **Deviation from Mean Speed** to see pacing consistency
|
- **Deviation from Mean Speed** to see pacing consistency
|
||||||
- **Pace Bar Chart** showing per-kilometer pace breakdown
|
- **Pace Bar Chart** showing per-kilometer pace breakdown
|
||||||
|
|
||||||
@@ -22,9 +23,11 @@ An interactive Python Dash app to visualize, analyze, and explore your jogging o
|
|||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
app.py # Main Dash application
|
gpx_app.py # Main Dash application for gpx files
|
||||||
gpx_files/ # Folder for storing GPX files
|
gpx_files/ # Folder for storing GPX files
|
||||||
requirements.txt # Required Python packages (TODO!)
|
fit_app.py # Main Dash application for fit files
|
||||||
|
fit_files/ # Folder for storing FIT files
|
||||||
|
requirements.txt # Required Python packages
|
||||||
README.md # This file
|
README.md # This file
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -35,8 +38,8 @@ README.md # This file
|
|||||||
### 1. Clone the repository
|
### 1. Clone the repository
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/yourusername/gpx-jogging-dashboard.git
|
git clone https://github.com/yourusername/jogging-dashboard.git
|
||||||
cd gpx-jogging-dashboard
|
cd jogging-dashboard
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Install dependencies
|
### 2. Install dependencies
|
||||||
@@ -55,13 +58,15 @@ pip install -r requirements.txt
|
|||||||
- plotly
|
- plotly
|
||||||
- pandas
|
- pandas
|
||||||
- numpy
|
- numpy
|
||||||
|
- scipy
|
||||||
- gpxpy
|
- gpxpy
|
||||||
|
- fitparse
|
||||||
|
|
||||||
|
|
||||||
### 3. Run the app
|
### 3. Run the app
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python app.py
|
python fit_app.py
|
||||||
```
|
```
|
||||||
|
|
||||||
Then open your browser and go to:
|
Then open your browser and go to:
|
||||||
@@ -71,8 +76,8 @@ Then open your browser and go to:
|
|||||||
|
|
||||||
## Uploading Your GPX File
|
## Uploading Your GPX File
|
||||||
|
|
||||||
1. Export your activity (e.g., from Strava, Garmin, etc.) as a `.gpx` file
|
1. Export your activity (e.g., from Strava, Garmin, etc.) as a `.gpx` or `.fit` file
|
||||||
2. Place the file into the `gpx_files/` directory
|
2. Place the file into the `gpx_files/` or `fit_files/` directory
|
||||||
3. Select it via the dropdown in the dashboard
|
3. Select it via the dropdown in the dashboard
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -82,21 +87,22 @@ Then open your browser and go to:
|
|||||||
- **Dash** (by Plotly) for building the UI and graphs
|
- **Dash** (by Plotly) for building the UI and graphs
|
||||||
- **Pandas** for data wrangling
|
- **Pandas** for data wrangling
|
||||||
- **Plotly Graph Objects & Express** for advanced visuals
|
- **Plotly Graph Objects & Express** for advanced visuals
|
||||||
|
- **Scipy** for smoothing the data lines
|
||||||
- **GPXPy** for parsing `.gpx` files
|
- **GPXPy** for parsing `.gpx` files
|
||||||
- **Numpy** for vectorized math and smoothing
|
- **Numpy** for vectorized math and smoothing
|
||||||
|
- **FitParse** for parsing `.fit` files
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Example GPX File
|
## Example GPX File
|
||||||
|
|
||||||
You can test the dashboard by placing any valid `.gpx` file in the `gpx_files/` directory. Make sure it contains track points with elevation and time data.
|
You can test the dashboard by either placing any valid `.gpx` file in the `gpx_files/` or any valid `.fit` file in the `fit_files/` directory. Make sure it contains track points with elevation and time data.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## To Do / Ideas
|
## To Do / Ideas
|
||||||
|
|
||||||
- [ ] Heart rate support if present in GPX
|
- [X] Heart rate support if present in FIT
|
||||||
- [ ] Export graphs as images
|
|
||||||
- [ ] Export as PDF report
|
- [ ] Export as PDF report
|
||||||
- [ ] Multi-run comparison
|
- [ ] Multi-run comparison
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user