Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.java @ 727:11e9489eb1a7
WQDay is based on WQ now to make it exportable as AT.
flys-artifacts/trunk@2217 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 23 Jun 2011 12:39:59 +0000 |
parents | eab5e5089d77 |
children | e9475d2ef343 |
comparison
equal
deleted
inserted
replaced
726:cbaa3ca86f2f | 727:11e9489eb1a7 |
---|---|
1 package de.intevation.flys.artifacts.model; | 1 package de.intevation.flys.artifacts.model; |
2 | 2 |
3 import java.io.Serializable; | |
4 | |
5 import gnu.trove.TDoubleArrayList; | |
6 import gnu.trove.TIntArrayList; | 3 import gnu.trove.TIntArrayList; |
7 | |
8 | 4 |
9 /** | 5 /** |
10 * This class represents a pool of data triples that consists of 'W', 'Q' and | 6 * This class represents a pool of data triples that consists of 'W', 'Q' and |
11 * 'Day' data. | 7 * 'Day' data. |
12 * | 8 * |
13 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 9 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
14 */ | 10 */ |
15 public class WQDay implements Serializable { | 11 public class WQDay |
16 | 12 extends WQ |
13 { | |
17 protected TIntArrayList days; | 14 protected TIntArrayList days; |
18 | 15 |
19 protected TDoubleArrayList ws; | |
20 | |
21 protected TDoubleArrayList qs; | |
22 | |
23 | |
24 public WQDay() { | 16 public WQDay() { |
17 super(""); | |
25 days = new TIntArrayList(); | 18 days = new TIntArrayList(); |
26 ws = new TDoubleArrayList(); | |
27 qs = new TDoubleArrayList(); | |
28 } | 19 } |
29 | |
30 | 20 |
31 public WQDay(int capacity) { | 21 public WQDay(int capacity) { |
32 days = new TIntArrayList(capacity); | 22 days = new TIntArrayList(capacity); |
33 ws = new TDoubleArrayList(capacity); | |
34 qs = new TDoubleArrayList(capacity); | |
35 } | 23 } |
36 | 24 |
37 public WQDay(int [] days, double [] ws, double [] qs) { | 25 public WQDay(int [] days, double [] ws, double [] qs) { |
26 super(qs, ws, ""); | |
38 this.days = new TIntArrayList(days); | 27 this.days = new TIntArrayList(days); |
39 this.ws = new TDoubleArrayList(ws); | |
40 this.qs = new TDoubleArrayList(qs); | |
41 } | 28 } |
42 | 29 |
43 | 30 |
44 public void add(int day, double w, double q) { | 31 public void add(int day, double w, double q) { |
32 super.add(w, q); | |
45 days.add(day); | 33 days.add(day); |
46 ws.add(w); | |
47 qs.add(q); | |
48 } | 34 } |
49 | |
50 | |
51 public int size() { | |
52 return days.size(); | |
53 } | |
54 | |
55 | 35 |
56 public int getDay(int idx) { | 36 public int getDay(int idx) { |
57 return days.getQuick(idx); | 37 return days.getQuick(idx); |
58 } | 38 } |
59 | 39 |
60 | 40 @Override |
61 public double getW(int idx) { | |
62 return ws.getQuick(idx); | |
63 } | |
64 | |
65 | |
66 public double getQ(int idx) { | |
67 return qs.getQuick(idx); | |
68 } | |
69 | |
70 public void removeNaNs() { | 41 public void removeNaNs() { |
71 | 42 |
72 int dest = 0; | 43 int dest = 0; |
73 int N = ws.size(); | 44 int N = w.size(); |
74 | 45 |
75 for (int i = 0; i < N; ++i) { | 46 for (int i = 0; i < N; ++i) { |
76 double w = ws.getQuick(i); | 47 double wi = w.getQuick(i); |
77 double q = qs.getQuick(i); | 48 double qi = q.getQuick(i); |
78 | 49 |
79 if (Double.isNaN(w) || Double.isNaN(q)) { | 50 if (Double.isNaN(wi) || Double.isNaN(qi)) { |
80 continue; | 51 continue; |
81 } | 52 } |
82 | 53 |
83 days.setQuick(dest, days.getQuick(i)); | 54 days.setQuick(dest, days.getQuick(i)); |
84 ws.setQuick(dest, w); | 55 w.setQuick(dest, wi); |
85 qs.setQuick(dest, q); | 56 q.setQuick(dest, qi); |
86 ++dest; | 57 ++dest; |
87 } | 58 } |
88 | 59 |
89 if (dest < N) { | 60 if (dest < N) { |
90 days.remove(dest, N-dest); | 61 days.remove(dest, N-dest); |
91 ws .remove(dest, N-dest); | 62 w .remove(dest, N-dest); |
92 qs .remove(dest, N-dest); | 63 q .remove(dest, N-dest); |
93 } | 64 } |
94 } | 65 } |
95 } | 66 } |
96 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 67 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |