Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/MeasurementFactory.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 | f02aa4ff3c0f |
children | 0df2247d98e1 |
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:
3985
diff
changeset
|
3 import java.util.ArrayList; |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
4 import java.util.Calendar; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
5 import java.util.Collections; |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
6 import java.util.Date; |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
7 import java.util.HashMap; |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
8 import java.util.List; |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
9 import java.util.Map; |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
10 import java.util.TreeMap; |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
11 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
12 import org.apache.log4j.Logger; |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
13 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 import org.hibernate.SQLQuery; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import org.hibernate.Session; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 import org.hibernate.transform.BasicTransformerAdapter; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 import org.hibernate.type.StandardBasicTypes; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
21 import de.intevation.flys.artifacts.model.DateRange; |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
22 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
23 import de.intevation.flys.backend.SedDBSessionHolder; |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
24 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 public class MeasurementFactory |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 { |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
27 private static final Logger log = |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
28 Logger.getLogger(MeasurementFactory.class); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
29 |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
30 public static final String SQL_TOTALS = |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
31 "SELECT " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
32 "m.Q_BPEGEL AS Q_BPEGEL,"+ |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
33 "m.TSCHWEB AS TSCHWEB," + |
4009
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
34 "m.TSAND AS TSAND " + |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
35 "FROM MESSUNG m " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
36 "JOIN STATION s ON m.STATIONID = s.STATIONID " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
37 "JOIN GEWAESSER r ON s.GEWAESSERID = r.GEWAESSERID " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
38 "WHERE " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
39 "r.NAME = :river_name " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
40 "AND m.Q_BPEGEL IS NOT NULL " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
41 "AND s.KM BETWEEN :location - 0.001 AND :location + 0.001 " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
42 "AND m.DATUM BETWEEN :from AND :to " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
43 "AND m.DATUM IS NOT NULL"; |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
45 public static final String SQL_FACTIONS = |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
46 "SELECT " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
47 "m.datum AS DATUM," + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
48 "m.Q_BPEGEL AS Q_BPEGEL,"+ |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
49 "g.GLOTRECHTEID AS GLOTRECHTEID," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
50 "gp.LFDNR AS LFDNR," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
51 "g.UFERABST AS UFERABST," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
52 "g.UFERABLINKS AS UFERABLINKS," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
53 "m.TSCHWEB AS TSCHWEB," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
54 "m.TSAND AS TSAND," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
55 "gp.GTRIEB AS GTRIEB," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
56 "m.TGESCHIEBE AS TGESCHIEBE," + |
4009
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
57 "si.SIEB01 AS SIEB01, si.SIEB02 AS SIEB02," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
58 "si.SIEB03 AS SIEB03, si.SIEB04 AS SIEB04," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
59 "si.SIEB05 AS SIEB05, si.SIEB06 AS SIEB06," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
60 "si.SIEB07 AS SIEB07, si.SIEB08 AS SIEB08," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
61 "si.SIEB09 AS SIEB09, si.SIEB10 AS SIEB10," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
62 "si.SIEB11 AS SIEB11, si.SIEB12 AS SIEB12," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
63 "si.SIEB13 AS SIEB13, si.SIEB14 AS SIEB14," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
64 "si.SIEB15 AS SIEB15, si.SIEB16 AS SIEB16," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
65 "si.SIEB17 AS SIEB17, si.SIEB18 AS SIEB18," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
66 "si.SIEB19 AS SIEB19, si.SIEB20 AS SIEB20," + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
67 "si.SIEB21 AS SIEB21," + |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
68 "gs.RSIEB01 AS RSIEB01, gs.RSIEB02 AS RSIEB02," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
69 "gs.RSIEB03 AS RSIEB03, gs.RSIEB04 AS RSIEB04," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
70 "gs.RSIEB05 AS RSIEB05, gs.RSIEB06 AS RSIEB06," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
71 "gs.RSIEB07 AS RSIEB07, gs.RSIEB08 AS RSIEB08," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
72 "gs.RSIEB09 AS RSIEB09, gs.RSIEB10 AS RSIEB10," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
73 "gs.RSIEB11 AS RSIEB11, gs.RSIEB12 AS RSIEB12," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
74 "gs.RSIEB13 AS RSIEB13, gs.RSIEB14 AS RSIEB14," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
75 "gs.RSIEB15 AS RSIEB15, gs.RSIEB16 AS RSIEB16," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
76 "gs.RSIEB17 AS RSIEB17, gs.RSIEB18 AS RSIEB18," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
77 "gs.RSIEB19 AS RSIEB19, gs.RSIEB20 AS RSIEB20," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
78 "gs.RSIEB21 AS RSIEB21, gs.REST AS REST " + |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
79 "FROM MESSUNG m " + |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
80 "JOIN STATION s ON m.STATIONID = s.STATIONID " + |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
81 "JOIN GEWAESSER r ON s.GEWAESSERID = r.GEWAESSERID " + |
4009
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
82 "JOIN GLOTRECHTE g ON m.MESSUNGID = g.MESSUNGID " + |
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
83 "JOIN GPROBE gp ON g.GLOTRECHTEID = gp.GLOTRECHTEID " + |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
84 "JOIN GSIEBUNG gs ON g.GLOTRECHTEID = gs.GLOTRECHTEID " + |
4009
60d88ec49c3b
S(Q) relation. Fixed SQL statements.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4008
diff
changeset
|
85 "JOIN GSIEBSATZ si ON m.GSIEBSATZID = si.GSIEBSATZID " + |
3310
8af1111af180
SQ relation: More fixes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3308
diff
changeset
|
86 "WHERE " + |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
87 "r.NAME = :river_name " + |
3396
3bffbf670b49
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
88 "AND m.Q_BPEGEL IS NOT NULL " + |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
89 "AND s.KM BETWEEN :location - 0.001 AND :location + 0.001 " + |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
90 "AND m.DATUM BETWEEN :from AND :to " + |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
91 "AND m.TGESCHIEBE IS NOT NULL " + |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
92 "AND m.DATUM IS NOT NULL " + |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
93 "AND (" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
94 "COALESCE(gs.RSIEB01, 0) + COALESCE(gs.RSIEB02, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
95 "COALESCE(gs.RSIEB03, 0) + COALESCE(gs.RSIEB04, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
96 "COALESCE(gs.RSIEB05, 0) + COALESCE(gs.RSIEB06, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
97 "COALESCE(gs.RSIEB07, 0) + COALESCE(gs.RSIEB08, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
98 "COALESCE(gs.RSIEB09, 0) + COALESCE(gs.RSIEB10, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
99 "COALESCE(gs.RSIEB11, 0) + COALESCE(gs.RSIEB12, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
100 "COALESCE(gs.RSIEB13, 0) + COALESCE(gs.RSIEB14, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
101 "COALESCE(gs.RSIEB15, 0) + COALESCE(gs.RSIEB16, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
102 "COALESCE(gs.RSIEB17, 0) + COALESCE(gs.RSIEB18, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
103 "COALESCE(gs.RSIEB19, 0) + COALESCE(gs.RSIEB20, 0) +" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
104 "COALESCE(gs.RSIEB21, 0) + COALESCE(gs.REST, 0)) > 0 " + |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
105 "ORDER BY " + |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
106 "m.DATUM, g.UFERABST, g.GLOTRECHTEID, gp.LFDNR"; |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
107 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
108 public static final BasicTransformerAdapter TOTALS_TRANSFORMER = |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
109 new BasicTransformerAdapter() { |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
110 private static final long serialVersionUID = 1L; |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
111 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
112 @Override |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
113 public Object transformTuple(Object [] tuple, String [] aliases) { |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
114 Map<String, Object> map = new HashMap<String, Object>(); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
115 for (int i = 0; i < tuple.length; ++i) { |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
116 Object value = tuple[i]; |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
117 if (value != null) { |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
118 map.put(aliases[i], value); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
119 } |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
120 } |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
121 return new Measurement(map, Collections.<Sieve>emptyList()); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
122 } |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
123 }; |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
124 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
125 private static final int index(String s) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
126 return Integer.parseInt(s.substring(s.length()-2))-1; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
127 } |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
128 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
129 public static final BasicTransformerAdapter FRACTIONS_TRANSFORMER = |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
130 new BasicTransformerAdapter() { |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
131 private static final long serialVersionUID = 1L; |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
132 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
133 @Override |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
134 public Object transformTuple(Object [] tuple, String [] aliases) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
135 Map<String, Object> map = new HashMap<String, Object>(); |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
136 |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
137 Sieve [] sieves = new Sieve[21]; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
138 |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
139 List<Sieve> validSieves = new ArrayList<Sieve>(21); |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
140 |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
141 for (int i = 0; i < tuple.length; ++i) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
142 Object value = tuple[i]; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
143 if (value == null) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
144 continue; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
145 } |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
146 String alias = aliases[i]; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
147 if (alias.startsWith("SIEB")) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
148 Sieve s = new Sieve((Double)value, 0d); |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
149 sieves[index(alias)] = s; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
150 } |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
151 else if (alias.startsWith("RSIEB")) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
152 Sieve s = sieves[index(alias)]; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
153 if (s != null) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
154 s.setLoad((Double)value); |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
155 validSieves.add(s); |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
156 } |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
157 } |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
158 else if (alias.equals("REST")) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
159 Sieve s = new Sieve(0d, (Double)value); |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
160 validSieves.add(s); |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
161 } |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
162 else { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
163 map.put(alias, value); |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
164 } |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
165 } |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
166 |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
167 return new Measurement(map, validSieves); |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
168 } |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
169 }; |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
170 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
171 private MeasurementFactory() { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
172 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
173 |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
174 public static Measurements getMeasurements( |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
175 String river, |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
176 double location, |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
177 DateRange dateRange |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
178 ) { |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
179 Session session = SedDBSessionHolder.HOLDER.get(); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
180 try { |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
181 List<Measurement> totals = loadTotals( |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
182 session, river, location, dateRange); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
183 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
184 List<Measurement> accumulated = loadFractions( |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
185 session, river, location, dateRange); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
186 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
187 return new Measurements(totals, accumulated); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
188 } |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
189 finally { |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
190 session.close(); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
191 } |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
192 } |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
193 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
194 protected static List<Measurement> loadTotals( |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
195 Session session, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
196 String river, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
197 double location, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
198 DateRange dateRange |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
199 ) { |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
200 SQLQuery query = session.createSQLQuery(SQL_TOTALS) |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
201 .addScalar("Q_BPEGEL", StandardBasicTypes.DOUBLE) |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
202 .addScalar("TSCHWEB", StandardBasicTypes.DOUBLE) |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
203 .addScalar("TSAND", StandardBasicTypes.DOUBLE); |
3308
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
204 |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
205 query.setString("river_name", river); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
206 query.setDouble("location", location); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
207 query.setDate("from", dateRange.getFrom()); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
208 query.setDate("to", dateRange.getTo()); |
3308
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
209 |
4008
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
210 query.setResultTransformer(TOTALS_TRANSFORMER); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
211 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
212 @SuppressWarnings("unchecked") |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
213 List<Measurement> result = (List<Measurement>)query.list(); |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
214 return result; |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
215 } |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
216 |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
217 protected static List<Measurement> loadFractions( |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
218 Session session, |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
219 String river, |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
220 double location, |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
221 DateRange dateRange |
fea3d9210948
S(Q) relation: Totals are now fetched with separate SQL statement. Fixed join to GEWAESSER table.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4007
diff
changeset
|
222 ) { |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
223 boolean debug = log.isDebugEnabled(); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
224 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
225 SQLQuery query = session.createSQLQuery(SQL_FACTIONS) |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
226 .addScalar("Q_BPEGEL", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
227 .addScalar("DATUM", StandardBasicTypes.DATE) |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
228 .addScalar("GLOTRECHTEID", StandardBasicTypes.INTEGER) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
229 .addScalar("LFDNR", StandardBasicTypes.INTEGER) |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
230 .addScalar("UFERABST", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
231 .addScalar("UFERABLINKS", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
232 .addScalar("TSCHWEB", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
233 .addScalar("TSAND", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
234 .addScalar("GTRIEB", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
235 .addScalar("TGESCHIEBE", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
236 .addScalar("RSIEB01", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
237 .addScalar("RSIEB02", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
238 .addScalar("RSIEB03", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
239 .addScalar("RSIEB04", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
240 .addScalar("RSIEB05", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
241 .addScalar("RSIEB06", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
242 .addScalar("RSIEB07", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
243 .addScalar("RSIEB08", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
244 .addScalar("RSIEB09", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
245 .addScalar("RSIEB10", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
246 .addScalar("RSIEB11", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
247 .addScalar("RSIEB12", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
248 .addScalar("RSIEB13", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
249 .addScalar("RSIEB14", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
250 .addScalar("RSIEB15", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
251 .addScalar("RSIEB16", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
252 .addScalar("RSIEB17", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
253 .addScalar("RSIEB18", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
254 .addScalar("RSIEB19", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
255 .addScalar("RSIEB20", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
256 .addScalar("RSIEB21", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
257 .addScalar("REST", StandardBasicTypes.DOUBLE) |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
258 .addScalar("SIEB01", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
259 .addScalar("SIEB02", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
260 .addScalar("SIEB03", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
261 .addScalar("SIEB04", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
262 .addScalar("SIEB05", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
263 .addScalar("SIEB06", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
264 .addScalar("SIEB07", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
265 .addScalar("SIEB08", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
266 .addScalar("SIEB09", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
267 .addScalar("SIEB10", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
268 .addScalar("SIEB11", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
269 .addScalar("SIEB12", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
270 .addScalar("SIEB13", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
271 .addScalar("SIEB14", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
272 .addScalar("SIEB15", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
273 .addScalar("SIEB16", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
274 .addScalar("SIEB17", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
275 .addScalar("SIEB18", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
276 .addScalar("SIEB19", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
277 .addScalar("SIEB20", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
278 .addScalar("SIEB21", StandardBasicTypes.DOUBLE); |
3292
e06036fdf0c7
SQ relation: add left joins to GSIEBSATZ and SSIEBUNG
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3291
diff
changeset
|
279 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
280 query.setString("river_name", river); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
281 query.setDouble("location", location); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
282 query.setDate("from", dateRange.getFrom()); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
283 query.setDate("to", dateRange.getTo()); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
284 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
285 query.setResultTransformer(FRACTIONS_TRANSFORMER); |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
286 |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
287 @SuppressWarnings("unchecked") |
4006
d4e39cc5c10c
S(Q) relation: Removed unused field from SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4005
diff
changeset
|
288 List<Measurement> measuments = (List<Measurement>)query.list(); |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
289 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
290 if (debug) { |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
291 log.debug("num fraction results: " + measuments.size()); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
292 } |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
293 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
294 List<Measurement> same = new ArrayList<Measurement>(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
295 |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
296 Integer lastLR = null; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
297 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
298 List<Measurement> accumulated = new ArrayList<Measurement>(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
299 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
300 for (Measurement m: measuments) { |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
301 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
302 Integer currentLR = (Integer)m.getData("GLOTRECHTEID"); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
303 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
304 boolean newDS = lastLR == null |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
305 || (currentLR != null && !lastLR.equals(currentLR)); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
306 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
307 if (newDS && !same.isEmpty()) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
308 accumulated.add(accumulate(same)); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
309 same.clear(); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
310 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
311 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
312 same.add(m); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
313 |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
314 lastLR = currentLR; |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
315 } |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
316 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
317 if (!same.isEmpty()) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
318 accumulated.add(accumulate(same)); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
319 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
320 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
321 for (Measurement m: accumulated) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
322 m.adjustSieves(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
323 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
324 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
325 if (debug) { |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
326 log.debug("Before date separation: " + accumulated.size()); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
327 } |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
328 |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
329 accumulated = separateByDate(accumulated); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
330 |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
331 if (debug) { |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
332 log.debug("After date separation: " + accumulated.size()); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
333 } |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
334 |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
335 return accumulated; |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
336 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
337 |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
338 protected static List<Measurement> separateByDate(List<Measurement> measurements) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
339 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
340 List<Measurement> result = new ArrayList<Measurement>(); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
341 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
342 List<Measurement> same = new ArrayList<Measurement>(); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
343 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
344 Date lastDate = null; |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
345 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
346 for (Measurement m: measurements) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
347 Date currentDate = (Date)m.getData("DATUM"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
348 if ((lastDate == null |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
349 || !equalDate(currentDate, lastDate)) |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
350 && !same.isEmpty() |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
351 ) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
352 result.add(processSameDate(same)); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
353 same.clear(); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
354 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
355 same.add(m); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
356 lastDate = currentDate; |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
357 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
358 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
359 if (!same.isEmpty()) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
360 result.add(processSameDate(same)); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
361 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
362 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
363 return result; |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
364 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
365 |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
366 |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
367 protected static Measurement processSameDate(List<Measurement> measurements) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
368 int N = measurements.size(); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
369 if (N == 1) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
370 Measurement current = measurements.get(0); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
371 double left = current.get("UFERABLINKS"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
372 double right = current.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
373 current.set("EFFWIDTH", left + right); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
374 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
375 else { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
376 for (int i = 0; i < N; ++i) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
377 Measurement current = measurements.get(i); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
378 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
379 if (i == 0) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
380 Measurement next = measurements.get(i+1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
381 double distCurrent = current.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
382 double distNext = next.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
383 current.set("EFFWIDTH", distNext - distCurrent); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
384 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
385 else if (i == N-1) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
386 Measurement prev = measurements.get(i-1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
387 double distCurrent = current.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
388 double distPrev = prev.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
389 current.set("EFFWIDTH", distCurrent - distPrev); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
390 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
391 else { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
392 Measurement prev = measurements.get(i-1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
393 Measurement next = measurements.get(i+1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
394 double distPrev = prev.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
395 double distNext = next.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
396 current.set("EFFWIDTH", 0.5*(distNext - distPrev)); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
397 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
398 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
399 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
400 |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
401 double sumSandF = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
402 double sumCoarseF = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
403 double sumGravelF = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
404 double sumNorm = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
405 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
406 for (Measurement m: measurements) { |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
407 SieveArray sa = m.getSieveArray(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
408 double sandF = sa.sandNormFraction(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
409 double coarseF = sa.coarseNormFraction(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
410 double gravelF = sa.gravelNormFraction(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
411 double effWidth = m.get("EFFWIDTH"); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
412 double gt = m.get("GTRIEB"); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
413 double scale = effWidth*gt; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
414 sumSandF += scale*sandF; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
415 sumCoarseF += scale*coarseF; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
416 sumGravelF += scale*gravelF; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
417 sumNorm += scale; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
418 } |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
419 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
420 Map<String, Object> data = |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
421 new HashMap<String, Object>(measurements.get(0).getData()); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
422 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
423 Measurement m = new Measurement(data, Collections.<Sieve>emptyList()); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
424 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
425 sumNorm = 1d/sumNorm; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
426 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
427 m.set("BL_S", sumNorm*sumSandF); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
428 m.set("BL_G", sumNorm*sumGravelF); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
429 m.set("BL_C", sumNorm*sumCoarseF); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
430 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
431 return m; |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
432 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
433 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
434 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
435 private static final boolean equalDate(Date a, Date b) { |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
436 Calendar ca = Calendar.getInstance(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
437 Calendar cb = Calendar.getInstance(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
438 ca.setTime(a); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
439 cb.setTime(b); |
4006
d4e39cc5c10c
S(Q) relation: Removed unused field from SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4005
diff
changeset
|
440 return ca.get(Calendar.YEAR) == cb.get(Calendar.YEAR) |
d4e39cc5c10c
S(Q) relation: Removed unused field from SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4005
diff
changeset
|
441 && ca.get(Calendar.MONTH) == cb.get(Calendar.MONTH) |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
442 && ca.get(Calendar.DAY_OF_MONTH) == cb.get(Calendar.DAY_OF_MONTH); |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
443 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
444 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
445 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
446 protected static Measurement accumulate(List<Measurement> measuments) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
447 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
448 int N = measuments.size(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
449 if (N == 1) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
450 return measuments.get(0); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
451 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
452 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
453 TreeMap<Double, double []> diameters = |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
454 new TreeMap<Double, double []>(Sieve.DIAMETER_CMP); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
455 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
456 for (Measurement m: measuments) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
457 for (Sieve s: m.getSieves()) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
458 Double key = s.getDiameter(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
459 double [] sum = diameters.get(key); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
460 if (sum == null) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
461 sum = new double[1]; |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
462 diameters.put(key, sum); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
463 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
464 sum[0] += s.getLoad(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
465 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
466 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
467 List<Sieve> accumulatedSieves = new ArrayList<Sieve>(diameters.size()); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
468 for (Map.Entry<Double, double []> entry: diameters.entrySet()) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
469 accumulatedSieves.add( |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
470 new Sieve(entry.getKey(), |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
471 entry.getValue()[0]/N)); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
472 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
473 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
474 Map<String, Object> data = |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
475 new HashMap<String, Object>(measuments.get(0).getData()); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
476 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
477 return new Measurement(data, accumulatedSieves); |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
478 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
479 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
480 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |