Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.71 KB | None | 0 0
  1.         private void ExactNoise(List<TmData> data)
  2.         {
  3.             for (int i = 0; i < data.Count - 1; i++)
  4.             {
  5.                 if (float.IsNaN(data[i].FuelLevel) || float.IsNaN(data[i].Noise))
  6.                     continue;
  7.  
  8.                 double sum = 0;
  9.                 int streak=0;
  10.                 var time = data[i].Timestamp;
  11.                 while ( (data[i+streak].Timestamp-time)<TimeSpan.FromMinutes(5) && Math.Abs(sum)<5.0)
  12.                 {
  13.                     streak++;
  14.                     if (i+streak >= data.Count || float.IsNaN(data[i+streak].Noise))
  15.                     {
  16.                         streak--;
  17.                         break;
  18.                     }
  19.                     sum += (data[i-1+streak].Noise + data[i+streak].Noise) * (data[i + streak].Timestamp - data[i-1+streak].Timestamp).TotalMinutes / 2;
  20.                    
  21.                 }
  22.                 data[i].FilterNoise = 0;
  23.                 if (Math.Abs(sum/(data[i + streak].Timestamp - time).TotalMinutes)<1.0) continue;
  24.                 int l = i;
  25.                 int r = i + streak;
  26.                 int sgn = Math.Sign(sum);
  27.                 while (l > 0 && Math.Sign(data[l].Noise) == sgn) l--;
  28.                 while (r < data.Count && Math.Sign(data[l].Noise) == sgn) r++; //debug все плохо если слив
  29.                 //fill from r to l
  30.                 var newsum = data[r-1].SmoothFuelTime - data[l].SmoothFuelTime;
  31.                 if (Math.Abs(newsum) < 5.0) continue;
  32.                 for (int k = l; k < r; k++)
  33.                 {
  34.                     data[k].FilterNoise = newsum;
  35.                     data[k].Cuted = true;
  36.                 }
  37.                 i = r;
  38.             }
  39.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement