Files
training/scripts/README.md
T
2025-11-13 21:11:40 +01:00

262 lines
6.2 KiB
Markdown

# TCX Parser - Instruktioner
## Översikt
`parse_tcx.py` är ett script som extraherar all viktig träningsdata från stora TCX-filer och skapar kompakta JSON-sammanfattningar.
**Storlek:**
- TCX-fil: ~1.3 MB
- JSON-fil: ~8 KB
- **Besparing: 99.4% mindre!**
## Installation
Scripten kräver bara Python 3 och Bash (ingen extra paket).
```bash
# Gör scripten körbara (behöver bara göras en gång)
chmod +x scripts/parse_tcx.py
chmod +x scripts/parse_all_tcx.sh
chmod +x scripts/quick_parse.sh
```
### Optional: Lägg till alias i din shell
För extra bekvämlighet, lägg till detta i din `~/.bashrc` eller `~/.zshrc`:
```bash
# Lägg till i ~/.bashrc eller ~/.zshrc
source ~/Documents/training/scripts/aliases.sh
```
Efter detta kan du använda korta kommandon som `parse-all` istället för `bash scripts/parse_all_tcx.sh`.
## Användning
### 🚀 Rekommenderat: Automatisk parsning av alla filer
**Enklast - kör detta efter varje träning:**
```bash
./scripts/parse_all_tcx.sh
```
eller (om du laddat alias):
```bash
parse-all
```
Detta script:
- ✅ Hittar alla TCX-filer i `Data/training/`
- ✅ Parsar bara filer som inte redan har JSON-motsvarigheter
- ✅ Uppdaterar JSON om TCX-filen är nyare
- ✅ Ger en fin sammanfattning av vad som gjordes
**Output:**
```
🔍 Söker efter TCX-filer i Data/training
📝 Parsar ny fil: activity_20922168380.tcx
✓ Redan parsad: activity_12345678901.tcx
════════════════════════════════════════
📊 Sammanfattning
════════════════════════════════════════
Total TCX-filer funna: 2
Redan parsade: 1
Nyligen parsade: 1
✅ Klart! 1 fil(er) parsade.
```
### ⚡ Snabbparsning av senaste filen
Bara vill parsa den senaste TCX-filen?
```bash
./scripts/quick_parse.sh
```
eller:
```bash
parse-latest
```
### 🎯 Parsa en specifik fil
```bash
python3 scripts/parse_tcx.py Data/training/activity_20922168380.tcx
```
eller:
```bash
parse-tcx Data/training/activity_20922168380.tcx
```
**Output:**
```
Parsar Data/training/activity_20922168380.tcx...
✓ Klar! Sammanfattning sparad i: Data/training/activity_20922168380.tcx.json
Snabb sammanfattning:
Sport: Biking
Datum: 2025-11-07
Tid: 29:42
Distans: 11.51 km
Genomsnittshastighet: 23.3 km/h
Genomsnittspuls: 161.2 bpm
Max puls: 184 bpm
Genomsnittseffekt: 106.0 W
```
## Data som extraheras
JSON-filen innehåller:
### 1. Grundläggande info
- Sport (Biking, Running, Swimming, etc.)
- Datum och tid
- Total tid, distans, hastighet
- Kalorier
### 2. Pulsdata
- Genomsnitt, min, max puls
- **Pulszonfördelning (%)** - mycket viktigt för analys!
- Zon 1: <110 bpm (Återhämtning)
- Zon 2: 110-129 bpm (Grundträning)
- Zon 3: 129-147 bpm (Tempo)
- Zon 4: 147-166 bpm (Högt tempo)
- Zon 5: >166 bpm (Maximum)
### 3. Effektdata (om tillgänglig)
- Genomsnitt, min, max watt
### 4. Kadansdata
- Genomsnitt, min, max rpm
### 5. Höjddata
- Min, max höjd
- Total stigning
### 6. Varvdata
- Detaljerad data för varje varv/intervall
## Använda JSON-filen för analys
När du vill att jag ska analysera ett träningspass:
**Istället för att be mig läsa den stora TCX-filen:**
```
"Kan du analysera activity_20922168380.tcx?" ❌
```
**Be mig läsa JSON-filen:**
```
"Kan du analysera activity_20922168380.tcx.json?" ✅
```
### Fördelar:
- **99.4% mindre fil** = mycket snabbare
- **Färre tokens** = sparar kostnader
- **Alla viktiga data** finns kvar
- **Lättare att läsa** för både människa och AI
## Exempel: Komplett workflow
### Workflow 1: Automatiskt (Rekommenderat)
1. **Exportera träning från Garmin/Strava/Zwift** som TCX
2. **Spara i Data/training/**
```bash
mv ~/Downloads/activity_12345.tcx Data/training/
```
3. **Parsa alla nya filer**
```bash
parse-all # eller: ./scripts/parse_all_tcx.sh
```
4. **Be Claude om analys**
```
"Kan du analysera Data/training/activity_12345.tcx.json?"
```
### Workflow 2: Snabb (för senaste filen)
1. **Exportera och spara TCX-fil**
```bash
mv ~/Downloads/activity_*.tcx Data/training/
```
2. **Parsa senaste filen**
```bash
parse-latest # eller: ./scripts/quick_parse.sh
```
3. **Be Claude om analys** - filnamnet visas i output
### Workflow 3: Manuellt (specifik fil)
1. **Exportera träning från Garmin/Strava/Zwift** som TCX
2. **Spara i Data/training/**
```bash
mv ~/Downloads/activity_12345.tcx Data/training/
```
3. **Parsa TCX-filen**
```bash
parse-tcx Data/training/activity_12345.tcx
```
4. **Be om analys**
```
"Kan du analysera Data/training/activity_12345.tcx.json?"
```
## Uppdatera pulszoner
Om din maxpuls ändras (t.ex. ny maxpuls 190 bpm), uppdatera zonerna i scriptet:
Öppna `scripts/parse_tcx.py` och ändra raderna ~107-111:
```python
# Gamla zoner (baserat på maxpuls 184 bpm)
zone1 = sum(1 for hr in hr_data if hr < 110)
zone2 = sum(1 for hr in hr_data if 110 <= hr < 129)
zone3 = sum(1 for hr in hr_data if 129 <= hr < 147)
zone4 = sum(1 for hr in hr_data if 147 <= hr < 166)
zone5 = sum(1 for hr in hr_data if hr >= 166)
# Nya zoner (exempel för maxpuls 190 bpm)
zone1 = sum(1 for hr in hr_data if hr < 114) # <60%
zone2 = sum(1 for hr in hr_data if 114 <= hr < 133) # 60-70%
zone3 = sum(1 for hr in hr_data if 133 <= hr < 152) # 70-80%
zone4 = sum(1 for hr in hr_data if 152 <= hr < 171) # 80-90%
zone5 = sum(1 for hr in hr_data if hr >= 171) # >90%
```
Eller använd dynamiska zoner baserat på uppmätt maxpuls - kontakta mig om du vill ha den funktionen!
## Felsökning
**Problem:** `Fel: Filen X hittades inte`
- Kolla att sökvägen är korrekt
- Använd relativ sökväg från repository-roten
**Problem:** `Ingen aktivitet hittades i TCX-filen`
- TCX-filen kan vara korrupt
- Kontrollera att den är exporterad korrekt från din enhet
**Problem:** Script kraschar
- Rapportera felet så fixar jag det!
## Framtida förbättringar
Möjliga tillägg:
- [ ] Auto-detektera maxpuls och beräkna dynamiska zoner
- [ ] Markdown-export istället för JSON
- [ ] Automatisk uppdatering av träningsdagbok
- [ ] Jämförelse mellan flera pass
- [ ] Graf-generering (puls över tid, etc.)
## Support
Vid problem eller frågor, kontakta Claude Code!