annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResult.java @ 8940:82998242ba84

Preparing for additional outputs of SINFO-Tkh
author gernotbelger
date Tue, 06 Mar 2018 18:51:18 +0100
parents d9dbf0b74bc2
children 5d5d482da3e9
rev   line source
8915
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
2 * Software engineering by
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
5 *
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
9 */
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.sinfo.common;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
11
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
12 import java.io.Serializable;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
13 import java.util.ArrayList;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
14 import java.util.Collection;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
15 import java.util.Collections;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
16 import java.util.List;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
17
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.SoilKind;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
20
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
21 import gnu.trove.TDoubleArrayList;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
22
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
23 /**
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
24 * @author Gernot Belger
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
25 */
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
26 public abstract class AbstractSInfoCalculationResult<ROW extends AbstractSInfoResultRow> implements Serializable {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
27
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
28 private static final long serialVersionUID = 1L;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
29
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
30 private final Collection<ROW> rows;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
31
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
32 private final String label;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
33
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
34 private final boolean hasTkh;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
35
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
36 private final WstInfo wst;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
37
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
38 public AbstractSInfoCalculationResult(final String label, final WstInfo wst, final boolean hasTkh, final Collection<ROW> rows) {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
39 this.label = label;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
40 this.wst = wst;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
41 this.hasTkh = hasTkh;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
42 this.rows = new ArrayList<>(rows);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
43 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
44
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
45 public final String getLabel() {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
46 return this.label;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
47 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
48
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
49 public final boolean hasTkh() {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
50 return this.hasTkh;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
51 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
52
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
53 public final WstInfo getWst() {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
54 return this.wst;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
55 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
56
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
57 public final void addRow(final ROW resultRow) {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
58 this.rows.add(resultRow);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
59 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
60
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
61 public final Collection<ROW> getRows() {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
62 return Collections.unmodifiableCollection(this.rows);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
63 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
64
8940
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
65 public double[][] getFlowDepthPoints() {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
66
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
67 final TDoubleArrayList xPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
68 final TDoubleArrayList yPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
69
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
70 for (final ROW row : this.rows) {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
71 xPoints.add(row.getStation());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
72 yPoints.add(row.getFlowDepth());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
73 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
74
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
75 return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() };
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
76 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
77
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
78 public double[][] getFlowDepthTkhPoints() {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
79
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
80 final TDoubleArrayList xPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
81 final TDoubleArrayList yPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
82
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
83 for (final ROW row : this.rows) {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
84 xPoints.add(row.getStation());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
85 yPoints.add(row.getFlowDepthWithTkh());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
86 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
87
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
88 return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() };
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
89 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
90
8915
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
91 public final double[][] getTkhUpPoints() {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
92 final TDoubleArrayList xPoints = new TDoubleArrayList(this.rows.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
93 final TDoubleArrayList yPoints = new TDoubleArrayList(this.rows.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
94 final List<SoilKind> kinds = new ArrayList<>(this.rows.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
95
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
96 for (final ROW row : this.rows) {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
97 xPoints.add(row.getStation());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
98 yPoints.add(row.getTkhUp());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
99 kinds.add(row.getTkhKind());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
100 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
101
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
102 return adjustTkhVisualization(xPoints, yPoints, kinds);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
103 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
104
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
105 public final double[][] getTkhDownPoints() {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
106 final TDoubleArrayList xPoints = new TDoubleArrayList(this.rows.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
107 final TDoubleArrayList yPoints = new TDoubleArrayList(this.rows.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
108 final List<SoilKind> kinds = new ArrayList<>(this.rows.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
109
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
110 for (final ROW row : this.rows) {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
111 xPoints.add(row.getStation());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
112 yPoints.add(row.getTkhDown());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
113 kinds.add(row.getTkhKind());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
114 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
115
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
116 return adjustTkhVisualization(xPoints, yPoints, kinds);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
117 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
118
8940
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
119 public double[][] getVelocityPoints() {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
120
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
121 final TDoubleArrayList xPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
122 final TDoubleArrayList yPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
123
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
124 for (final ROW row : this.rows) {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
125 xPoints.add(row.getStation());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
126 yPoints.add(row.getVelocity());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
127 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
128
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
129 return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() };
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
130 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
131
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
132 public double[][] getD50Points() {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
133
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
134 final TDoubleArrayList xPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
135 final TDoubleArrayList yPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
136
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
137 for (final ROW row : this.rows) {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
138 xPoints.add(row.getStation());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
139 yPoints.add(row.getD50());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
140 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
141
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
142 return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() };
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
143 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
144
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
145 public double[][] getTauPoints() {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
146
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
147 final TDoubleArrayList xPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
148 final TDoubleArrayList yPoints = new TDoubleArrayList(this.rows.size());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
149
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
150 for (final ROW row : this.rows) {
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
151 xPoints.add(row.getStation());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
152 yPoints.add(row.getTau());
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
153 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
154
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
155 return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() };
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
156 }
82998242ba84 Preparing for additional outputs of SINFO-Tkh
gernotbelger
parents: 8915
diff changeset
157
8915
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
158 /**
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
159 * the up and down points must be further adjusted for visualization, see Mail Hr. Reiß
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
160 * basically we need to introduce extra points when the kind changes, so we get vertical lines in that case
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
161 */
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
162 private double[][] adjustTkhVisualization(final TDoubleArrayList xPoints, final TDoubleArrayList yPoints, final List<SoilKind> kinds) {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
163
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
164 final TDoubleArrayList adjustedX = new TDoubleArrayList(xPoints.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
165 final TDoubleArrayList adjustedY = new TDoubleArrayList(yPoints.size());
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
166
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
167 adjustedX.add(xPoints.get(0));
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
168 adjustedY.add(yPoints.get(0));
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
169
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
170 for (int i = 1; i < xPoints.size(); i++) {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
171
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
172 final SoilKind kind1 = kinds.get(i - 1);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
173 final SoilKind kind2 = kinds.get(i);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
174
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
175 if (kind1 != kind2) {
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
176 /* introduce two extra points in order to create a vertical line in the middle of the two adjacent points */
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
177 final double x1 = xPoints.get(i - 1);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
178 final double y1 = yPoints.get(i - 1);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
179 final double x2 = xPoints.get(i);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
180 final double y2 = yPoints.get(i);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
181
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
182 final double middleX = (x1 + x2) / 2;
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
183
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
184 // REMARK: we can't produce a 100% vertical line, as the area-renderer will not work correctly
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
185 adjustedX.add(middleX - 0.0001);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
186 adjustedY.add(y1);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
187
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
188 adjustedX.add(middleX + 0.0001);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
189 adjustedY.add(y2);
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
190 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
191
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
192 /* always add the real point now */
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
193 adjustedX.add(xPoints.get(i));
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
194 adjustedY.add(yPoints.get(i));
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
195 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
196
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
197 return new double[][] { adjustedX.toNativeArray(), adjustedY.toNativeArray() };
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
198 }
d9dbf0b74bc2 Refaktoring of flow depth calculation, extracting tkh part. First implementation of tkh calculation.
gernotbelger
parents:
diff changeset
199 }

http://dive4elements.wald.intevation.org