teichmann@5831: package org.dive4elements.river.artifacts.model; sascha@677: sascha@677: import java.util.Arrays; sascha@677: sascha@677: import org.apache.log4j.Logger; sascha@677: felix@3265: felix@3265: /** ComputedDischargeCurve. */ sascha@677: public class Calculation2 sascha@677: extends Calculation sascha@677: { sascha@677: private static Logger logger = Logger.getLogger(Calculation2.class); sascha@677: sascha@677: protected double km; sascha@677: sascha@677: public Calculation2() { sascha@677: } sascha@677: sascha@677: public Calculation2(double km) { sascha@677: this.km = km; sascha@677: } sascha@677: sascha@709: public CalculationResult calculate(WstValueTable wst) { sascha@677: sascha@677: logger.debug("Calculation2.calculate"); sascha@677: sascha@677: double [][] wqs = wst.interpolateWQ(km, this); sascha@677: sascha@677: if (wqs == null || wqs[0].length == 0) { sascha@2166: addProblem("cannot.compute.discharge.curve"); sascha@709: return new CalculationResult(new WQKms[0], this); sascha@677: } sascha@677: sascha@677: double [] ws = wqs[0]; sascha@677: double [] qs = wqs[1]; sascha@677: double [] kms = new double[ws.length]; sascha@677: sascha@677: Arrays.fill(kms, km); sascha@677: sascha@677: WQKms wqkms = new WQKms(kms, qs, ws, String.valueOf(km)); sascha@677: sascha@677: if (hasProblems()) { felix@3265: logger.debug("found " + numProblems() + " problems."); sascha@677: wqkms.removeNaNs(); sascha@677: } sascha@677: sascha@709: return new CalculationResult(new WQKms[] { wqkms }, this); sascha@677: } sascha@677: } sascha@677: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :