teichmann@5831: package org.dive4elements.river.artifacts.model; sascha@676: sascha@676: import org.apache.log4j.Logger; sascha@676: sascha@676: public class Calculation3 sascha@676: extends Calculation sascha@676: { sascha@676: private static Logger logger = Logger.getLogger(Calculation3.class); sascha@676: sascha@676: protected double km; sascha@676: protected int [] days; sascha@676: protected double [] qs; sascha@676: sascha@676: public Calculation3() { sascha@676: } sascha@676: sascha@676: public Calculation3(double km, int [] days, double [] qs) { sascha@676: this.km = km; sascha@676: this.days = days; sascha@676: this.qs = qs; sascha@676: } sascha@676: sascha@709: public CalculationResult calculate(WstValueTable wst) { sascha@676: sascha@676: double [] ws = wst.interpolateW(km, qs, new double[qs.length], this); sascha@676: ingo@1669: if (days == null || days.length == 0) { sascha@2166: addProblem(km, "cannot.find.ds"); ingo@1669: } ingo@1669: ingo@1669: if (logger.isDebugEnabled()) { ingo@1669: logger.debug("Calculate duration curve data:"); ingo@1669: logger.debug(" km : " + km); ingo@1669: logger.debug(" num Days : " + (days != null ? days.length : 0)); ingo@1669: logger.debug(" num Qs : " + (qs != null ? qs.length : 0)); ingo@1669: logger.debug(" result Ws: " + (ws != null ? ws.length : 0)); ingo@1669: } ingo@1669: sascha@676: WQDay wqday = new WQDay(days, ws, qs); sascha@676: sascha@676: if (hasProblems()) { sascha@676: logger.debug("calculation caused "+numProblems()+" problem(s)."); sascha@676: wqday.removeNaNs(); sascha@676: } sascha@676: sascha@709: return new CalculationResult(wqday, this); sascha@676: } sascha@676: } sascha@676: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :