Skip to main content

StageProfileAnalyzer - Rally Stage - Citroen C4 WRC

Rally stage characterization from pacenote data (no telemetry required)

Sample Data

AttributeValue
Sourcemotec
Categoryrally_stage
File/Users/mhild/src/durandom/racing/b4racing/packages/source-motec/tests/fixtures/telemetry-NGP-Car_5-Citroen_C4_WRC-Stage_230-20260122_130000.ld

Available Channels: brake, clutch, distance, gear, lap_distance_pct, lat_accel, long_accel, pitch, position_x, position_y, position_z, raw_LB.brakeDiskLayerTemp, raw_LB.brakeDiskTemp, raw_LB.brakeWear, raw_LB.currentTyreSegment, raw_LB.dampingForce, raw_LB.deflectionVelocity, raw_LB.helperSpringActive, raw_LB.innerBumpDeflectionVelocity, raw_LB.outerBumpDeflectionVelocity, raw_LB.rollbarForce, raw_LB.segmentData[0].temperature, raw_LB.segmentData[1].temperature, raw_LB.segmentData[2].temperature, raw_LB.segmentData[3].temperature, raw_LB.segmentData[4].temperature, raw_LB.segmentData[5].temperature, raw_LB.segmentData[6].temperature, raw_LB.segmentData[7].temperature, raw_LB.springForce, raw_LB.strutForce, raw_LB.temperature, raw_LB.treadTemperature, raw_LB.wear[0], raw_LB.wear[1], raw_LB.wear[2], raw_LB.wear[3], raw_LB.wear[4], raw_LB.wear[5], raw_LB.wear[6], raw_LB.wear[7], raw_LF.brakeDiskLayerTemp, raw_LF.brakeDiskTemp, raw_LF.brakeWear, raw_LF.currentTyreSegment, raw_LF.dampingForce, raw_LF.deflectionVelocity, raw_LF.helperSpringActive, raw_LF.innerBumpDeflectionVelocity, raw_LF.outerBumpDeflectionVelocity, raw_LF.rollbarForce, raw_LF.segmentData[0].temperature, raw_LF.segmentData[1].temperature, raw_LF.segmentData[2].temperature, raw_LF.segmentData[3].temperature, raw_LF.segmentData[4].temperature, raw_LF.segmentData[5].temperature, raw_LF.segmentData[6].temperature, raw_LF.segmentData[7].temperature, raw_LF.springForce, raw_LF.strutForce, raw_LF.temperature, raw_LF.treadTemperature, raw_LF.wear[0], raw_LF.wear[1], raw_LF.wear[2], raw_LF.wear[3], raw_LF.wear[4], raw_LF.wear[5], raw_LF.wear[6], raw_LF.wear[7], raw_RB.brakeDiskLayerTemp, raw_RB.brakeDiskTemp, raw_RB.brakeWear, raw_RB.currentTyreSegment, raw_RB.dampingForce, raw_RB.deflectionVelocity, raw_RB.helperSpringActive, raw_RB.innerBumpDeflectionVelocity, raw_RB.outerBumpDeflectionVelocity, raw_RB.rollbarForce, raw_RB.segmentData[0].temperature, raw_RB.segmentData[1].temperature, raw_RB.segmentData[2].temperature, raw_RB.segmentData[3].temperature, raw_RB.segmentData[4].temperature, raw_RB.segmentData[5].temperature, raw_RB.segmentData[6].temperature, raw_RB.segmentData[7].temperature, raw_RB.springForce, raw_RB.strutForce, raw_RB.temperature, raw_RB.treadTemperature, raw_RB.wear[0], raw_RB.wear[1], raw_RB.wear[2], raw_RB.wear[3], raw_RB.wear[4], raw_RB.wear[5], raw_RB.wear[6], raw_RB.wear[7], raw_RF.brakeDiskLayerTemp, raw_RF.brakeDiskTemp, raw_RF.brakeWear, raw_RF.currentTyreSegment, raw_RF.dampingForce, raw_RF.deflectionVelocity, raw_RF.helperSpringActive, raw_RF.innerBumpDeflectionVelocity, raw_RF.outerBumpDeflectionVelocity, raw_RF.rollbarForce, raw_RF.segmentData[0].temperature, raw_RF.segmentData[1].temperature, raw_RF.segmentData[2].temperature, raw_RF.segmentData[3].temperature, raw_RF.segmentData[4].temperature, raw_RF.segmentData[5].temperature, raw_RF.segmentData[6].temperature, raw_RF.segmentData[7].temperature, raw_RF.springForce, raw_RF.strutForce, raw_RF.temperature, raw_RF.treadTemperature, raw_RF.wear[0], raw_RF.wear[1], raw_RF.wear[2], raw_RF.wear[3], raw_RF.wear[4], raw_RF.wear[5], raw_RF.wear[6], raw_RF.wear[7], raw_distanceToEnd, raw_driveLineLocation, raw_engineCoolantHeatState.temperatu, raw_engineTemperature, raw_footbrakePressure, raw_handbrakePressure, raw_raceTime, raw_radiatorCoolantHeatState.tempera, raw_steering, raw_vecAngularAccelerationCar.x, raw_vecAngularAccelerationCar.y, raw_vecAngularAccelerationCar.z, raw_vecAngularVelocityCar.x, raw_vecAngularVelocityCar.y, raw_vecAngularVelocityCar.z, raw_vecAvgAngularAccelerationCar.x, raw_vecAvgAngularAccelerationCar.y, raw_vecAvgAngularAccelerationCar.z, raw_vecAvgLinearAccelerationCar.x, raw_vecAvgLinearAccelerationCar.y, raw_vecAvgLinearAccelerationCar.z, raw_vecRelativeAngularAcceleration.x, raw_vecRelativeAngularAcceleration.y, raw_vecRelativeAngularAcceleration.z, raw_vecRelativeAngularVelocity.x, raw_vecRelativeAngularVelocity.y, raw_vecRelativeAngularVelocity.z, raw_vecRelativeLinearAcceleration.x, raw_vecRelativeLinearAcceleration.y, raw_vecRelativeLinearAcceleration.z, raw_vecRelativeLinearVelocity.x, raw_vecRelativeLinearVelocity.y, raw_vecRelativeLinearVelocity.z, roll, rpm, speed, speed_kph, speed_mph, steering, suspension_fl_travel, suspension_fr_travel, suspension_rl_travel, suspension_rr_travel, throttle, time, tire_pressure_fl, tire_pressure_fr, tire_pressure_rl, tire_pressure_rr, tire_temp_fl, tire_temp_fr, tire_temp_rl, tire_temp_rr, track_pct, velocity_x, velocity_y, velocity_z, vert_accel, yaw


