Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/MeasurementFactory.java @ 8566:fe7e9da6312a
(issue1797) Move close into session release and guard it.
To avoid leaking open and Held sessions we centrally close
the session in the SessionHolder on release.
This also removes some duplicated code in SedDBSessionHolder
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 24 Feb 2015 17:16:14 +0100 |
parents | 84929f882fa2 |
children | 2e11fc7f5d35 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5282
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.sq; |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
11 import java.io.FileWriter; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
12 import java.io.IOException; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
13 import java.text.SimpleDateFormat; |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
14 import java.util.ArrayList; |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
15 import java.util.Calendar; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
16 import java.util.Collections; |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
17 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
|
18 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
|
19 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
|
20 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
|
21 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
|
22 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
23 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
|
24 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 import org.hibernate.SQLQuery; |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 import org.hibernate.Session; |
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 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
|
29 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 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
|
31 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5282
diff
changeset
|
32 import org.dive4elements.river.artifacts.model.DateRange; |
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
|
33 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5282
diff
changeset
|
34 import org.dive4elements.river.backend.SedDBSessionHolder; |
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 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
36 import au.com.bytecode.opencsv.CSVWriter; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
37 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 public class MeasurementFactory |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 { |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
40 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
|
41 Logger.getLogger(MeasurementFactory.class); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
42 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
43 public static final String MINFO_DUMP_SQ_SEDDB_PREFIX = "minfo.dump.sq.seddb.prefix"; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
44 |
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
|
45 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
|
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.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
|
48 "m.TSCHWEB AS TSCHWEB," + |
8539
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
7710
diff
changeset
|
49 "m.TSAND AS TSAND, " + |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
7710
diff
changeset
|
50 "m.DATUM AS DATUM " + |
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
|
51 "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
|
52 "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
|
53 "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
|
54 "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
|
55 "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
|
56 "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
|
57 "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
|
58 "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
|
59 "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
|
60 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
61 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
|
62 "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
|
63 "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
|
64 "m.Q_BPEGEL AS Q_BPEGEL,"+ |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
65 "g.GLOTRECHTEID AS GLOTRECHTEID," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
66 "gp.LFDNR AS LFDNR," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
67 "g.UFERABST AS UFERABST," + |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
68 "g.UFERABLINKS AS UFERABLINKS," + |
6955
94cb1845c667
(issue1452) Coalesce to zero to avoid NaN arithmetic.
Andre Heinecke <aheinecke@intevation.de>
parents:
6780
diff
changeset
|
69 "COALESCE(m.TSCHWEB, 0) AS TSCHWEB," + |
94cb1845c667
(issue1452) Coalesce to zero to avoid NaN arithmetic.
Andre Heinecke <aheinecke@intevation.de>
parents:
6780
diff
changeset
|
70 "COALESCE(m.TSAND, 0) AS TSAND," + |
94cb1845c667
(issue1452) Coalesce to zero to avoid NaN arithmetic.
Andre Heinecke <aheinecke@intevation.de>
parents:
6780
diff
changeset
|
71 "COALESCE(gp.GTRIEB_F, 0) AS GTRIEB," + |
94cb1845c667
(issue1452) Coalesce to zero to avoid NaN arithmetic.
Andre Heinecke <aheinecke@intevation.de>
parents:
6780
diff
changeset
|
72 "COALESCE(m.TGESCHIEBE, 0) AS TGESCHIEBE," + |
7709
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
73 "si.SIEB01 AS SIEB01, si.SIEB02 AS SIEB02," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
74 "si.SIEB03 AS SIEB03, si.SIEB04 AS SIEB04," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
75 "si.SIEB05 AS SIEB05, si.SIEB06 AS SIEB06," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
76 "si.SIEB07 AS SIEB07, si.SIEB08 AS SIEB08," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
77 "si.SIEB09 AS SIEB09, si.SIEB10 AS SIEB10," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
78 "si.SIEB11 AS SIEB11, si.SIEB12 AS SIEB12," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
79 "si.SIEB13 AS SIEB13, si.SIEB14 AS SIEB14," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
80 "si.SIEB15 AS SIEB15, si.SIEB16 AS SIEB16," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
81 "si.SIEB17 AS SIEB17, si.SIEB18 AS SIEB18," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
82 "si.SIEB19 AS SIEB19, si.SIEB20 AS SIEB20," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
83 "si.SIEB21 AS SIEB21," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
84 "gs.RSIEB01 AS RSIEB01, gs.RSIEB02 AS RSIEB02," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
85 "gs.RSIEB03 AS RSIEB03, gs.RSIEB04 AS RSIEB04," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
86 "gs.RSIEB05 AS RSIEB05, gs.RSIEB06 AS RSIEB06," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
87 "gs.RSIEB07 AS RSIEB07, gs.RSIEB08 AS RSIEB08," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
88 "gs.RSIEB09 AS RSIEB09, gs.RSIEB10 AS RSIEB10," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
89 "gs.RSIEB11 AS RSIEB11, gs.RSIEB12 AS RSIEB12," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
90 "gs.RSIEB13 AS RSIEB13, gs.RSIEB14 AS RSIEB14," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
91 "gs.RSIEB15 AS RSIEB15, gs.RSIEB16 AS RSIEB16," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
92 "gs.RSIEB17 AS RSIEB17, gs.RSIEB18 AS RSIEB18," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
93 "gs.RSIEB19 AS RSIEB19, gs.RSIEB20 AS RSIEB20," + |
0737573aa9ac
S/Q relation removed false COALSCE from SQL statement. Removed misplaced sieve adjustment.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7704
diff
changeset
|
94 "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
|
95 "FROM MESSUNG m " + |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
96 "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
|
97 "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
|
98 "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
|
99 "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
|
100 "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
|
101 "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
|
102 "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
|
103 "r.NAME = :river_name " + |
3396
3bffbf670b49
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3393
diff
changeset
|
104 "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
|
105 "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
|
106 "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
|
107 "AND m.TGESCHIEBE IS NOT NULL " + |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
108 "AND m.DATUM IS NOT NULL " + |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
109 "AND (" + |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
110 "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
|
111 "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
|
112 "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
|
113 "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
|
114 "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
|
115 "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
|
116 "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
|
117 "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
|
118 "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
|
119 "COALESCE(gs.RSIEB19, 0) + COALESCE(gs.RSIEB20, 0) +" + |
7704
a877d2680a4a
SQ relation: only take sieve which have values at all.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7698
diff
changeset
|
120 "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
|
121 "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
|
122 "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
|
123 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
124 private static final int index(String s) { |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
125 return Integer.parseInt(s.substring(s.length()-2))-1; |
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
126 } |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
127 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
128 public abstract static class CSVTransformer extends BasicTransformerAdapter { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
129 private static final long serialVersionUID = 1L; |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
130 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
131 private CSVWriter rawWriter; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
132 private boolean metaDataWritten; |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
133 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
134 public CSVTransformer() { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
135 this(null); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
136 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
137 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
138 public CSVTransformer(CSVWriter rawWriter) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
139 this.rawWriter = rawWriter; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
140 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
141 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
142 protected void writeRaw(Object [] tuple, String [] aliases) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
143 if (rawWriter == null) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
144 return; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
145 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
146 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
147 if (!metaDataWritten) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
148 rawWriter.writeNext(aliases); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
149 metaDataWritten = true; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
150 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
151 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
152 String [] nextLine = new String[tuple.length]; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
153 for (int i = 0; i < tuple.length; ++i) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
154 nextLine[i] = tuple[i] != null ? tuple[i].toString() : ""; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
155 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
156 rawWriter.writeNext(nextLine); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
157 } |
7704
a877d2680a4a
SQ relation: only take sieve which have values at all.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7698
diff
changeset
|
158 } // class CSVTransformer |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
159 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
160 public static class FractionsTransformer extends CSVTransformer { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
161 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
162 private static final long serialVersionUID = 1L; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
163 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
164 public FractionsTransformer() { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
165 this(null); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
166 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
167 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
168 public FractionsTransformer(CSVWriter rawWriter) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
169 super(rawWriter); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
170 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
171 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
172 @Override |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
173 public Object transformTuple(Object [] tuple, String [] aliases) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
174 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
175 writeRaw(tuple, aliases); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
176 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
177 Map<String, Object> map = new HashMap<String, Object>(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
178 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
179 Sieve [] sieves = new Sieve[21]; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
180 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
181 List<Sieve> validSieves = new ArrayList<Sieve>(21); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
182 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
183 for (int i = 0; i < tuple.length; ++i) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
184 Object value = tuple[i]; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
185 if (value == null) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
186 continue; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
187 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
188 String alias = aliases[i]; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
189 if (alias.startsWith("SIEB") |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
190 || alias.startsWith("RSIEB")) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
191 int idx = index(alias); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
192 Sieve s = sieves[idx]; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
193 double v = (Double)value; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
194 if (s == null) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
195 s = new Sieve(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
196 sieves[idx] = s; |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
197 } |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
198 if (alias.startsWith("SIEB")) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
199 s.setDiameter(v); |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3985
diff
changeset
|
200 } |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
201 else { |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
202 s.setLoad(v); |
4789
0df2247d98e1
Create and add sieves regardless of the the order of diameter/value.
Raimund Renkert <rrenkert@intevation.de>
parents:
4066
diff
changeset
|
203 } |
0df2247d98e1
Create and add sieves regardless of the the order of diameter/value.
Raimund Renkert <rrenkert@intevation.de>
parents:
4066
diff
changeset
|
204 } |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
205 else if (alias.equals("REST")) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
206 Sieve s = new Sieve(0d, (Double)value); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
207 validSieves.add(s); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
208 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
209 else { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
210 map.put(alias, value); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
211 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
212 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
213 } |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
214 for (Sieve s: sieves) { |
7710
a8fd76b15d41
S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7709
diff
changeset
|
215 if (s != null && s.isValid()) { |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
216 validSieves.add(s); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
217 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
218 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
219 return new Measurement(map, validSieves); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
220 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
221 } // class FractionsTransformer |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
222 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
223 public static class TotalsTransformer extends CSVTransformer { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
224 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
225 private static final long serialVersionUID = 1L; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
226 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
227 public TotalsTransformer() { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
228 this(null); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
229 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
230 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
231 public TotalsTransformer(CSVWriter rawWriter) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
232 super(rawWriter); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
233 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
234 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
235 @Override |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
236 public Object transformTuple(Object [] tuple, String [] aliases) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
237 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
238 writeRaw(tuple, aliases); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
239 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
240 Map<String, Object> map = new HashMap<String, Object>(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
241 for (int i = 0; i < tuple.length; ++i) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
242 Object value = tuple[i]; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
243 if (value != null) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
244 map.put(aliases[i], value); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
245 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
246 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
247 return new Measurement(map, Collections.<Sieve>emptyList()); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
248 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
249 } // class TotalsTransformer |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
250 |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
251 private MeasurementFactory() { |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
252 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
253 |
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
|
254 public static Measurements getMeasurements( |
6780
b8f94e865875
S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
255 String river, |
b8f94e865875
S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
256 double location, |
b8f94e865875
S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
257 DateRange dateRange, |
b8f94e865875
S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5994
diff
changeset
|
258 SQ.Factory sqFactory |
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
|
259 ) { |
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
|
260 Session session = SedDBSessionHolder.HOLDER.get(); |
8566
fe7e9da6312a
(issue1797) Move close into session release and guard it.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8539
diff
changeset
|
261 List<Measurement> totals = loadTotals( |
fe7e9da6312a
(issue1797) Move close into session release and guard it.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8539
diff
changeset
|
262 session, river, location, dateRange); |
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
|
263 |
8566
fe7e9da6312a
(issue1797) Move close into session release and guard it.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8539
diff
changeset
|
264 List<Measurement> accumulated = loadFractions( |
fe7e9da6312a
(issue1797) Move close into session release and guard it.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8539
diff
changeset
|
265 session, river, location, dateRange); |
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
|
266 |
8566
fe7e9da6312a
(issue1797) Move close into session release and guard it.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8539
diff
changeset
|
267 return new Measurements(totals, accumulated, sqFactory); |
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
|
268 } |
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
|
269 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
270 @SuppressWarnings("unchecked") |
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
|
271 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
|
272 Session session, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
273 String river, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
274 double location, |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
275 DateRange dateRange |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
276 ) { |
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
|
277 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
|
278 .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
|
279 .addScalar("TSCHWEB", StandardBasicTypes.DOUBLE) |
8539
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
7710
diff
changeset
|
280 .addScalar("TSAND", StandardBasicTypes.DOUBLE) |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
7710
diff
changeset
|
281 .addScalar("DATUM", StandardBasicTypes.DATE); |
3308
5ccd51ca11ce
SQ relation: Fixed problem with string operation precedence.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3292
diff
changeset
|
282 |
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
|
283 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
|
284 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
|
285 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
|
286 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
|
287 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
288 CSVWriter csvWriter = |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
289 getCVSWriter("totals", river, location, dateRange); |
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
|
290 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
291 try { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
292 TotalsTransformer totalTransformer = new TotalsTransformer(csvWriter); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
293 query.setResultTransformer(totalTransformer); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
294 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
295 return (List<Measurement>)query.list(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
296 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
297 finally { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
298 closeGraceful(csvWriter); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
299 } |
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
|
300 } |
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
|
301 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
302 private static CSVWriter getCVSWriter( |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
303 String type, |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
304 String river, |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
305 double location, |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
306 DateRange dateRange |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
307 ) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
308 String dumpPrefix = System.getProperty(MINFO_DUMP_SQ_SEDDB_PREFIX); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
309 if (dumpPrefix == null) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
310 return null; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
311 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
312 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
313 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddd"); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
314 StringBuilder sb = new StringBuilder(dumpPrefix); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
315 Date from = dateRange.getFrom(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
316 Date to = dateRange.getTo(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
317 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
318 sb.append(type) |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
319 .append('-').append(df.format(new Date())) |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
320 .append('-').append(river) |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
321 .append('-').append(location) |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
322 .append('-').append(from != null ? df.format(from) : "") |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
323 .append('-').append(to != null ? df.format(to) : "") |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
324 .append(".csv"); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
325 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
326 String fileName = sb.toString(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
327 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
328 try { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
329 return new CSVWriter(new FileWriter(fileName), ';'); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
330 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
331 catch (IOException ioe) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
332 log.error("Cannot open '" + fileName + "' for writing.", ioe); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
333 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
334 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
335 return null; |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
336 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
337 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
338 private static void closeGraceful(CSVWriter writer) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
339 if (writer != null) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
340 try { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
341 writer.flush(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
342 writer.close(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
343 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
344 catch (IOException ioe) { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
345 log.error(ioe); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
346 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
347 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
348 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
349 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
350 @SuppressWarnings("unchecked") |
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
|
351 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
|
352 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
|
353 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
|
354 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
|
355 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
|
356 ) { |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
357 boolean debug = log.isDebugEnabled(); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
358 |
4007
d4d272e56d3a
S(Q) Fixed AIOOBE
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4006
diff
changeset
|
359 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
|
360 .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
|
361 .addScalar("DATUM", StandardBasicTypes.DATE) |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
362 .addScalar("GLOTRECHTEID", StandardBasicTypes.INTEGER) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
363 .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
|
364 .addScalar("UFERABST", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
365 .addScalar("UFERABLINKS", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
366 .addScalar("TSCHWEB", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
367 .addScalar("TSAND", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
368 .addScalar("GTRIEB", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
369 .addScalar("TGESCHIEBE", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
370 .addScalar("RSIEB01", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
371 .addScalar("RSIEB02", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
372 .addScalar("RSIEB03", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
373 .addScalar("RSIEB04", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
374 .addScalar("RSIEB05", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
375 .addScalar("RSIEB06", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
376 .addScalar("RSIEB07", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
377 .addScalar("RSIEB08", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
378 .addScalar("RSIEB09", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
379 .addScalar("RSIEB10", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
380 .addScalar("RSIEB11", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
381 .addScalar("RSIEB12", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
382 .addScalar("RSIEB13", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
383 .addScalar("RSIEB14", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
384 .addScalar("RSIEB15", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
385 .addScalar("RSIEB16", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
386 .addScalar("RSIEB17", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
387 .addScalar("RSIEB18", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
388 .addScalar("RSIEB19", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
389 .addScalar("RSIEB20", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
390 .addScalar("RSIEB21", StandardBasicTypes.DOUBLE) |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
391 .addScalar("REST", StandardBasicTypes.DOUBLE) |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
392 .addScalar("SIEB01", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
393 .addScalar("SIEB02", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
394 .addScalar("SIEB03", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
395 .addScalar("SIEB04", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
396 .addScalar("SIEB05", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
397 .addScalar("SIEB06", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
398 .addScalar("SIEB07", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
399 .addScalar("SIEB08", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
400 .addScalar("SIEB09", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
401 .addScalar("SIEB10", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
402 .addScalar("SIEB11", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
403 .addScalar("SIEB12", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
404 .addScalar("SIEB13", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
405 .addScalar("SIEB14", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
406 .addScalar("SIEB15", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
407 .addScalar("SIEB16", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
408 .addScalar("SIEB17", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
409 .addScalar("SIEB18", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
410 .addScalar("SIEB19", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
411 .addScalar("SIEB20", StandardBasicTypes.DOUBLE) |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
412 .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
|
413 |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
414 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
|
415 query.setDouble("location", location); |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
416 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
|
417 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
|
418 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
419 List<Measurement> measuments; |
3289
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
420 |
7698
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
421 CSVWriter csvWriter = |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
422 getCVSWriter("fractions", river, location, dateRange); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
423 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
424 try { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
425 FractionsTransformer fractionsTransformer = |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
426 new FractionsTransformer(csvWriter); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
427 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
428 query.setResultTransformer(fractionsTransformer); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
429 |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
430 measuments = (List<Measurement>)query.list(); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
431 } |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
432 finally { |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
433 closeGraceful(csvWriter); |
7efeaa2058e1
SQ Relation: Added CSV dumping to raw SedDB query results.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7253
diff
changeset
|
434 } |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
435 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
436 if (debug) { |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
437 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
|
438 } |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
439 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
440 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
|
441 |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
442 Integer lastLR = null; |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
443 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
444 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
|
445 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
446 for (Measurement m: measuments) { |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
447 Integer currentLR = (Integer)m.getData("GLOTRECHTEID"); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
448 |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
449 boolean newDS = lastLR == null |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
450 || (currentLR != null && !lastLR.equals(currentLR)); |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
451 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
452 if (newDS && !same.isEmpty()) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
453 accumulated.add(accumulate(same)); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
454 same.clear(); |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
455 } |
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
456 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
457 same.add(m); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
458 |
3981
6bcc50e2cc7d
More code for S(Q) relation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3929
diff
changeset
|
459 lastLR = currentLR; |
3928
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
460 } |
d3e2080d3ada
S(Q) relation. Extract more values from database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3922
diff
changeset
|
461 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
462 if (!same.isEmpty()) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
463 accumulated.add(accumulate(same)); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
464 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
465 |
4066
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
466 if (debug) { |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
467 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
|
468 } |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
469 |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
470 accumulated = separateByDate(accumulated); |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
471 |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
472 if (debug) { |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
473 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
|
474 } |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
475 |
f02aa4ff3c0f
S/Q relation: Fixed problem with loosing meassurement points.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4009
diff
changeset
|
476 return accumulated; |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
477 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
478 |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
479 protected static List<Measurement> separateByDate(List<Measurement> measurements) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
480 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
481 List<Measurement> result = new ArrayList<Measurement>(); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
482 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
483 List<Measurement> same = new ArrayList<Measurement>(); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
484 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
485 Date lastDate = null; |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
486 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
487 for (Measurement m: measurements) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
488 Date currentDate = (Date)m.getData("DATUM"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
489 if ((lastDate == null |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
490 || !equalDate(currentDate, lastDate)) |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
491 && !same.isEmpty() |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
492 ) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
493 result.add(processSameDate(same)); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
494 same.clear(); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
495 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
496 same.add(m); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
497 lastDate = currentDate; |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
498 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
499 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
500 if (!same.isEmpty()) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
501 result.add(processSameDate(same)); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
502 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
503 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
504 return result; |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
505 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
506 |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
507 |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
508 protected static Measurement processSameDate(List<Measurement> measurements) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
509 int N = measurements.size(); |
4842
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
510 |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
511 boolean debug = log.isDebugEnabled(); |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
512 if (debug && N > 0) { |
4837
9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4813
diff
changeset
|
513 log.debug("process same date for Q: " + measurements.get(0).Q()); |
9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4813
diff
changeset
|
514 } |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
515 if (N == 1) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
516 Measurement current = measurements.get(0); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
517 double left = current.get("UFERABLINKS"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
518 double right = current.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
519 current.set("EFFWIDTH", left + right); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
520 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
521 else { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
522 for (int i = 0; i < N; ++i) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
523 Measurement current = measurements.get(i); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
524 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
525 if (i == 0) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
526 Measurement next = measurements.get(i+1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
527 double distCurrent = current.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
528 double distNext = next.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
529 current.set("EFFWIDTH", distNext - distCurrent); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
530 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
531 else if (i == N-1) { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
532 Measurement prev = measurements.get(i-1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
533 double distCurrent = current.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
534 double distPrev = prev.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
535 current.set("EFFWIDTH", distCurrent - distPrev); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
536 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
537 else { |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
538 Measurement prev = measurements.get(i-1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
539 Measurement next = measurements.get(i+1); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
540 double distPrev = prev.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
541 double distNext = next.get("UFERABST"); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
542 current.set("EFFWIDTH", 0.5*(distNext - distPrev)); |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
543 } |
4842
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
544 if (debug) { |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
545 log.debug("effective width: " + current.get("EFFWIDTH")); |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
546 } |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
547 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
548 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
549 |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
550 double sumSandF = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
551 double sumCoarseF = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
552 double sumGravelF = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
553 double sumNorm = 0d; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
554 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
555 for (Measurement m: measurements) { |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
556 SieveArray sa = m.getSieveArray(); |
4837
9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4813
diff
changeset
|
557 if (sa.totalLoad() < SieveArray.EPSILON) { |
9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4813
diff
changeset
|
558 continue; |
9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4813
diff
changeset
|
559 } |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
560 double sandF = sa.sandNormFraction(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
561 double coarseF = sa.coarseNormFraction(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
562 double gravelF = sa.gravelNormFraction(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
563 double effWidth = m.get("EFFWIDTH"); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
564 double gt = m.get("GTRIEB"); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
565 double scale = effWidth*gt; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
566 sumSandF += scale*sandF; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
567 sumCoarseF += scale*coarseF; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
568 sumGravelF += scale*gravelF; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
569 sumNorm += scale; |
4842
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
570 if (debug) { |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
571 log.debug("fractions - s: " + |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
572 sandF + " c: " + |
5282
14db045d6368
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4842
diff
changeset
|
573 coarseF + " g: " + |
4842
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
574 gravelF); |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
575 log.debug("scale: " + scale + " = " + effWidth + " * " + gt); |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
576 } |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
577 } |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
578 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
579 Map<String, Object> data = |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
580 new HashMap<String, Object>(measurements.get(0).getData()); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
581 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
582 Measurement m = new Measurement(data, Collections.<Sieve>emptyList()); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
583 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
584 sumNorm = 1d/sumNorm; |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
585 |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
586 m.set("BL_S", sumNorm*sumSandF); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
587 m.set("BL_G", sumNorm*sumGravelF); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
588 m.set("BL_C", sumNorm*sumCoarseF); |
4842
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
589 if (debug) { |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
590 log.debug( |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
591 "BL_S: " + m.get("BL_S") + |
5282
14db045d6368
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4842
diff
changeset
|
592 " BL_G: " + m.get("BL_G") + |
4842
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
593 " BL_C: " + m.get("BL_C")); |
97a0fa4dff8e
Use isDebugEnabled() in S/Q Measurement factory.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4838
diff
changeset
|
594 } |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
595 return m; |
4004
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
596 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
597 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
598 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
599 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
|
600 Calendar ca = Calendar.getInstance(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
601 Calendar cb = Calendar.getInstance(); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
602 ca.setTime(a); |
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
603 cb.setTime(b); |
4006
d4e39cc5c10c
S(Q) relation: Removed unused field from SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4005
diff
changeset
|
604 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
|
605 && ca.get(Calendar.MONTH) == cb.get(Calendar.MONTH) |
4005
22abdc45869c
Calculate S(Q) fractions
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4004
diff
changeset
|
606 && 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
|
607 } |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
608 |
3b79e8afca7e
S(Q) calculate effective width
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4001
diff
changeset
|
609 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
610 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
|
611 |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
612 int N = measuments.size(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
613 if (N == 1) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
614 return measuments.get(0); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
615 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
616 TreeMap<Double, double []> diameters = |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
617 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
|
618 |
4813
bf2fd9c58ac4
Fixed MINFO SQ calculation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4789
diff
changeset
|
619 double sumGTrieb = 0d; |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
620 for (Measurement m: measuments) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
621 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
|
622 Double key = s.getDiameter(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
623 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
|
624 if (sum == null) { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
625 sum = new double[1]; |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
626 diameters.put(key, sum); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
627 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
628 sum[0] += s.getLoad(); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
629 } |
4813
bf2fd9c58ac4
Fixed MINFO SQ calculation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4789
diff
changeset
|
630 // calculate 'Geschiebetrieb' |
bf2fd9c58ac4
Fixed MINFO SQ calculation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4789
diff
changeset
|
631 sumGTrieb += m.get("GTRIEB"); |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
632 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
633 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
|
634 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
|
635 accumulatedSieves.add( |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
636 new Sieve(entry.getKey(), |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
637 entry.getValue()[0]/N)); |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
638 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
639 Map<String, Object> data = |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
640 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
|
641 |
4813
bf2fd9c58ac4
Fixed MINFO SQ calculation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4789
diff
changeset
|
642 data.put("GTRIEB", sumGTrieb/N); |
4837
9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
4813
diff
changeset
|
643 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
644 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
|
645 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
646 } |
ec9aab93f292
SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
647 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |