# 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!