Configuration

SettingValue
Slice Typelap
Metadata OnlyTrue

When to Use

  • User asks about stage characteristics before driving
  • User wants to understand stage difficulty or technicality
  • User asks about corner distribution or density
  • User wants to compare stage profiles
  • User asks 'what kind of stage is this?'

Key Options

OptionDescription
technical_threshold_cornersCorners needed within window to mark as technical (default: 3)
technical_threshold_distance_mWindow size for technical detection (default: 500m)
fast_section_gap_mGap between corners to mark as fast section (default: 1000m)

Sample Output

Subjects Analyzed: 1

Default

{
"metrics": [
{
"subject_id": "e240d0597bb22cc0",
"track_name": "Rally School Stage Tarmac",
"stage_length_m": 2200,
"surface_type": "Tarmac",
"corners": {
"total_count": 26,
"density_per_km": 11.818181818181817,
"avg_segment_length_m": 82.92,
"min_segment_length_m": 12.0,
"max_segment_length_m": 156.0,
"density_formatted": "11.8/km"
},
"flags": {
"tightens_count": 0,
"opens_count": 0,
"narrows_count": 0,
"wide_out_count": 0,
"caution_count": 0,
"dont_cut_count": 0,
"cut_count": 0,
"uphill_count": 0,
"downhill_count": 21,
"flat_count": 0,
"fast_count": 0,
"slow_count": 0,
"long_count": 0,
"short_count": 0
},
"sections": {
"technical_section_count": 4,
"fast_section_count": 0,
"technical_distance_m": 1785,
"fast_distance_m": 0,
"technical_pct": 100.0
},
"character": {
"technical_rating": 1.0,
"speed_rating": 0.0,
"danger_rating": 0.0,
"elevation_rating": 1.0,
"technical_formatted": "100%",
"speed_formatted": "0%",
"danger_formatted": "0%"
},
"stage_length_km": 2.2
}
],
"metadata": {
"analyzer": "stage_profile",
"title": "Stage Profile",
"subjects_analyzed": 1
}
}

Metrics Summary

MetricValue
Subject: e240d0597bb22cc0N/A

Example Calls

What kind of stage is Chirdonhead

analyze(analyzers='stage_profile', track='Chirdonhead')

Analyzes stage character without needing any telemetry

How technical is this Finnish stage

analyze(analyzers='stage_profile', track='Ouninpohja')

Returns technical rating, corner density, and section breakdown


Generated from b4racing.analysis.analyzers.stage_profile.StageProfileAnalyzer