Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/QualityMeasurement.java @ 8098:09725b65955a
Add new and simplyfied SedimentLoadFacet
The SedimentLoadFacet is intended to work with the Measurement stations.
It uses the same mechanismn to access the Mesurement station values
as the calculation does.
SedimentLoadLS values need a different facet that will come soon.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 15 Aug 2014 18:27:19 +0200 |
parents | 9344aa0fb021 |
children | e4606eae8ea5 |
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 |
6757
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
14 import org.apache.log4j.Logger; |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
15 |
6757
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
16 /** 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
|
17 public class QualityMeasurement { |
7540
9344aa0fb021
Fixed logger instantiations that were done with wrong class.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6766
diff
changeset
|
18 private static Logger logger = Logger.getLogger(QualityMeasurement.class); |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
20 private double km; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
21 private Date date; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
22 private double depth1; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
23 private double depth2; |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 private Map<String, Double> charDiameter; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 |
6766
4902d3ead541
Made trivial QualityMeasurement-constructor private, as it shouldnt be used.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6757
diff
changeset
|
26 private QualityMeasurement() { |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 |
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 public QualityMeasurement( |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 double km, |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 Date date, |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
33 double depth1, |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
34 double depth2, |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
35 Map<String, Double> diameter) { |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 this.setKm(km); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 this.setDate(date); |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
38 this.depth1 = depth1; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
39 this.depth2 = depth2; |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 this.setDiameter(diameter); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 } |
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 public double getKm() { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 return km; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 } |
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 public void setKm(double km) { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 this.km = km; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 } |
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 public Date getDate() { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 return date; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 } |
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 public void setDate(Date date) { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 this.date = date; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 } |
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 public Map<String, Double> getAllDiameter() { |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 return charDiameter; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 } |
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 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
|
64 this.charDiameter = charDiameter; |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 } |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 |
6757
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
67 /** |
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
68 * 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
|
69 * @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
|
70 */ |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 public double getDiameter(String key) { |
6757
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
72 Double diameter = charDiameter.get(key); |
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
73 if (diameter == null) { |
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
74 logger.warn("No Diameter at km " + km + " for " + key); |
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
75 } |
e0ac1b19dfcc
issue1435: Tolerate missing measurement values in QualityMeasurements.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
76 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
|
77 } |
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 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
|
80 charDiameter.put(key, value); |
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 } |
3758
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
82 |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
83 public double getDepth1() { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
84 return depth1; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
85 } |
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 public void setDepth1(double depth1) { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
88 this.depth1 = depth1; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
89 } |
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 public double getDepth2() { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
92 return depth2; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
93 } |
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 public void setDepth2(double depth2) { |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
96 this.depth2 = depth2; |
75bc96dd9d82
Added depth parameter to bed quality data.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3755
diff
changeset
|
97 } |
3755
9c555ce5ca50
Data objects and factory for minfo bedquality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 } |