Aller au contenu principal

Analyse de Session

Exploitez la puissance de l'IA de Guido pour analyser vos sessions de conduite.

Vue d'Ensemble d'une Session

Après avoir importé vos données, Guido génère automatiquement une analyse complète :

const analysis = await client.sessions.analyze(sessionId);

console.log('Analyse:', {
totalLaps: analysis.summary.totalLaps,
bestLap: analysis.summary.bestLap,
averageLap: analysis.summary.averageLap,
consistency: analysis.summary.consistency, // en %
});

Métriques Principales

Temps au Tour

// Tous les temps au tour
const laps = analysis.laps;

laps.forEach((lap, index) => {
console.log(`Tour ${index + 1}: ${lap.time}s`);
});

// Meilleur tour
const bestLap = analysis.bestLap;
console.log('Meilleur tour:', bestLap.time);
console.log('Secteurs:', bestLap.sectors);

Analyse par Secteur

// Comparaison des secteurs
const sectorAnalysis = analysis.sectors;

sectorAnalysis.forEach((sector) => {
console.log(`Secteur ${sector.id}:`);
console.log(` Meilleur: ${sector.best}s`);
console.log(` Moyen: ${sector.average}s`);
console.log(` Variance: ${sector.variance}s`);
});

Constance

const consistency = analysis.consistency;

console.log('Constance globale:', consistency.overall);
console.log('Variation temps au tour:', consistency.lapTimeVariance);
console.log('Points d\'amélioration:', consistency.improvementAreas);

Analyse Détaillée

Données Télémétrie

const telemetry = await client.sessions.getTelemetry(sessionId, lapIndex);

// Données disponibles
console.log('Vitesse:', telemetry.speed);
console.log('Freinage:', telemetry.brake);
console.log('Accélération:', telemetry.throttle);
console.log('Angle volant:', telemetry.steering);
console.log('Position GPS:', telemetry.gps);

Visualisations

// Générer des graphiques
const charts = await client.sessions.generateCharts(sessionId, {
types: ['speed', 'brake', 'throttle', 'steering'],
laps: [bestLapIndex, currentLapIndex],
});

// URLs des graphiques générés
console.log('Graphique vitesse:', charts.speed.url);
console.log('Graphique freinage:', charts.brake.url);

Comparaison de Tours

Comparer avec le Meilleur Tour

const comparison = await client.laps.compare({
baseLap: bestLapId,
compareLaps: [lap1Id, lap2Id, lap3Id],
});

comparison.results.forEach((result) => {
console.log(`Tour ${result.lapNumber}:`);
console.log(` Différence: ${result.delta}s`);
console.log(` Points de perte:`);
result.lossAreas.forEach((area) => {
console.log(` - ${area.location}: ${area.timeLost}s`);
});
});

Ideal Lap

// Calculer le tour idéal (meilleur de chaque secteur)
const idealLap = await client.laps.calculateIdeal(sessionId);

console.log('Temps idéal possible:', idealLap.time);
console.log('Gain potentiel:', idealLap.improvement);
console.log('Secteurs utilisés:', idealLap.sectors);

Coach IA

Recommandations Automatiques

const coaching = await client.ai.getRecommendations(sessionId);

coaching.insights.forEach((insight) => {
console.log(`📍 ${insight.location}`);
console.log(` ${insight.message}`);
console.log(` Gain potentiel: ${insight.potentialGain}s`);
console.log(` Priorité: ${insight.priority}`);
});

Exemple de Sortie

📍 Virage 7 (La Source)
Freinage trop précoce de 15m
Gain potentiel: 0.3s
Priorité: Haute

�� Sortie Virage 12 (Pouhon)
Réaccélération tardive, throttle à 70% au lieu de 85%
Gain potentiel: 0.2s
Priorité: Moyenne

Export de Données

// Export en CSV
await client.sessions.export(sessionId, {
format: 'csv',
output: './exports/session-analysis.csv',
});

// Export JSON complet
await client.sessions.export(sessionId, {
format: 'json',
output: './exports/session-full.json',
includeRawData: true,
});

Prochaines Étapes