annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/QualityMeasurement.java @ 9726:0a5239a1e46e 3.2.x

Upgrade to Log4j 2
author Tom Gottfried <tom@intevation.de>
date Wed, 02 Mar 2022 10:26:50 +0100
parents e4606eae8ea5
children
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: 5335
diff changeset
9 package org.dive4elements.river.artifacts.model.minfo;
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import java.util.Date;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import java.util.Map;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
14 import org.apache.logging.log4j.Logger;
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
15 import org.apache.logging.log4j.LogManager;
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
16
6757
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
17 /** A measurement of the bed quality, serving different diameter at given km. */
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 public class QualityMeasurement {
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8202
diff changeset
19 private static Logger log = LogManager.getLogger(QualityMeasurement.class);
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
21 private double km;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
22 private Date date;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
23 private double depth1;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
24 private double depth2;
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 private Map<String, Double> charDiameter;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
6766
4902d3ead541 Made trivial QualityMeasurement-constructor private, as it shouldnt be used.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6757
diff changeset
27 private QualityMeasurement() {
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 public QualityMeasurement(
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 double km,
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 Date date,
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
34 double depth1,
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
35 double depth2,
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
36 Map<String, Double> diameter) {
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 this.setKm(km);
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 this.setDate(date);
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
39 this.depth1 = depth1;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
40 this.depth2 = depth2;
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 this.setDiameter(diameter);
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 public double getKm() {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 return km;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 public void setKm(double km) {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 this.km = km;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 public Date getDate() {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 return date;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 public void setDate(Date date) {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 this.date = date;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 public Map<String, Double> getAllDiameter() {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 return charDiameter;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 public void setDiameter(Map<String, Double> charDiameter) {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 this.charDiameter = charDiameter;
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67
6757
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
68 /**
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
69 * Get the stored diameter for given key (e.g. d10).
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
70 * @return NaN if no data found in this measurement.
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
71 */
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 public double getDiameter(String key) {
6757
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
73 Double diameter = charDiameter.get(key);
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
74 if (diameter == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7540
diff changeset
75 log.warn("No Diameter at km " + km + " for " + key);
6757
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
76 }
e0ac1b19dfcc issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
77 return (diameter != null) ? diameter : Double.NaN;
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 }
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 public void setDiameter(String key, double value) {
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 charDiameter.put(key, value);
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 }
3758
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
83
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
84 public double getDepth1() {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
85 return depth1;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
86 }
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
87
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
88 public void setDepth1(double depth1) {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
89 this.depth1 = depth1;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
90 }
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
91
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
92 public double getDepth2() {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
93 return depth2;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
94 }
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
95
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
96 public void setDepth2(double depth2) {
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
97 this.depth2 = depth2;
75bc96dd9d82 Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3755
diff changeset
98 }
3755
9c555ce5ca50 Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 }

http://dive4elements.wald.intevation.org