annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightData.java @ 8587:07c9ac22f611

(issue1755) Generalise BedQuality result handling The bedquality calculation now produces a result for each time period which has BedQualityResultValues for each specific result type. Formally this was split up in density, porosity and diameter classes with some bedload diameter classes mixed in for extra fun. The intent of this commit is to allow more shared code and generic access patterns to the BedQuality results.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 18 Mar 2015 18:42:08 +0100
parents d0ea092a32f5
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