view gnv-artifacts/src/main/java/de/intevation/gnv/statistics/AbstractStatistics.java @ 1030:c07d9f9a738c

Removed bugs that existed in the caching mechanism (issue264, issue268). gnv-artifacts/trunk@1067 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 06 May 2010 08:32:56 +0000
parents 2423cefe7d39
children f953c9a559d8
line wrap: on
line source
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