view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation3.java @ 4377:512a3af69e18

Extract common generator method from FixLongitudinalSectionGenerator The extracted methods and code can be reused for generating charts for bed differences if fixanalysis data is loaded via the datacache.
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 02 Nov 2012 15:47:15 +0100
parents 2898b1ff6013
children
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import org.apache.log4j.Logger;

public class Calculation3
extends      Calculation
{
    private static Logger logger = Logger.getLogger(Calculation3.class);

    protected double    km;
    protected int    [] days;
    protected double [] qs;

    public Calculation3() {
    }

    public Calculation3(double km, int [] days, double [] qs) {
        this.km   = km;
        this.days = days;
        this.qs   = qs;
    }

    public CalculationResult calculate(WstValueTable wst) {

        double [] ws = wst.interpolateW(km, qs, new double[qs.length], this);

        if (days == null || days.length == 0) {
            addProblem(km, "cannot.find.ds");
        }

        if (logger.isDebugEnabled()) {
            logger.debug("Calculate duration curve data:");
            logger.debug("    km       : " + km);
            logger.debug("    num Days : " + (days != null ? days.length : 0));
            logger.debug("    num Qs   : " + (qs != null ? qs.length : 0));
            logger.debug("    result Ws: " + (ws != null ? ws.length : 0));
        }

        WQDay wqday = new WQDay(days, ws, qs);

        if (hasProblems()) {
            logger.debug("calculation caused "+numProblems()+" problem(s).");
            wqday.removeNaNs();
        }

        return new CalculationResult(wqday, this);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org