diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java @ 3145:be612065993e

FixA: Calculate the standard deviation of the Q sector delta Ws, too. flys-artifacts/trunk@4753 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 22 Jun 2012 09:59:12 +0000
parents 9c147bbffc36
children 368d1837ce5d
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java	Thu Jun 21 17:01:17 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java	Fri Jun 22 09:59:12 2012 +0000
@@ -15,8 +15,6 @@
 
 import de.intevation.flys.artifacts.model.FixingsOverview.Fixing.Filter;
 
-import de.intevation.flys.artifacts.model.Range;
-
 import de.intevation.flys.artifacts.model.FixingsOverview.Fixing;
 import de.intevation.flys.artifacts.model.FixingsOverview.IdsFilter;
 import de.intevation.flys.artifacts.model.FixingsOverview.KmFilter;
@@ -26,6 +24,7 @@
 import de.intevation.flys.artifacts.model.FixingsOverview;
 import de.intevation.flys.artifacts.model.FixingsOverviewFactory;
 import de.intevation.flys.artifacts.model.Parameters;
+import de.intevation.flys.artifacts.model.Range;
 
 import de.intevation.flys.utils.DateAverager;
 import de.intevation.flys.utils.DoubleUtil;
@@ -37,6 +36,8 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.math.stat.descriptive.moment.StandardDeviation;
+
 import org.apache.log4j.Logger;
 
 public class FixCalculation
@@ -362,7 +363,9 @@
                     analysisPeriod.getFrom(),
                     analysisPeriod.getTo());
 
-                QWD [] qSectorAverages = new QWD[4];
+                QWD []    qSectorAverages = new QWD[4];
+                double [] qSectorStdDevs  = new double[4];
+
                 ArrayList<QWD> allQWDs = new ArrayList<QWD>();
 
                 // for all Q sectors.
@@ -384,6 +387,8 @@
                     double sumQ = 0.0;
                     double sumW = 0.0;
 
+                    StandardDeviation stdDev = new StandardDeviation();
+
                     List<QWD> qwds = new ArrayList<QWD>(metas.size());
 
                     dateAverager.clear();
@@ -406,6 +411,8 @@
 
                         double dw = (wq[0] - fw)*100.0;
 
+                        stdDev.increment(dw);
+
                         Date date = column.getDate();
                         String description = column.getDescription();
 
@@ -439,13 +446,20 @@
 
                             qSectorAverages[qSector] = avgQWD;
                         }
+                        qSectorStdDevs[qSector] = stdDev.getResult();
+                    }
+                    else {
+                        qSectorStdDevs[qSector] = Double.NaN;
                     }
                 } // for all Q sectors
 
                 QWD [] aqwds = allQWDs.toArray(new QWD[allQWDs.size()]);
 
                 AnalysisPeriod periodResult = new AnalysisPeriod(
-                    analysisPeriod, aqwds, qSectorAverages);
+                    analysisPeriod,
+                    aqwds,
+                    qSectorAverages,
+                    qSectorStdDevs);
                 periodResults.add(periodResult);
             }
 

http://dive4elements.wald.intevation.org