view gnv-artifacts/src/main/java/de/intevation/gnv/statistics/TimeseriesStatistics.java @ 94:6a825a184883

Remove Compile-Errors from the StatisticsPart gnv-artifacts/trunk@139 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Mon, 28 Sep 2009 07:32:03 +0000
parents c476fbbaa4ca
children 13402ac8d8fe
line wrap: on
line source
/**
 * Title:           TimeseriesStatistics, $Header: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/output/statistics/TimeseriesStatistics.java,v 1.3 2008/08/18 14:50:33 drewnak Exp $
 * Source:          $Source: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/output/statistics/TimeseriesStatistics.java,v $
 * created by:      Stefan Blume (blume)
 * erstellt am:     06.12.2007
 * Copyright:       con terra GmbH, 2005
 *
 * modified by:     $Author: drewnak $
 * modified on:     $Date: 2008/08/18 14:50:33 $
 * Version:         $Revision: 1.3 $
 * TAG:             $Name:  $
 * locked from:     $Locker:  $
 * CVS State:       $State: Exp $
 * Project:         $ProjectName$
 */
package de.intevation.gnv.statistics;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import org.apache.commons.math.stat.descriptive.DescriptiveStatistics;
import org.apache.commons.math.stat.regression.SimpleRegression;
import org.apache.log4j.Logger;

import de.intevation.gnv.geobackend.base.Result;
import de.intevation.gnv.statistics.exception.StatisticsException;



/**
 * The class <code>TimeseriesStatistics</code> fulfills the following purposes:
 * <ol>
 * <li></li>
 * </ol>
 *
 * @author blume
 * @author Tim Englich <tim.englich@intevation.de>
 * @version 1.0
 * @serial 1.0
 * @see
 * @since 06.12.2007 18:02:27
 */
public class TimeseriesStatistics implements Statistics {

    /**
     * Default Logging instance
     */
    private static Logger sLogger = Logger.getLogger(TimeseriesStatistics.class);
    private static boolean sDebug = sLogger.isDebugEnabled();

    private Statistic[] mStatistics = null;

 
    public TimeseriesStatistics(Collection<Result> resultSet) throws StatisticsException {
        DescriptiveStatistics lStatistics = null;
        SimpleRegression lRegression = null;
        ArrayList<Statistic> lStats = new ArrayList<Statistic>();
        int break1, break2;
        int lSeries = 1;
        if (sDebug) sLogger.debug("TimeseriesStatistics() lImageFile != null");
        try{
            
            Iterator<Result> resultIterator = resultSet.iterator();
            if (resultIterator.hasNext()){
                Result row = resultIterator.next();
                break1 = row.getInteger("GROUP1");
                break2 = row.getInteger("GROUP2");
            lRegression = new SimpleRegression();
            lStatistics = DescriptiveStatistics.newInstance();
            while (resultIterator.hasNext()) {
                
                if (break1 != row.getInteger("GROUP1")
                        || break2 != row.getInteger("GROUP2")) {
                    //lStatistics = createDescriptiveStatisticsObject(pResults,mStart,mEnd);
                    //lRegression = createSimpleRegressionObject(pResults,mStart,mEnd);
                    
                    addStatisticsValues(lStatistics, lRegression, lStats, lSeries);
                    
                    lStatistics.clear();
                    lRegression.clear();
                    
                    row = resultIterator.next();
                    lStatistics.addValue(row.getDouble("YORDINATE"));
                    Double x = new Double( (row.getDate("XORDINATE")).getTime()/1000/3600) ;
                    lRegression.addData(x ,row.getDouble("YORDINATE"));
                    
                    break1 = row.getInteger("GROUP1");
                    break2 = row.getInteger("GROUP2");
                    lSeries ++;     
                }
                else{
                    row = resultIterator.next();
                    lStatistics.addValue(row.getDouble("YORDINATE"));
                    Double x = new Double( (row.getDate("XORDINATE")).getTime()/1000/3600) ;
                    lRegression.addData(x,row.getDouble("YORDINATE"));
                }
                
            }
            addStatisticsValues(lStatistics, lRegression, lStats, lSeries);
            lStatistics.clear();
            lRegression.clear();
            mStatistics = new Statistic[lStats.size()];
            mStatistics = lStats.toArray(mStatistics);
            }
        }
        catch (Exception e){
            sLogger.error(e.getMessage(), e);
        }
    }
    /**
     * @param lStatistics
     * @param lRegression
     * @param lStats
     * @param lSeries
     */
    private void addStatisticsValues(DescriptiveStatistics lStatistics,
            SimpleRegression lRegression, ArrayList<Statistic> lStats,
            int lSeries) {
        lStats.add(new Statistic("gnviewer.statistics.series",(double)lSeries));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.arithmeticMean", lStatistics.getMean()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.kurtosis", lStatistics.getKurtosis()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.max", lStatistics.getMax()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.min", lStatistics.getMin()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.n", lStatistics.getN()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.percentile.90", lStatistics.getPercentile(90)));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.percentile.75", lStatistics.getPercentile(75)));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.percentile.50", lStatistics.getPercentile(50)));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.percentile.10", lStatistics.getPercentile(10)));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.deviation", lStatistics.getStandardDeviation()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.variance", lStatistics.getVariance()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.intercept", lRegression.getIntercept()));
        lStats.add(new Statistic("gnviewer.statistics.descriptive.slope", lRegression.getSlope()));
    } 

    /**
     * 
     * @return
     */
    public Statistic[] getStatistics() {
        return mStatistics;
    }
}

http://dive4elements.wald.intevation.org