diff gnv-artifacts/src/main/java/de/intevation/gnv/statistics/AbstractStatistics.java @ 1119:7c4f81f74c47

merged gnv-artifacts
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 28 Sep 2012 12:14:00 +0200
parents f953c9a559d8
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/statistics/AbstractStatistics.java	Fri Sep 28 12:14:00 2012 +0200
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2010 by Intevation GmbH
+ *
+ * This program is free software under the LGPL (>=v2.1)
+ * Read the file LGPL.txt coming with the software for details
+ * or visit http://www.gnu.org/licenses/ if it does not exist.
+ */
+
+package de.intevation.gnv.statistics;
+
+import org.apache.commons.math.stat.descriptive.DescriptiveStatistics;
+
+import org.apache.commons.math.stat.regression.SimpleRegression;
+
+import org.apache.log4j.Logger;
+
+/**
+ * An abstract implementation of <code>Statistics</code> with a default
+ * implementation of the {@link #generateStatisticsValues(org.apache.commons.math.stat.descriptive.DescriptiveStatistics, org.apache.commons.math.stat.regression.SimpleRegression, java.lang.String)}
+ * method.
+ *
+ * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a>
+ */
+public abstract class AbstractStatistics
+implements            Statistics
+{
+    private static Logger log = Logger.getLogger(
+        AbstractStatistics.class);
+
+    public AbstractStatistics() {
+    }
+
+    /**
+     * This method takes a statistics object and puts relevant values into a
+     * <code>StatisticSet</code>.
+     *
+     * @param lStatistics A statistics object.
+     * @param lRegression A simple regression.
+     * @param statisticName Name for the resulting statistic.
+     * @return a set of statistics.
+     */
+    protected StatisticSet generateStatisticsValues(
+        DescriptiveStatistics lStatistics,
+        SimpleRegression      lRegression,
+        String                statisticName
+    ) {
+        StatisticSet statisticSet = new StatisticSet(statisticName);
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.arithmeticMean",
+                lStatistics.getMean()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.kurtosis",
+                lStatistics.getKurtosis()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.max",
+                lStatistics.getMax()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.min",
+                lStatistics.getMin()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.n",
+                lStatistics.getN()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.percentile.90",
+                lStatistics.getPercentile(90)));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.percentile.75",
+                lStatistics.getPercentile(75)));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.percentile.50",
+                lStatistics.getPercentile(50)));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.percentile.10",
+                lStatistics.getPercentile(10)));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.deviation",
+                lStatistics.getStandardDeviation()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.variance",
+                lStatistics.getVariance()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.intercept",
+                lRegression.getIntercept()));
+
+        statisticSet.addStatistic(
+            new Statistic(
+                "gnviewer.statistics.descriptive.slope",
+                lRegression.getSlope()));
+
+        return statisticSet;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
+

http://dive4elements.wald.intevation.org