Mercurial > dive4elements > gnv-client
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 : +