annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/Measurements.java @ 8280:e8283197d889

Added new fraction to sq relation. * New diagram with "Geschiebetransport gesamt(Sohlhöhenrelevant)" * Added the new fraction to overview diagram.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 17 Sep 2014 09:01:27 +0200
parents b8f94e865875
children 84929f882fa2
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
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
14 import org.apache.log4j.Logger;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 public class Measurements
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 {
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
18 private static final Logger log = Logger.getLogger(Measurements.class);
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
19
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 public interface SExtractor {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 double getS(Measurement measument);
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 } // interface SExtractor
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 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
25 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 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
27 return measument.S_SF();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 }
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 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
32 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 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
34 return measument.S_SS();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 }
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 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
39 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 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
41 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
42 }
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 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
46 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 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
48 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
49 }
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 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
53 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54 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
55 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
56 }
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 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
60 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 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
62 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
63 }
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
8280
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
66 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
67 @Override
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
68 public double getS(Measurement measument) {
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
69 return measument.S_BL_2();
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
70 }
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
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73 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
74 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
75
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
76 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
77
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 public Measurements() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
81 public Measurements(
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
82 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
83 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
84 SQ.Factory sqFactory
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
85 ) {
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
86 this.sqFactory = sqFactory;
4066
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
87 if (log.isDebugEnabled()) {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
88 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
89 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
90 }
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91 this.measuments = measuments;
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
92 this.accumulated = accumulated;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94
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
95 public List<SQ> extractSQ(
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
96 List<Measurement> measuments,
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
97 SExtractor extractor
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
98 ) {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
99 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
100 int invalid = 0;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 for (Measurement measument: 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
102 SQ sq = sqFactory.createSQ(extractor.getS(measument), measument.Q());
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 if (sq.isValid()) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 result.add(sq);
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 }
4066
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
106 else {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
107 ++invalid;
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
108 }
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
109 }
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
110 if (log.isDebugEnabled()) {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
111 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
112 + " of " + measuments.size());
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114 return result;
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
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
117 public List<SQ> S_SF() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
118 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
119 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 public List<SQ> S_SS() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
122 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
123 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 public List<SQ> S_BL_S() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
126 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
127 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129 public List<SQ> S_BL_FG() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
130 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
131 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133 public List<SQ> S_BL_CG() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
134 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
135 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 public List<SQ> S_BL() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
138 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
139 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140
8280
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
141 public List<SQ> S_BL2() {
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
142 return extractSQ(accumulated, S_BL2_EXTRACTOR);
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
143 }
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
144
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
145 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
146 switch (index) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 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
148 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
149 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
150 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
151 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
152 case 5: return S_BL();
8280
e8283197d889 Added new fraction to sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents: 6780
diff changeset
153 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
154 }
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
155 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
156 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
157 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
158
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
159 /**
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
160 * Gets the accumulated for this instance.
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 * @return The accumulated.
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 public List<Measurement> getAccumulated() {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
165 return this.accumulated;
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
166 }
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
167
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 * Sets the accumulated for this instance.
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 * @param accumulated The accumulated.
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 public void setAccumulated(List<Measurement> accumulated) {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
174 this.accumulated = accumulated;
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
175 }
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
176
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
177
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
178 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
179 public String toString() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
180 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
181 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
182 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
183 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
184 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
185 return sb.append(']').toString();
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 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
188 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org