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 :

http://dive4elements.wald.intevation.org