Browse Source

Better performance

Kenneth van Ewijk 11 years ago
parent
commit
7f1f9d3373
3 changed files with 21 additions and 71 deletions
  1. 3 4
      LangsteZomerPeriode.java
  2. 4 5
      MaximaleRegenPeriode.java
  3. 14 62
      StatisticsCalculator.java

+ 3 - 4
LangsteZomerPeriode.java

@@ -2,12 +2,12 @@
 import java.util.ArrayList;
 
 public class LangsteZomerPeriode extends Grootheid{
-    private ArrayList<Double> list;
+    private ArrayList<Short> list;
     private Periode zomerPeriode;
     
     //constructor
     public LangsteZomerPeriode(Measurement measurement1, ArrayList<Measurement> measurement2){
-        list = new ArrayList<Double>();
+        list = new ArrayList<Short>();
         zomerPeriode = new Periode("Zomer");
         updateRecent(measurement1);
         updatePeriod(measurement2);
@@ -19,7 +19,6 @@ public class LangsteZomerPeriode extends Grootheid{
     }
     public void updatePeriod(ArrayList<Measurement> measurement2){
         createList(measurement2);
-        calculateMaxMin(list);
         
         int[] index = StatisticsCalculator.langsteZomersePeriode(list);
         zomerPeriode = Calculator.timeStampToPeriode( measurement2.get(index[0]).getDateStamp(), measurement2.get(index[1]).getDateStamp());
@@ -43,7 +42,7 @@ public class LangsteZomerPeriode extends Grootheid{
         
         for(Measurement ms : measurement2)
         {
-            list.add(ms.getOutsideTemp());
+            list.add(ms.getRawOutsideTemp());
         }
     }
 }

+ 4 - 5
MaximaleRegenPeriode.java

@@ -2,11 +2,11 @@
 import java.util.ArrayList;
 
 public class MaximaleRegenPeriode extends Grootheid{
-    private ArrayList<Double> list;
+    private ArrayList<Short> list;
     
     //constructor
     public MaximaleRegenPeriode(Measurement measurement1, ArrayList<Measurement> measurement2){
-        list = new ArrayList<Double>();
+        list = new ArrayList<Short>();
         updateRecent(measurement1);
         updatePeriod(measurement2);
     }
@@ -17,11 +17,10 @@ public class MaximaleRegenPeriode extends Grootheid{
     }
     public void updatePeriod(ArrayList<Measurement> measurement2){
         createList(measurement2);
-        calculateMaxMin(list);
     }
     
     public void display(){
-        GUIboard.writePageToMatrix("Totale regenval", StatisticsCalculator.maximaleRegenPeriode(list) + "", "");
+        GUIboard.writePageToMatrix("Totale regenval", Calculator.regenmeter(StatisticsCalculator.maximaleRegenPeriode(list)) + "", "");
     }
     
     public void displayGraph()
@@ -38,7 +37,7 @@ public class MaximaleRegenPeriode extends Grootheid{
         
         for(Measurement ms : measurement2)
         {
-            list.add(ms.getRainRate());
+            list.add(ms.getRawRainRate());
         }
     }
 }

+ 14 - 62
StatisticsCalculator.java

@@ -216,11 +216,12 @@ public class StatisticsCalculator {
         index[1] = index2*1440;
         return index;
     }
-    public static double maximaleRegenPeriode(ArrayList<Double> array)
+    
+    public static short maximaleRegenPeriode(ArrayList<Short> array)
     {
-        double totaleRegen = 0;
+        short totaleRegen = 0;
         
-        for(double db : array)
+        for(short db : array)
         {
             totaleRegen += db;
         }
@@ -228,20 +229,20 @@ public class StatisticsCalculator {
         return totaleRegen;
     }
     
-    public static int[] langsteZomersePeriode(ArrayList<Double> array)
+    public static int[] langsteZomersePeriode(ArrayList<Short> array)
     {
       
         ArrayList<Double> maxTempDag = new ArrayList<Double>();
         int i = 0;
-        double maxTemp = 0;
+        short maxTemp = 0;
         
         //Bereken de maximale temperatuur per dag.
-        for(double db : array)
+        for(short db : array)
         {
            i++;
            if(i%1440==0)
            {
-               maxTempDag.add(maxTemp);
+               maxTempDag.add( (double) maxTemp);
                maxTemp = 0;
            }
            
@@ -310,64 +311,15 @@ public class StatisticsCalculator {
     
     public static int[] langsteTempStijgingPeriode(ArrayList<Double> array)
     {
-        ArrayList<Double> maxTempDag = new ArrayList<Double>();
-        ArrayList<Integer> periodeLengteList = new ArrayList<Integer>();
-        ArrayList<Integer> periodeStartList = new ArrayList<Integer>();
-        
         int[] index = new int[2];
         int index1 = 0;
         int index2 = 0;
-        int indexStart = 0;
-        int indexEind = 1;
-        int periodeLengte = 0;
-        int i = 0;
-        double maxTemp = 0; 
         
-        //berekent maximale temp. per dag
-        for(double db : array)
-        {
-           i ++;
-           if(i % 1440 == 0)
-           {
-               maxTempDag.add(maxTemp);
-               maxTemp = 0;
-           }
-           
-           if(db > maxTemp) 
-           {
-               maxTemp = db;
-           }    
-        }        
-        
-        for(int t = 1; t < maxTempDag.size(); t ++)  //zoekt naar periodes van temp.stijgingen
-        { 
-            if (maxTempDag.get(t) > maxTempDag.get(t - 1))
-            {                
-                indexEind ++;
-            }
-            
-            if (maxTempDag.get(t) <= maxTempDag.get(t - 1))
-            {
-               periodeLengte = indexEind - indexStart;
-               periodeLengteList.add(periodeLengte);
-               periodeStartList.add(indexStart);
-               indexStart = indexEind;
-            }
-        } 
-        
-        Integer tempMax = Collections.max(periodeLengteList); //onthoudt de grootste periode van een temp.stijging
-        
-        for (int u = 0; u < periodeLengteList.size(); u ++) //pakt de index van de grootste periode
-        {
-            if (tempMax == periodeLengteList.get(u))
-            {
-                index1 = u;
-                index2 = tempMax - u;
-            }
-        }
+        //Code
         
-        index[0] = index1 * 1440;
-        index[1] = index2 * 1440;
-        return index; 
-    }       
+        index[0] = index1;
+        index[1] = index2;
+        return index;
+    }
+    
 }