annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/Measurements.java @ 9801:1d7a72a50183 3.2.x tip

Assume Compose V2, consistently
author Tom Gottfried <tom@intevation.de>
date Thu, 23 Nov 2023 10:14:13 +0100
parents 0a5239a1e46e
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: 4066
diff changeset
9 package org.dive4elements.river.artifacts.model.sq;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
3294
5e52202302e5 SQ relation: Handle the error case of accessing wrong indexed SQ relation more smoothly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3290
diff changeset
11 import java.util.ArrayList;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 import java.util.List;
3294
5e52202302e5 SQ relation: Handle the error case of accessing wrong indexed SQ relation more smoothly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3290
diff changeset
13
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8539
diff changeset
14 import org.apache.logging.log4j.Logger;
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8539
diff changeset
15 import org.apache.logging.log4j.LogManager;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 public class Measurements
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 {
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8539
diff changeset
19 private static final Logger log = LogManager.getLogger(Measurements.class);
3294
5e52202302e5 SQ relation: Handle the error case of accessing wrong indexed SQ relation more smoothly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3290
diff changeset
20
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 public interface SExtractor {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 double getS(Measurement measument);
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 } // interface SExtractor
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 public static final SExtractor S_SF_EXTRACTOR = new SExtractor() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 public double getS(Measurement measument) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 return measument.S_SF();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 };
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 public static final SExtractor S_SS_EXTRACTOR = new SExtractor() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 public double getS(Measurement measument) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 return measument.S_SS();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 };
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 public static final SExtractor S_BL_S_EXTRACTOR = new SExtractor() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 public double getS(Measurement measument) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 return measument.S_BL_S();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 };
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 public static final SExtractor S_BL_FG_EXTRACTOR = new SExtractor() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 public double getS(Measurement measument) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 return measument.S_BL_FG();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 };
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 public static final SExtractor S_BL_CG_EXTRACTOR = new SExtractor() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 public double getS(Measurement measument) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 return measument.S_BL_CG();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
58 };
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 public static final SExtractor S_BL_EXTRACTOR = new SExtractor() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62 public double getS(Measurement measument) {
6350
876c797c2805 Fixed SQ relation total bedload: Use the correct input data for calculation.
Raimund Renkert <rrenkert@intevation.de>
parents: 5994
diff changeset
63 return measument.S_BL_1();
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 };
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66
8280
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
67 public static final SExtractor S_BL2_EXTRACTOR = new SExtractor() {
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
68 @Override
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
69 public double getS(Measurement measument) {
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
70 return measument.S_BL_2();
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
71 }
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
72 };
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
73
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74 protected List<Measurement> measuments;
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
75 protected List<Measurement> accumulated;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76
6780
b8f94e865875 S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6350
diff changeset
77 protected SQ.Factory sqFactory;
b8f94e865875 S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6350
diff changeset
78
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 public Measurements() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
82 public Measurements(
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
83 List<Measurement> measuments,
6780
b8f94e865875 S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6350
diff changeset
84 List<Measurement> accumulated,
b8f94e865875 S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6350
diff changeset
85 SQ.Factory sqFactory
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
86 ) {
6780
b8f94e865875 S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6350
diff changeset
87 this.sqFactory = sqFactory;
4066
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
88 if (log.isDebugEnabled()) {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
89 log.debug("number of measuments: " + measuments.size());
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
90 log.debug("number of accumulated: " + accumulated.size());
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
91 }
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92 this.measuments = measuments;
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
93 this.accumulated = accumulated;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95
6780
b8f94e865875 S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6350
diff changeset
96 public List<SQ> extractSQ(
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
97 List<Measurement> measuments,
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
98 SExtractor extractor
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
99 ) {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
100 List<SQ> result = new ArrayList<SQ>(measuments.size());
4066
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
101 int invalid = 0;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 for (Measurement measument: measuments) {
8539
84929f882fa2 (issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8280
diff changeset
103 SQ sq = sqFactory.createSQ(extractor.getS(measument), measument.Q(),
84929f882fa2 (issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8280
diff changeset
104 measument.getDate());
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 if (sq.isValid()) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 result.add(sq);
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107 }
4066
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
108 else {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
109 ++invalid;
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
110 }
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
111 }
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
112 if (log.isDebugEnabled()) {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
113 log.debug("Removed num invalid: " + invalid
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
114 + " of " + measuments.size());
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
116 return result;
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
117 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 public List<SQ> S_SF() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
120 return extractSQ(measuments, S_SF_EXTRACTOR);
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 public List<SQ> S_SS() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
124 return extractSQ(measuments, S_SS_EXTRACTOR);
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127 public List<SQ> S_BL_S() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
128 return extractSQ(accumulated, S_BL_S_EXTRACTOR);
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 public List<SQ> S_BL_FG() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
132 return extractSQ(accumulated, S_BL_FG_EXTRACTOR);
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135 public List<SQ> S_BL_CG() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
136 return extractSQ(accumulated, S_BL_CG_EXTRACTOR);
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139 public List<SQ> S_BL() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
140 return extractSQ(accumulated, S_BL_EXTRACTOR);
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142
8280
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
143 public List<SQ> S_BL2() {
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
144 return extractSQ(accumulated, S_BL2_EXTRACTOR);
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
145 }
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
146
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 public List<SQ> getSQs(int index) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148 switch (index) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 case 0: return S_SF();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
150 case 1: return S_SS();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 case 2: return S_BL_S();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 case 3: return S_BL_FG();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 case 4: return S_BL_CG();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
154 case 5: return S_BL();
8280
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
155 case 6: return S_BL2();
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156 }
3294
5e52202302e5 SQ relation: Handle the error case of accessing wrong indexed SQ relation more smoothly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3290
diff changeset
157 log.error("THIS SHOULD NOT HAPPEN: Tried to access SQ[" + index + "]");
5e52202302e5 SQ relation: Handle the error case of accessing wrong indexed SQ relation more smoothly.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3290
diff changeset
158 return new ArrayList<SQ>(0);
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
161 /**
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
162 * Gets the accumulated for this instance.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
163 *
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
164 * @return The accumulated.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
165 */
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
166 public List<Measurement> getAccumulated() {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
167 return this.accumulated;
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
168 }
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
169
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
170 /**
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
171 * Sets the accumulated for this instance.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
172 *
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
173 * @param accumulated The accumulated.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
174 */
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
175 public void setAccumulated(List<Measurement> accumulated) {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
176 this.accumulated = accumulated;
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
177 }
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
178
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
179
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
180 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
181 public String toString() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
182 StringBuilder sb = new StringBuilder("Measurements [");
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
183 for (int i = 0, M = measuments.size(); i < M; ++i) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
184 if (i > 0) sb.append(", ");
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
185 sb.append(measuments.get(i));
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
186 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
187 return sb.append(']').toString();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
188 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
189 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
190 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org