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