Example (fictional) table, lookup temp based on RPM
Code:
Index 0 1 2 3 4 5 6
RPM 400 800 1200 1600 2000 2400 2800
DegC 10 20 30 40 50 60 70
Say the rpm was 1100, the PCM will return the "looked up and interpolated" DegC value as follows:
Index = Trunc((1100-400)/400) = 1.0
Interp = Frac((1100-400)/400) = 0.75
Temp = DegC[Index]+((DegC[Index+1]-DegC[Index])*Interp) = 20+((30-20)*0.75) = 27.5
Because the interpolation always occurs based on Index and Index+1 it makes sense to log data in the maps the way EFILive does. EFILive is basically doing a reverse interpolation.
For the "average" approach to be correct, the PCM would need to use a more complicated interpolation function. One that could figure out the average value between the column breaks. The PCM does not do that, so plotting maps (or histograms) that way is not as accurate.
Regards
Paul