Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Measurement.java @ 4282:8b4988815974
Added marker for Ws and Qs in Historical Discharge WQ charts.
Therefore, the XYChartGenerator got two new methods addDomainMarker(Marker, boolean) and addValueMarker(Marker, boolean).
The boolean parameters determine, if the marker should be visible or not. This is analogous to addAxisSeries(XYSeries, int, boolean).
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 29 Oct 2012 05:59:27 +0100 |
parents | d4e39cc5c10c |
children | bf2fd9c58ac4 |
rev | line source |
---|---|
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.model.sq; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
3 import java.util.List; |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 import java.util.Map; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
6 import org.apache.commons.logging.Log; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
7 import org.apache.commons.logging.LogFactory; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
8 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 public class Measurement |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 { |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
11 private static final Log log = |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
12 LogFactory.getLog(Measurement.class); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
13 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
14 public static final double ADD_8 = Math.log(10) - Math.log(8)/Math.log(6.3); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
15 public static final double SCALE_8 = Math.log(6.3); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
16 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
17 public static final double ADD_4 = Math.log(8) - Math.log(6.3)/Math.log(10); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
18 public static final double SCALE_4 = Math.log(6.3); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
19 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
20 protected Map<String, Object> data; |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
21 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
22 protected List<Sieve> sieves; |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
23 |
4002
fdc6b1e64d01
Fix compiling bug
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
24 protected SieveArray sieveArray; |
fdc6b1e64d01
Fix compiling bug
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
25 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 public Measurement() { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
29 public Measurement(Map<String, Object> data, List<Sieve> sieves) { |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 this.data = data; |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
31 this.sieves = sieves; |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
32 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
33 |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
34 protected double get(String name) { |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
35 Number value = (Number)data.get(name); |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
36 return value != null ? value.doubleValue() : Double.NaN; |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
37 } |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
38 |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
39 protected void set(String name, double value) { |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
40 data.put(name, Double.valueOf(value)); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
41 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
42 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
43 public Object getData(String name) { |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
44 return data.get(name); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
45 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
46 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
47 public Map<String, Object> getData() { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
48 return data; |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
49 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
50 |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
51 protected void putData(String name, Object value) { |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
52 data.put(name, value); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
53 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
54 |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
55 public double S_SS() { |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
56 return get("TSAND"); |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
57 } |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
58 |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
59 public double S_SF() { |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
60 return get("TSCHWEB") - get("TSAND"); |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
61 } |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
62 |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
63 public double Q() { |
3393
525e976102ac
S/Q relation: Out commented the LEFT JOINs which produce a lot of empty and
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3389
diff
changeset
|
64 return get("Q_BPEGEL"); |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
65 } |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
66 |
3389
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
67 public double TOTAL_BL() { |
3922
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
68 return get("TGESCHIEBE"); |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
69 } |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
70 |
3922
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
71 public double BL_G() { |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4002
diff
changeset
|
72 return get("BL_G"); |
3389
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
73 } |
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
74 |
3922
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
75 public double BL_C() { |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4002
diff
changeset
|
76 return get("BL_C"); |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
77 } |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
78 |
3922
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
79 public double BL_S() { |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4002
diff
changeset
|
80 return get("BL_S"); |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
81 } |
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
82 |
3922
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
83 public double S_BL_S() { |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
84 return TOTAL_BL() * BL_S(); |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
85 } |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
86 |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
87 public double S_BL_FG() { |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
88 return TOTAL_BL() * BL_G(); |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
89 } |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
90 |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
91 public double S_BL_CG() { |
e1d3f6bccf2b
S/Q: More symbols in reconstruction of Excel macros.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
92 return TOTAL_BL() * BL_C(); |
3290
36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3289
diff
changeset
|
93 } |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 |
3389
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
95 public double S_BL_1() { |
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
96 return S_BL_S() + S_BL_FG() + S_BL_CG(); |
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
97 } |
3293
c15738c831db
SQ relation: Added access to the data of GSIEBSATZ and SSIEBUNG.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
98 |
3389
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
99 public double S_BL_2() { |
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
100 return S_SS() + S_BL_S() + S_BL_FG() + S_BL_CG(); |
816ceb0418b9
Q is not taken from MESSUNG.Q but from MESSUNG.Q_BPEGEL
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3293
diff
changeset
|
101 } |
3293
c15738c831db
SQ relation: Added access to the data of GSIEBSATZ and SSIEBUNG.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3290
diff
changeset
|
102 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 @Override |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 public String toString() { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 return "Measurement: " + data; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 } |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
107 |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
108 /** |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
109 * Gets the sieves for this instance. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
110 * |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
111 * @return The sieves. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
112 */ |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
113 public List<Sieve> getSieves() { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
114 return this.sieves; |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
115 } |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
116 |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
117 /** |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
118 * Gets the sieveArray for this instance. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
119 * |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
120 * @return The sieveArray. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
121 */ |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
122 public SieveArray getSieveArray() { |
4002
fdc6b1e64d01
Fix compiling bug
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
123 if (sieveArray == null) { |
fdc6b1e64d01
Fix compiling bug
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
124 sieveArray = calculateSieveArray(); |
fdc6b1e64d01
Fix compiling bug
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
125 } |
fdc6b1e64d01
Fix compiling bug
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
126 return sieveArray; |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
127 } |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
128 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
129 protected Sieve findSieve(double diameter) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
130 for (Sieve s: sieves) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
131 if (s.matchesDiameter(diameter)) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
132 return s; |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
133 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
134 } |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
135 return null; |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
136 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
137 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
138 protected void deleteSieve(double diameter) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
139 for (int i = sieves.size()-1; i >= 0; --i) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
140 if (sieves.get(i).matchesDiameter(diameter)) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
141 sieves.remove(i); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
142 break; |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
143 } |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
144 } |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
145 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
146 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
147 public void adjustSieves() { |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
148 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
149 // If we already have an 8mm diameter sieve |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
150 // we dont need to 'invent' it. |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
151 if (findSieve(8d) != null) { |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
152 return; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
153 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
154 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
155 // create a new 8mm sieve. |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
156 // delete 6.3mm sieve. |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
157 // modify 4mm sieve. |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
158 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
159 Sieve six = findSieve(6.3d); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
160 Sieve ten = findSieve(10d); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
161 Sieve four = findSieve(4d); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
162 |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
163 if (six == null || ten == null || four == null) { |
4006
d4e39cc5c10c
S(Q) relation: Removed unused field from SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4005
diff
changeset
|
164 log.warn("missing diameter"); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
165 return; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
166 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
167 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
168 double sixValue = six.getLoad(); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
169 double tenValue = ten.getLoad(); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
170 double fourValue = four.getLoad(); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
171 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
172 deleteSieve(6.3); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
173 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
174 double eightValue = ADD_8 - SCALE_8*sixValue + tenValue; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
175 double newFourValue = ADD_4 - SCALE_4*sixValue + fourValue; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
176 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
177 sieves.add(new Sieve(8d, eightValue)); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
178 sieves.add(new Sieve(4d, newFourValue)); |
4002
fdc6b1e64d01
Fix compiling bug
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
179 } |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
180 |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4002
diff
changeset
|
181 protected SieveArray calculateSieveArray() { |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
182 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
183 SieveArray sa = new SieveArray(); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
184 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
185 for (Sieve s: sieves) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
186 sa.doSieving(s); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
187 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
188 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
189 sa.calculateNormLoads(); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
190 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3981
diff
changeset
|
191 return sa; |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3928
diff
changeset
|
192 } |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
193 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
194 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |