Created a new Heart-Rate-Pixel Map Plot, updated the Plot arangement, added elevation info in the hover-info on the main map course.
This commit is contained in:
31
README.md
31
README.md
@@ -32,11 +32,21 @@ This SVG can then be overlaid on another image (Strava‑inspired).
|
||||
### Pixel Maps
|
||||
Three additional pixel-accurate route maps rendered below the main map, inspired by [Sam's approach](https://youtu.be/PA8d4u5T4BM?t=240) of drawing GPS routes pixel by pixel:
|
||||
|
||||
- **Heatmap** — draws the route pixelwise and counts how often each pixel was crossed. Segments you run frequently glow brighter (dark → orange → white). Supports two modes toggled via a switch below the plot:
|
||||
- *Single run* — shows only the currently selected run, but the color intensity is still derived from the full regional count grid so you can see how often you have been at each spot across all your runs
|
||||
- *All runs (Region)* — overlays all runs from the same city/region (detected automatically from the filename, e.g. `2025-07-30_FRA_Run_6.68Km.fit` → region `FRA`). This is the default view.
|
||||
- **Elevation Map** — the route is color-coded segment by segment based on the gradient between consecutive GPS points: red = climbing, grey = flat, green = descending. Intensity scales with steepness. GPS noise is removed via smoothing before the gradient is calculated, giving accurate up/down statistics in the title.
|
||||
- **Pace Map** — each segment is colored by your running pace at that location: blue = fast, red = slow. A horizontal colorbar below the plot shows the pace scale. Outliers (stops, GPS jumps) are filtered automatically.
|
||||
- **Heatmap** — draws the route pixelwise and counts how often each pixel was crossed.
|
||||
Segments you run frequently glow brighter (dark → orange → white). Toggle below the plot:
|
||||
- *Single run* — shows only the selected run, color intensity derived from the full regional count grid
|
||||
- *All runs (Region)* — overlays all runs from the same city/region (default). Region is detected
|
||||
automatically from the filename, e.g. `2025-07-30_FRA_Run_6.68Km.fit` → region `FRA`
|
||||
- **Elevation Map** — route color-coded per segment by gradient: red = climbing, grey = flat,
|
||||
green = descending. GPS noise removed via smoothing before gradient calculation.
|
||||
Horizontal colorbar: green (max descent) → grey (flat) → red (max climb)
|
||||
- **Pace Map** — each segment colored by running pace: blue = fast, red = slow.
|
||||
Outliers (stops, GPS jumps) filtered automatically.
|
||||
Horizontal colorbar: red (slow) → blue (fast)
|
||||
- **Heart Rate Map** — each segment colored by heart rate at that location:
|
||||
dark red = low BPM (easy) → white = max BPM (full effort).
|
||||
Horizontal colorbar: dark red (min BPM) → white (max BPM).
|
||||
Falls back gracefully to a grey route with info text for GPX files without HR data.
|
||||
|
||||
#### City/Region detection from filename
|
||||
The heatmap automatically groups runs by city code extracted from the filename at position `[1]` after splitting by `_`:
|
||||
@@ -48,6 +58,13 @@ The heatmap automatically groups runs by city code extracted from the filename a
|
||||
|
||||
Use any consistent 2–6 letter code in your filenames to group runs by region.
|
||||
|
||||
#### Responsive layout
|
||||
The four Pixel Maps are arranged in a 2×2 grid on wide screens (desktop/tablet).
|
||||
On screens narrower than 768 px (smartphones) the grid collapses to a single column
|
||||
so each plot uses the full screen width and remains readable.
|
||||
Scroll zoom is enabled on all four plots (`scrollZoom: True`) — use the mouse wheel
|
||||
on desktop or two-finger drag on mobile to pan after zooming in.
|
||||
|
||||
---
|
||||
|
||||
## Project Structure
|
||||
@@ -167,11 +184,13 @@ YYYY-MM-DD_CITYCODE_Run_DISTANCEKm.fit
|
||||
- [X] Pixel Heatmap — frequency map across multiple runs per region
|
||||
- [X] Pixel Elevation Map — per-segment gradient coloring on the route
|
||||
- [X] Pixel Pace Map — per-segment pace coloring on the route
|
||||
- [X] Pixel Heart Rate Map — per-segment BPM coloring on the route
|
||||
- [X] Elevation gain calculation calibrated against Strava
|
||||
- [X] Calories burned estimation via HR-based Karvonen formula
|
||||
- [X] GPX file support in addition to FIT
|
||||
- [X] Responsive 2×2 grid layout for Pixel Maps (collapses to single column on mobile)
|
||||
- [ ] Export as PDF report
|
||||
- [ ] Multi-run comparison overlay
|
||||
- [ ] Pinch-to-zoom on Pixel Maps for mobile devices
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user