comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/W.java @ 4821:bcf25d8c183e

Moved NaN removal code from W to DoubleUtil. Create QKms when calculating the 'Umhuellende'.
author Sascha L. Teichmann <teichmann@intevation.de>
date Mon, 21 Jan 2013 14:03:22 +0100
parents 53d954973610
children
comparison
equal deleted inserted replaced
4820:26c849cf54e7 4821:bcf25d8c183e
1 package de.intevation.flys.artifacts.model; 1 package de.intevation.flys.artifacts.model;
2 2
3 import de.intevation.flys.utils.DataUtil; 3 import de.intevation.flys.utils.DataUtil;
4 import de.intevation.flys.utils.DoubleUtil;
4 5
5 import gnu.trove.TDoubleArrayList; 6 import gnu.trove.TDoubleArrayList;
6 7
7 import org.apache.log4j.Logger; 8 import org.apache.log4j.Logger;
8 9
58 59
59 public double minWs() { 60 public double minWs() {
60 return ws.min(); 61 return ws.min();
61 } 62 }
62 63
63 public static void removeNaNs(TDoubleArrayList [] arrays) {
64
65 int dest = 0;
66
67 int A = arrays.length;
68 int N = arrays[0].size();
69
70 OUTER: for (int i = 0; i < N; ++i) {
71 for (int j = 0; j < A; ++j) {
72 TDoubleArrayList a = arrays[j];
73 double v = a.getQuick(i);
74 if (Double.isNaN(v)) {
75 continue OUTER;
76 }
77 a.setQuick(dest, v);
78 }
79 ++dest;
80 }
81
82 if (dest < N) {
83 for (int i = 0; i < A; ++i) {
84 arrays[i].remove(dest, N-dest);
85 }
86 }
87 }
88
89 public void removeNaNs() { 64 public void removeNaNs() {
90 removeNaNs(new TDoubleArrayList [] { ws }); 65 DoubleUtil.removeNaNs(new TDoubleArrayList [] { ws });
91 } 66 }
92 67
93 public boolean guessWaterIncreasing() { 68 public boolean guessWaterIncreasing() {
94 return guessWaterIncreasing(0.05f); 69 return guessWaterIncreasing(0.05f);
95 } 70 }

http://dive4elements.wald.intevation.org