More cloose look to the problem.
Here are input data around maximum speed point, extracted from RR (latitude, longitude, altitude columns omitted). They look like GPS data, read from Hero 5 camera with 18Hz frequency. Video frame rate in my case is 50Hz, but can be 100Hz or eve more. That means, that for speedomeeter these data must be interpolated anyway. But for peak speed there is no real need for interpolation, with 18 Hz data frequency it's enough precise to just pick up maximum value from input data in peak area.
Code:
RR input data
Time Speed (m/s)
1694506432.894000 28.867000
1694506432.949556 28.911000
1694506433.005111 28.951000
1694506433.060667 29.042000
1694506433.116222 28.940000
1694506433.171778 28.825000
1694506433.227333 28.776000
Maximum speed 29.042000 m/s is 104.5512 KPH at time 1694506433.060667, which means Tuesday, September 12, 2023 11:13:53.060 AM GMT+03:00 DST. Fast control shws, that speedomeeter shows maximum speed 104.24 KPH (speedometer allows only use of integer or two decimal digits), but the peak speed gauge shows 104.512. So, here is quite a big difference by 0.3 KPH and peak speed gauge data is much closer to to initial data.
Using these data for deeper manual check is quite inconvenient, due to need to manually synchronise 18Hz Unix timestamps with 50Hz video timestamps and do additional speed units conversion. Therefore I did the same thing with data .csv extracted from DashWare.
Code:
DashWare input data
Timestamp Speed (KPH)
317.600000 103.773600
317.650000 103.989600
317.700000 104.162400
317.750000 104.508000
317.800000 104.536800
317.850000 104.328000
317.900000 104.025600
317.950000 103.752000
318.000000 103.608000
These data are synchronised with wideo with 20Hz frequency and therefore are already interpolated, maximum speed is there 104.5368, difference with raw GPS data is less than 0.02 KPH. Peak speed gauge just picks up maximum value for time 317.800 sec and shows 104.537 KPH whch is clearly correct number.
Speedometer output for the same time interval shows different speed values.
Code:
Speedomeeter indication
Timestamp Speed (KPH)
317.600 104.19
317.620 104.23
317.640 104.21
317.660 104.22
317.680 104.21
317.700 104.19
317.720 104.20
317.740 104.21
317.760 104.20
317.780 104.14
317.800 104.12
317.820 104.05
317.840 103.98
Highest speed shown is 104.22 KPH at time 317.620 (vs input data 104.5368 at 317.800). So speed value is different from input data, even in points 317.600, 317.700, 317.800 sec, where input data are present and where is no need for interplation. For timestamp 317.600 the difference between input data and speedomeeter indication is over 0.5 KPH. In addition the position of maximum speed point is shifted by almost 0.2 sec from 317.80 to 317.62 sec.
That all shows, that there is something wrong with speedometer indication - these values do not match input data. I used Trans 135 speedomeeter, but with couple of other speedometers I got the same result.
How can it be fixed?