Parcourir la source

Correct timeStep in case of missing values (#6526)

* Correct timeStep in case of missing values

* Comment
Ben RUBSON il y a 9 ans
Parent
commit
6495ba155a
1 fichiers modifiés avec 9 ajouts et 4 suppressions
  1. 9 4
      public/app/core/time_series2.ts

+ 9 - 4
public/app/core/time_series2.ts

@@ -115,6 +115,15 @@ export default class TimeSeries {
       currentValue = this.datapoints[i][0];
       currentTime = this.datapoints[i][1];
 
+      // Due to missing values we could have different timeStep all along the series
+      // so we have to find the minimum one (could occur with aggregators such as ZimSum)
+      if (i>0) {
+        var previousTime = this.datapoints[i-1][1];
+        if (!this.stats.timeStep || currentTime - previousTime < this.stats.timeStep) {
+          this.stats.timeStep = currentTime - previousTime;
+        }
+      }
+
       if (currentValue === null) {
         if (ignoreNulls) { continue; }
         if (nullAsZero) {
@@ -145,10 +154,6 @@ export default class TimeSeries {
       result.push([currentTime, currentValue]);
     }
 
-    if (this.datapoints.length >= 2) {
-      this.stats.timeStep = this.datapoints[1][1] - this.datapoints[0][1];
-    }
-
     if (this.stats.max === -Number.MAX_VALUE) { this.stats.max = null; }
     if (this.stats.min === Number.MAX_VALUE) { this.stats.min = null; }