getBaselineWindowSmoothAverage method

int? getBaselineWindowSmoothAverage(
  1. List<int?> list,
  2. int index,
  3. int window
)

Implementation

int? getBaselineWindowSmoothAverage(List<int?> list, int index, int window) {
  int start = index - window;
  int stop = index + window;

  int divisor = window * 2 + 1;
  int value = 0;
  for (int i = start; i <= stop; i++) {
    if (list[i] == 0 || (list[i]! - list[i + 1]!).abs() > 30) {
      divisor--;
    } else {
      value += list[i]!;
    }
  }
  if (divisor != 0) {
    return (value / divisor).truncate();
  } else {
    return list[index];
  }
}