Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.java @ 686:3dc61e00385e facets-slt
Merged with trunk and introduced hashing of computed values.
flys-artifacts/branches/facets-slt@2126 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 15 Jun 2011 15:28:54 +0000 |
parents | 478940d06876 |
children | eab5e5089d77 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.java Wed Jun 08 13:03:21 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.java Wed Jun 15 15:28:54 2011 +0000 @@ -34,6 +34,12 @@ qs = new TDoubleArrayList(capacity); } + public WQDay(int [] days, double [] ws, double [] qs) { + this.days = new TIntArrayList(days); + this.ws = new TDoubleArrayList(ws); + this.qs = new TDoubleArrayList(qs); + } + public void add(int day, double w, double q) { days.add(day); @@ -48,17 +54,43 @@ public int getDay(int idx) { - return days.get(idx); + return days.getQuick(idx); } public double getW(int idx) { - return ws.get(idx); + return ws.getQuick(idx); } public double getQ(int idx) { - return qs.get(idx); + return qs.getQuick(idx); + } + + public void removeNaNs() { + + int dest = 0; + int N = ws.size(); + + for (int i = 0; i < N; ++i) { + double w = ws.getQuick(i); + double q = qs.getQuick(i); + + if (Double.isNaN(w) || Double.isNaN(q)) { + continue; + } + + days.setQuick(dest, days.getQuick(i)); + ws.setQuick(dest, w); + qs.setQuick(dest, q); + ++dest; + } + + if (dest < N) { + days.remove(dest, N-dest); + ws .remove(dest, N-dest); + qs .remove(dest, N-dest); + } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :