Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQDay.java @ 3812:f788d2d901d6
merged flys-artifacts/pre2.6-2011-12-05
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:14:53 +0200 |
parents | e9475d2ef343 |
children | 5ff481ab24a1 |
comparison
equal
deleted
inserted
replaced
3808:5fab0fe3c445 | 3812:f788d2d901d6 |
---|---|
1 package de.intevation.flys.artifacts.model; | |
2 | |
3 import gnu.trove.TIntArrayList; | |
4 | |
5 /** | |
6 * This class represents a pool of data triples that consists of 'W', 'Q' and | |
7 * 'Day' data. | |
8 * | |
9 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | |
10 */ | |
11 public class WQDay | |
12 extends WQ | |
13 { | |
14 protected TIntArrayList days; | |
15 | |
16 public WQDay() { | |
17 super(""); | |
18 days = new TIntArrayList(); | |
19 } | |
20 | |
21 public WQDay(int capacity) { | |
22 days = new TIntArrayList(capacity); | |
23 } | |
24 | |
25 public WQDay(int [] days, double [] ws, double [] qs) { | |
26 super(qs, ws, ""); | |
27 this.days = new TIntArrayList(days); | |
28 } | |
29 | |
30 | |
31 public void add(int day, double w, double q) { | |
32 super.add(w, q); | |
33 days.add(day); | |
34 } | |
35 | |
36 | |
37 public boolean isIncreasing() { | |
38 int lo = getDay(0); | |
39 int hi = getDay(size()-1); | |
40 | |
41 return lo < hi; | |
42 } | |
43 | |
44 | |
45 public int getDay(int idx) { | |
46 return days.getQuick(idx); | |
47 } | |
48 | |
49 @Override | |
50 public void removeNaNs() { | |
51 | |
52 int dest = 0; | |
53 int N = w.size(); | |
54 | |
55 for (int i = 0; i < N; ++i) { | |
56 double wi = w.getQuick(i); | |
57 double qi = q.getQuick(i); | |
58 | |
59 if (Double.isNaN(wi) || Double.isNaN(qi)) { | |
60 continue; | |
61 } | |
62 | |
63 days.setQuick(dest, days.getQuick(i)); | |
64 w.setQuick(dest, wi); | |
65 q.setQuick(dest, qi); | |
66 ++dest; | |
67 } | |
68 | |
69 if (dest < N) { | |
70 days.remove(dest, N-dest); | |
71 w .remove(dest, N-dest); | |
72 q .remove(dest, N-dest); | |
73 } | |
74 } | |
75 } | |
76 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |