annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQKms.java @ 7081:3c4efd4b2c19 generator-refactoring

Simplyfy / unify "invert axis" logic - DataUtil now can check if two datasets are in the same direction - In the case of WKM data a no means that the Water flows Right to Left - If the water flows from right to left do inversion of diagrams
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 20 Sep 2013 17:36:11 +0200
parents 38ee580a30cb
children 7e5d4a0d9bad
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;
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
7081
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 6599
diff changeset
11 import org.dive4elements.river.utils.DataUtil;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4821
diff changeset
12 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: 4817
diff changeset
13
365
c13ca9d632d6 Introduced GNU Trove to store WQKms values in a more performant data structure.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 361
diff changeset
14 import gnu.trove.TDoubleArrayList;
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
16 import org.apache.log4j.Logger;
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
17
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 /**
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 * This class represents a pool of data triples that consists of 'W', 'Q' and
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 * 'KM' data.
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 *
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 */
742
c09c9e05ecfa Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 726
diff changeset
25 public class WQKms
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
26 extends WQ
4817
4d457c68b1d3 Added QKms model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
27 implements WKms, QKms
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
28 {
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
29 private static Logger logger = Logger.getLogger(WQKms.class);
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
30
1029
3f3988bb6284 Picky Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 925
diff changeset
31 /** The array that contains the 'KMs' values. */
365
c13ca9d632d6 Introduced GNU Trove to store WQKms values in a more performant data structure.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 361
diff changeset
32 protected TDoubleArrayList kms;
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 public WQKms() {
447
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
36 this("");
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
37 }
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
38
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
39
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
40 public WQKms(String name) {
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
41 super(name);
365
c13ca9d632d6 Introduced GNU Trove to store WQKms values in a more performant data structure.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 361
diff changeset
42 this.kms = new TDoubleArrayList();
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 }
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44
447
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
45
380
5f55047a17e8 Moved expensive allocation of result arrays out of km loop.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 367
diff changeset
46 public WQKms(int capacity) {
447
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
47 this(capacity, "");
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
48 }
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
49
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
50
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
51 public WQKms(int capacity, String name) {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
52 super(capacity, name);
380
5f55047a17e8 Moved expensive allocation of result arrays out of km loop.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 367
diff changeset
53 this.kms = new TDoubleArrayList(capacity);
5f55047a17e8 Moved expensive allocation of result arrays out of km loop.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 367
diff changeset
54 }
5f55047a17e8 Moved expensive allocation of result arrays out of km loop.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 367
diff changeset
55
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
56 public WQKms(double [] kms, double [] qs, double [] ws) {
447
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
57 this(kms, qs, ws, "");
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
58 }
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
59
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 402
diff changeset
60
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
61 public WQKms(double [] kms, double [] qs, double [] ws, String name) {
6301
20a32dbdbb59 Remove discharge table scaling but add reference system to W
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
62 this(kms, qs, ws, name, 0);
20a32dbdbb59 Remove discharge table scaling but add reference system to W
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
63 }
20a32dbdbb59 Remove discharge table scaling but add reference system to W
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
64
6303
5fda7065b74a Add another constructor that takes a WQ object as parameter
Andre Heinecke <aheinecke@intevation.de>
parents: 6301
diff changeset
65 public WQKms(double []kms, WQ wq) {
5fda7065b74a Add another constructor that takes a WQ object as parameter
Andre Heinecke <aheinecke@intevation.de>
parents: 6301
diff changeset
66 this(kms, wq.getQs(), wq.getWs(), wq.getName(), wq.getReferenceSystem());
5fda7065b74a Add another constructor that takes a WQ object as parameter
Andre Heinecke <aheinecke@intevation.de>
parents: 6301
diff changeset
67 }
5fda7065b74a Add another constructor that takes a WQ object as parameter
Andre Heinecke <aheinecke@intevation.de>
parents: 6301
diff changeset
68
6301
20a32dbdbb59 Remove discharge table scaling but add reference system to W
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
69 public WQKms(double [] kms, double [] qs, double [] ws, String name, int wReferenceSystem) {
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
70 super(qs, ws, name);
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
71 this.kms = new TDoubleArrayList(kms);
6301
20a32dbdbb59 Remove discharge table scaling but add reference system to W
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
72 setReferenceSystem(wReferenceSystem);
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
73 }
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
74
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
75 @Override
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
76 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: 4817
diff changeset
77 DoubleUtil.removeNaNs(new TDoubleArrayList [] { ws, qs, kms });
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
78 }
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
79
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 /**
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 * Adds a new row to this data pool.
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 *
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 * @param w a W.
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 * @param q a Q.
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2182
diff changeset
85 * @param km a kms.
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 */
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
87 public void add(double w, double q, double km) {
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
88 super.add(w, q);
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
89 kms.add(km);
366
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
90 }
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
91
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
92 @Override
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
93 public double [] get(int idx) {
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
94 return get(idx, new double [3]);
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
95 }
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
96
366
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
97 /**
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
98 * This method returns a triple of W, Q and Kms in a single 3dim array.
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
99 *
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
100 * @param idx The position of the triple.
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
101 * @param dst destination array
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
102 *
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
103 * @return a triple of [W, Q, Kms] in dst.
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
104 */
726
cbaa3ca86f2f Added base class WQ for WQKms.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 719
diff changeset
105 @Override
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
106 public double [] get(int idx, double [] dst) {
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
107 dst[0] = ws .getQuick(idx);
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
108 dst[1] = qs .getQuick(idx);
686
3dc61e00385e Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
109 dst[2] = kms.getQuick(idx);
366
d64339f9f38f WQKms model: Added a get() method which takes destination array as an argument.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 365
diff changeset
110 return dst;
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 }
367
0960df8358ec New method WQKms.size() to retrieve the number of elements in the data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 366
diff changeset
112
925
0cb1a70b8b92 Added the math needed to calculate "W-Differenzen" in "Laengsschnitten"
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 742
diff changeset
113 @Override
0cb1a70b8b92 Added the math needed to calculate "W-Differenzen" in "Laengsschnitten"
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 742
diff changeset
114 public double getKm(int idx) {
686
3dc61e00385e Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
115 return kms.getQuick(idx);
367
0960df8358ec New method WQKms.size() to retrieve the number of elements in the data pool.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 366
diff changeset
116 }
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
117
1678
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
118 @Override
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
119 public TDoubleArrayList allKms() {
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
120 return kms;
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
121 }
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
122
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
123 @Override
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
124 public TDoubleArrayList allWs() {
2182
5ff481ab24a1 Refactored class hierachy to integrate model for W~W.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1678
diff changeset
125 return ws;
1678
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
126 }
03fbf1b30e72 Removed code duplication of guessWaterIncreasing()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1029
diff changeset
127
4817
4d457c68b1d3 Added QKms model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
128 @Override
4d457c68b1d3 Added QKms model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
129 public TDoubleArrayList allQs() {
4d457c68b1d3 Added QKms model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
130 return qs;
4d457c68b1d3 Added QKms model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
131 }
4d457c68b1d3 Added QKms model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3269
diff changeset
132
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
133 public double[] getKms() {
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
134 return kms.toNativeArray();
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
135 }
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
136
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
137 /**
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
138 * Returns a string that consist of the first and last kilometer.
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
139 *
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
140 * @return a string that consist of the first and last kilometer.
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
141 */
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
142 public String toString() {
925
0cb1a70b8b92 Added the math needed to calculate "W-Differenzen" in "Laengsschnitten"
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 742
diff changeset
143 double from = getKm(0);
0cb1a70b8b92 Added the math needed to calculate "W-Differenzen" in "Laengsschnitten"
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 742
diff changeset
144 double to = getKm(size()-1);
686
3dc61e00385e Merged with trunk and introduced hashing of computed values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
145 return from + " - " + to;
402
eb22ffe4d74c Implemented methods to retrieve and compute the data used to create discharge longitudinal sections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 380
diff changeset
146 }
6599
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
147
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
148 /**
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
149 * Returns an array of two double values the first and last kilometer.
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
150 *
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
151 * @return a double array with the first and last km
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
152 */
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
153 public double[] getFirstLastKM() {
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
154 /* Behold the first km might be larger then the last! */
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
155 return new double[] {getKm(0), getKm(size()-1)};
38ee580a30cb Add getFirstLastKM utiltity function to WQKms
Andre Heinecke <aheinecke@intevation.de>
parents: 6303
diff changeset
156 }
7081
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 6599
diff changeset
157
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 6599
diff changeset
158 @Override
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 6599
diff changeset
159 public boolean guessRTLData() {
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 6599
diff changeset
160 return DataUtil.guessSameDirectionData(ws, allKms());
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 6599
diff changeset
161 }
361
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 }
3e3ec9613883 Introduced a model class to store a set of triple data objects that consist of W, Q and Kms information.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org