annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQ.java @ 7930:d3a4b0d5bcd8

Small Java related cosmetics.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 12 Jun 2014 19:16:30 +0200
parents b0e2e4e0e2d2
children 839032ac1523
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4821
diff changeset
9 package org.dive4elements.river.artifacts.model;
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4821
diff changeset
11 import org.dive4elements.river.utils.DoubleUtil;
4821
bcf25d8c183e Moved NaN removal code from W to DoubleUtil. Create QKms when calculating the 'Umhuellende'.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 2182
diff changeset
12
bcf25d8c183e Moved NaN removal code from W to DoubleUtil. Create QKms when calculating the 'Umhuellende'.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 2182
diff changeset
13 import gnu.trove.TDoubleArrayList;
bcf25d8c183e Moved NaN removal code from W to DoubleUtil. Create QKms when calculating the 'Umhuellende'.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 2182
diff changeset
14
6302
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
15 import java.math.BigDecimal;
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
16
2087
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
17 import java.util.regex.Matcher;
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
18 import java.util.regex.Pattern;
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
19
1033
821aaceb2776 Fix for flys/issue191
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 926
diff changeset
20 import org.apache.log4j.Logger;
821aaceb2776 Fix for flys/issue191
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 926
diff changeset
21
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 public class WQ
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
23 extends W
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 {
2087
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
25 public static final Pattern NUMBERS_PATTERN =
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
26 Pattern.compile("\\D*(\\d++.\\d*)\\D*");
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
27
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
28 private static Logger log = Logger.getLogger(WQ.class);
1033
821aaceb2776 Fix for flys/issue191
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 926
diff changeset
29
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
30 protected TDoubleArrayList qs;
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 public WQ() {
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 this("");
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 public WQ(String name) {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
37 super(name);
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
38 qs = new TDoubleArrayList();
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 public WQ(int capacity) {
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 this(capacity, "");
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 public WQ(int capacity, String name) {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
47 super(capacity, name);
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
48 qs = new TDoubleArrayList(capacity);
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 public WQ(double [] qs, double [] ws) {
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 this(qs, ws, "");
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 public WQ(double [] qs, double [] ws, String name) {
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 super(name);
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
57 this.ws = new TDoubleArrayList(ws);
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
58 this.qs = new TDoubleArrayList(qs);
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60
7648
b0e2e4e0e2d2 issue1020: Add WQ constructor that accepts TDoubleArrayList .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7254
diff changeset
61 public WQ(TDoubleArrayList qs, TDoubleArrayList ws, String name) {
b0e2e4e0e2d2 issue1020: Add WQ constructor that accepts TDoubleArrayList .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7254
diff changeset
62 super(name);
b0e2e4e0e2d2 issue1020: Add WQ constructor that accepts TDoubleArrayList .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7254
diff changeset
63 this.ws = ws;
b0e2e4e0e2d2 issue1020: Add WQ constructor that accepts TDoubleArrayList .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7254
diff changeset
64 this.qs = qs;
b0e2e4e0e2d2 issue1020: Add WQ constructor that accepts TDoubleArrayList .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7254
diff changeset
65 }
b0e2e4e0e2d2 issue1020: Add WQ constructor that accepts TDoubleArrayList .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7254
diff changeset
66
2087
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
67
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
68 public Double getRawValue() {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
69 if (name == null || name.length() == 0) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
70 // this should never happen
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
71 return null;
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
72 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
73
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
74 Matcher m = NUMBERS_PATTERN.matcher(name);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
75
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
76 if (m.matches()) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
77 String raw = m.group(1);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
78
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
79 try {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
80 return Double.valueOf(raw);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
81 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
82 catch (NumberFormatException nfe) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
83 // do nothing
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
84 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
85 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
86
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
87 return null;
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
88 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1678
diff changeset
89
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90 public void add(double w, double q) {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
91 ws.add(w);
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
92 qs.add(q);
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 public double getQ(int idx) {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
96 return qs.getQuick(idx);
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
99 @Override
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 public double [] get(int idx) {
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 return get(idx, new double [2]);
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
104 @Override
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 public double [] get(int idx, double [] dst) {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
106 dst[0] = ws.getQuick(idx);
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
107 dst[1] = qs.getQuick(idx);
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108 return dst;
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111 public double [] getQs() {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
112 return qs.toNativeArray();
744
b385577bcaca WQ: Added a method to guess is increasing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 726
diff changeset
113 }
b385577bcaca WQ: Added a method to guess is increasing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 726
diff changeset
114
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
115 @Override
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
116 public void removeNaNs() {
4821
bcf25d8c183e Moved NaN removal code from W to DoubleUtil. Create QKms when calculating the 'Umhuellende'.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 2182
diff changeset
117 DoubleUtil.removeNaNs(new TDoubleArrayList [] { ws, qs });
1033
821aaceb2776 Fix for flys/issue191
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 926
diff changeset
118 }
6302
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
119
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
120 /** Returns either a modified copy or the same Object with fixed W values.
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
121 * If a conversion takes place converted is set to true
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
122 */
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
123 public static WQ getFixedWQforExportAtGauge(WQ wq, BigDecimal datum) {
7930
d3a4b0d5bcd8 Small Java related cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7648
diff changeset
124 if (wq.getReferenceSystem() == W.CENTIMETER_AT_GAUGE) {
6302
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
125 // Do nothing
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
126 return wq;
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
127 }
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
128 // If we convert we work on a copy to avoid side effects.
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
129 WQ ret = new WQ(wq.size(), wq.getName());
7930
d3a4b0d5bcd8 Small Java related cosmetics.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7648
diff changeset
130 ret.setReferenceSystem(W.CENTIMETER_AT_GAUGE);
6302
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
131
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
132 // When we convert and have a datum we have a calculated
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
133 // result at a gauge so we must subtract the datum.
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
134 double subtractDatum = datum == null ? 0 : datum.doubleValue();
7254
fe32a7f9655e Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6309
diff changeset
135 double [] data = new double[8];
fe32a7f9655e Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6309
diff changeset
136 for (int i = 0, WQ = wq.size(); i < WQ; i++) {
fe32a7f9655e Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6309
diff changeset
137 wq.get(i, data);
fe32a7f9655e Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6309
diff changeset
138 ret.add((data[0] - subtractDatum)*100d, data[1]);
6302
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
139 }
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
140 log.debug("Converted W values to centimeter and substracted: " + subtractDatum);
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
141 return ret;
d5af7b17efc2 Add conversion function that prepares a WQ table for export at gauge
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
142 }
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
143 }
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org