annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightData.java @ 8558:d0ea092a32f5

Remove obsolete class hierarchy for bed height data.
author "Tom Gottfried <tom@intevation.de>"
date Mon, 16 Feb 2015 10:12:12 +0100
parents 9513d1af7d58
children 0a5239a1e46e
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: 3897
diff changeset
9 package org.dive4elements.river.artifacts.model.minfo;
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import gnu.trove.TDoubleArrayList;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3897
diff changeset
14 import org.dive4elements.river.artifacts.model.NamedObjectImpl;
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15
7391
9513d1af7d58 Renamed artifacts/**/BedHeight(Single) to BedHeight(Single)Data, to resolve
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6149
diff changeset
16 public class BedHeightData
3633
ebfce31c7eec Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3614
diff changeset
17 extends NamedObjectImpl
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 {
7391
9513d1af7d58 Renamed artifacts/**/BedHeight(Single) to BedHeight(Single)Data, to resolve
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6149
diff changeset
19 private static Logger log = Logger.getLogger(BedHeightData.class);
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 protected TDoubleArrayList heights;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 protected TDoubleArrayList station;
8558
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
23 protected TDoubleArrayList data_gap;
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
24 protected TDoubleArrayList soundingWidth;
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
25 protected Integer year;
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
7391
9513d1af7d58 Renamed artifacts/**/BedHeight(Single) to BedHeight(Single)Data, to resolve
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6149
diff changeset
27 public BedHeightData() {
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 heights = new TDoubleArrayList();
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 station = new TDoubleArrayList();
8558
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
30 data_gap = new TDoubleArrayList();
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
31 soundingWidth = new TDoubleArrayList();
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33
7391
9513d1af7d58 Renamed artifacts/**/BedHeight(Single) to BedHeight(Single)Data, to resolve
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6149
diff changeset
34 public BedHeightData(String name) {
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 super(name);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 heights = new TDoubleArrayList();
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 station = new TDoubleArrayList();
8558
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
38 data_gap = new TDoubleArrayList();
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
39 soundingWidth = new TDoubleArrayList();
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41
7391
9513d1af7d58 Renamed artifacts/**/BedHeight(Single) to BedHeight(Single)Data, to resolve
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6149
diff changeset
42 public BedHeightData(int capacity) {
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 this(capacity, "");
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45
7391
9513d1af7d58 Renamed artifacts/**/BedHeight(Single) to BedHeight(Single)Data, to resolve
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6149
diff changeset
46 public BedHeightData(int capacity, String name) {
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 super(name);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 heights = new TDoubleArrayList(capacity);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 station = new TDoubleArrayList(capacity);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51
8558
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
52 public void add(
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
53 double value,
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
54 double station,
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
55 double gap,
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
56 double sounding,
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
57 Integer year
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
58 ) {
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 this.heights.add(value);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 this.station.add(station);
8558
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
61 if (year != null) {
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
62 this.year = year;
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
63 }
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
64 this.data_gap.add(gap);
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
65 this.soundingWidth.add(sounding);
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 public int size() {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 return heights.size();
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 public double getHeight(int idx) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 return heights.getQuick(idx);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 public double [] getHeights() {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 return heights.toNativeArray();
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 public double [] get(int idx) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 return get(idx, new double [3]);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 public double [] get(int idx, double [] dst) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 dst[0] = heights.getQuick(idx);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 dst[1] = station.getQuick(idx);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 return dst;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89
3897
bce2dd4310a6 MINFO: Updated data fields to fit the needs of bedheight difference calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3886
diff changeset
90 public double minHeights() {
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 return heights.min();
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93
3886
633fbb61a0cc Split bed heights into bed height epochs and single bed heights.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
94 public TDoubleArrayList getStations() {
633fbb61a0cc Split bed heights into bed height epochs and single bed heights.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
95 return this.station;
633fbb61a0cc Split bed heights into bed height epochs and single bed heights.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
96 }
633fbb61a0cc Split bed heights into bed height epochs and single bed heights.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
97
633fbb61a0cc Split bed heights into bed height epochs and single bed heights.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
98 public double getHeight(double station) {
6149
3c8147ba35a6 Bed height: Removed braindead index determination code.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
99 int index = this.station.indexOf(station);
3c8147ba35a6 Bed height: Removed braindead index determination code.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
100 return index >= 0 ? heights.getQuick(index) : Double.NaN;
3886
633fbb61a0cc Split bed heights into bed height epochs and single bed heights.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
101 }
633fbb61a0cc Split bed heights into bed height epochs and single bed heights.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3633
diff changeset
102
8558
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
103 public Integer getYear() {
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
104 return this.year;
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
105 }
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
106
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
107 public double getSoundingWidth(int idx) {
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
108 return this.soundingWidth.getQuick(idx);
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
109 }
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
110
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
111 public double getDataGap(int idx) {
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
112 return this.data_gap.getQuick(idx);
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
113 }
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
114
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
115 public double getSoundingWidth(double station) {
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
116 int index = this.station.indexOf(station);
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
117 return index >= 0 ? soundingWidth.getQuick(index): Double.NaN;
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
118 }
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
119
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
120 public double getDataGap(double station) {
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
121 int index = this.station.indexOf(station);
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
122 return index >= 0 ? data_gap.getQuick(index) : Double.NaN;
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
123 }
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
124
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
125 public double[] getSoundingWidths() {
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
126 return this.soundingWidth.toNativeArray();
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
127 }
d0ea092a32f5 Remove obsolete class hierarchy for bed height data.
"Tom Gottfried <tom@intevation.de>"
parents: 7391
diff changeset
128
3897
bce2dd4310a6 MINFO: Updated data fields to fit the needs of bedheight difference calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3886
diff changeset
129
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 public static void removeNaNs(TDoubleArrayList [] arrays) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 int dest = 0;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 int A = arrays.length;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 int N = arrays[0].size();
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 OUTER: for (int i = 0; i < N; ++i) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 for (int j = 0; j < A; ++j) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 TDoubleArrayList a = arrays[j];
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 double v = a.getQuick(i);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 if (Double.isNaN(v)) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 continue OUTER;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144 a.setQuick(dest, v);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 ++dest;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149 if (dest < N) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 for (int i = 0; i < A; ++i) {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 arrays[i].remove(dest, N-dest);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 public void removeNaNs() {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 removeNaNs(new TDoubleArrayList [] { heights });
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 }

http://dive4elements.wald.intevation.org