Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQCKms.java @ 3318:dbe2f85bf160
merged flys-artifacts/2.8
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:14:35 +0200 |
parents | 5642a83420f2 |
children | bcf25d8c183e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQCKms.java Fri Sep 28 12:14:35 2012 +0200 @@ -0,0 +1,93 @@ +package de.intevation.flys.artifacts.model; + +import gnu.trove.TDoubleArrayList; + +/** + * This class represents a pool of data triples that consists of 'W', 'Q' and + * 'KM' data with corrected 'W' values computed by a BackJumpCorrector. + * + * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> + */ +public class WQCKms +extends WQKms +{ + protected TDoubleArrayList cws; + + public WQCKms() { + } + + public WQCKms(WQKms other, double [] cws) { + this.ws = other.ws; + this.qs = other.qs; + this.kms = other.kms; + this.cws = new TDoubleArrayList(cws); + } + + + public WQCKms(double[] kms, double[] qs, double[] ws, double[] cws) { + super(kms, qs, ws); + + this.cws = new TDoubleArrayList(cws); + } + + @Override + public void removeNaNs() { + removeNaNs(new TDoubleArrayList [] { ws, qs, cws, kms }); + } + + /** + * Adds a new row to this data pool with corrected W. + * + * @param w a W. + * @param q a Q. + * @param kms a Kms. + * @param cw The corrected W. + */ + public void add(double w, double q, double kms, double cw) { + super.add(w, q, kms); + cws.add(cw); + } + + @Override + public double[] get(int idx) { + return get(idx, new double[4]); + } + + /** + * This method returns a 4dim array of W, Q,Kms and corrected W. + * + * @param idx The position of the triple. + * @param dst destination array + * + * @return a 4dim array of [W, Q, Kms, CW] in dst. + */ + @Override + public double[] get(int idx, double[] dst) { + dst = super.get(idx, dst); + + if (dst.length < 4) { + return dst; + } + + if (cws != null && cws.size() > idx) { + dst[3] = cws.getQuick(idx); + } + + return dst; + } + + public double getC(int idx) { + return cws.getQuick(idx); + } + + + /** + * Returns the double array of corrected W values. + * + * @return the double array of corrected W values. + */ + public double[] getCWs() { + return cws.toNativeArray(); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :