annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/Measurements.java @ 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.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 08 Aug 2013 12:17:03 +0200
parents 876c797c2805
children e8283197d889
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
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 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
67 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
68
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
69 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
70
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 public Measurements() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
74 public Measurements(
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
75 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
76 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
77 SQ.Factory sqFactory
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
78 ) {
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
79 this.sqFactory = sqFactory;
4066
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
80 if (log.isDebugEnabled()) {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
81 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
82 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
83 }
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 this.measuments = measuments;
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3922
diff changeset
85 this.accumulated = accumulated;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87
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
88 public List<SQ> extractSQ(
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
89 List<Measurement> measuments,
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
90 SExtractor extractor
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
91 ) {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
92 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
93 int invalid = 0;
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 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
95 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
96 if (sq.isValid()) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 result.add(sq);
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98 }
4066
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
99 else {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
100 ++invalid;
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
101 }
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
102 }
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
103 if (log.isDebugEnabled()) {
f02aa4ff3c0f S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4005
diff changeset
104 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
105 + " of " + measuments.size());
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107 return result;
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110 public List<SQ> S_SF() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
111 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
112 }
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 public List<SQ> S_SS() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
115 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
116 }
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 public List<SQ> S_BL_S() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
119 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
120 }
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 public List<SQ> S_BL_FG() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
123 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
124 }
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 public List<SQ> S_BL_CG() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
127 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
128 }
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 public List<SQ> S_BL() {
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
131 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
132 }
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 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
135 switch (index) {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136 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
137 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
138 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
139 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
140 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
141 case 5: return S_BL();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142 }
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
143 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
144 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
145 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146
4005
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
147 /**
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
148 * Gets the accumulated for this instance.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
149 *
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
150 * @return The accumulated.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
151 */
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
152 public List<Measurement> getAccumulated() {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
153 return this.accumulated;
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
154 }
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
155
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
156 /**
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
157 * Sets the accumulated for this instance.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
158 *
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
159 * @param accumulated The accumulated.
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
160 */
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
161 public void setAccumulated(List<Measurement> accumulated) {
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
162 this.accumulated = 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
22abdc45869c Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4001
diff changeset
165
3290
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
166 @Override
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
167 public String toString() {
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
168 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
169 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
170 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
171 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
172 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
173 return sb.append(']').toString();
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
174 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
175 }
36f3b53d5cfc SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
176 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org