Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/HistoricalDischargeComputeState.java @ 5580:fa5868a52f14
Change HWS Strings in the floodmap for current calculations
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 05 Apr 2013 17:10:52 +0200 |
parents | 1b73b731f7bd |
children |
rev | line source |
---|---|
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.states; |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
4928
57652f905a87
HistoricalDischargeComputeState: Fix flys/issue664 i18n numbered facettes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4927
diff
changeset
|
3 import java.text.NumberFormat; |
57652f905a87
HistoricalDischargeComputeState: Fix flys/issue664 i18n numbered facettes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4927
diff
changeset
|
4 |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
5 import java.util.List; |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
7 import org.apache.log4j.Logger; |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import org.w3c.dom.Element; |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
10 import de.intevation.artifactdatabase.state.Facet; |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.artifacts.Artifact; |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.artifacts.CallContext; |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
14 import de.intevation.flys.artifacts.FLYSArtifact; |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
15 import de.intevation.flys.artifacts.WINFOArtifact; |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
16 import de.intevation.flys.artifacts.access.HistoricalDischargeAccess; |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
17 import de.intevation.flys.artifacts.access.HistoricalDischargeAccess.EvaluationMode; |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
18 import de.intevation.flys.artifacts.model.CalculationResult; |
2258
ea173e4c07c7
Added a CSV export for historical discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2250
diff
changeset
|
19 import de.intevation.flys.artifacts.model.DataFacet; |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
20 import de.intevation.flys.artifacts.model.FacetTypes; |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
21 import de.intevation.flys.artifacts.model.HistoricalDischargeCurveFacet; |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
22 import de.intevation.flys.artifacts.model.HistoricalDischargeData; |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
23 import de.intevation.flys.artifacts.model.HistoricalDischargeDifferenceFacet; |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
24 import de.intevation.flys.artifacts.model.HistoricalDischargeFacet; |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
25 import de.intevation.flys.artifacts.model.HistoricalDischargeWQFacet; |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
26 import de.intevation.flys.artifacts.model.HistoricalWQKms; |
2311
b8df8d1476ba
Compute differences between discharge table values and reference discharge table values in historical discharge curve calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2258
diff
changeset
|
27 import de.intevation.flys.artifacts.model.HistoricalWQTimerange; |
2244
7335c526befd
Added an error report for historical discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2228
diff
changeset
|
28 import de.intevation.flys.artifacts.model.ReportFacet; |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
29 import de.intevation.flys.artifacts.model.WQKms; |
2228
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
30 import de.intevation.flys.artifacts.model.WQTimerange; |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
31 import de.intevation.flys.artifacts.resources.Resources; |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
32 import de.intevation.flys.model.TimeInterval; |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 /** |
3047
d20215a0afd8
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2311
diff
changeset
|
36 * State to calculate historical discharge curves. |
4736
b195fede1c3b
Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4260
diff
changeset
|
37 * |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 */ |
4927
eb1cde786abf
HistoricalDischargeComputeState: Cosmetic.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4736
diff
changeset
|
40 public class HistoricalDischargeComputeState |
eb1cde786abf
HistoricalDischargeComputeState: Cosmetic.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4736
diff
changeset
|
41 extends DefaultState |
eb1cde786abf
HistoricalDischargeComputeState: Cosmetic.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4736
diff
changeset
|
42 implements FacetTypes { |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
43 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
44 private static final Logger logger = Logger |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
45 .getLogger(HistoricalDischargeComputeState.class); |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
46 |
4144
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
47 public static final String DEFAULT_UNIT = "cm"; |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
48 public static final String I18N_WQ_CURVE_FACET_RANGE = "historical_discharge.wq.curve_range"; |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
49 public static final String I18N_WQ_CURVE_FACET_SINCE = "historical_discharge.wq.curve_since"; |
4144
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
50 |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 @Override |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
52 protected void appendItems(Artifact artifact, ElementCreator creator, |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
53 String name, CallContext context, Element select) { |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 // TODO IMPLEMENT ME |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 } |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
56 |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
57 @Override |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
58 public Object computeAdvance(FLYSArtifact artifact, String hash, |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
59 CallContext context, List<Facet> facets, Object old) { |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
60 logger.debug("HistoricalDischargeComputeState.computeAdvance"); |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
61 |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
62 WINFOArtifact winfo = (WINFOArtifact) artifact; |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
63 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
64 CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
65 : winfo.getHistoricalDischargeData(); |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
66 |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
67 if (facets == null) { |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
68 return res; |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
69 } |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
70 |
2250
40608c82e9cb
Bugfix: create a report facet for historical discharge curves even if no data has been computed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2244
diff
changeset
|
71 if (res.getReport().hasProblems()) { |
40608c82e9cb
Bugfix: create a report facet for historical discharge curves even if no data has been computed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2244
diff
changeset
|
72 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); |
40608c82e9cb
Bugfix: create a report facet for historical discharge curves even if no data has been computed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2244
diff
changeset
|
73 } |
40608c82e9cb
Bugfix: create a report facet for historical discharge curves even if no data has been computed.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2244
diff
changeset
|
74 |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
75 HistoricalDischargeData data = (HistoricalDischargeData) res.getData(); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
76 HistoricalDischargeAccess access = new HistoricalDischargeAccess( |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
77 artifact); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
78 |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
79 WQTimerange[] wqts = (WQTimerange[]) data.getWQTimeranges(); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
80 if (wqts != null && wqts.length > 0) { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
81 facets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
82 hash, id)); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
83 |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
84 facets.add(new DataFacet(PDF, "PDF data", ComputeType.ADVANCE, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
85 hash, id)); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
86 |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
87 prepareFacets(facets, wqts, access); |
2228
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
88 } |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
89 |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
90 WQKms[] wqs = (WQKms[]) data.getWQs(); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
91 if (wqs != null && wqs.length > 0) { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
92 prepareWQFacets(context, facets, wqs, access, hash); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
93 } |
2215
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
94 |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
95 return res; |
ebbb18ed78c4
Added new classes and stubs used to calculate data for historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2191
diff
changeset
|
96 } |
2228
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
97 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
98 protected void prepareFacets(List<Facet> facets, WQTimerange[] wqts, |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
99 HistoricalDischargeAccess access) { |
2228
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
100 int i = 0; |
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
101 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
102 for (WQTimerange wqt : wqts) { |
2228
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
103 logger.debug("Prepare facet for: " + wqt.getName()); |
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
104 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
105 EvaluationMode evalMode = access.getEvaluationMode(); |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
106 if (evalMode == EvaluationMode.W) { |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
107 facets.add(new HistoricalDischargeFacet(i, |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
108 HISTORICAL_DISCHARGE_Q, createFacetTitle(wqt))); |
2311
b8df8d1476ba
Compute differences between discharge table values and reference discharge table values in historical discharge curve calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2258
diff
changeset
|
109 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
110 if (wqt instanceof HistoricalWQTimerange) { |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
111 logger |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
112 .debug("Create another facet for historical differences."); |
2311
b8df8d1476ba
Compute differences between discharge table values and reference discharge table values in historical discharge curve calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2258
diff
changeset
|
113 |
5335
05eeedc5b156
Doc, cosmetic and TODO fixes, renamed field in WQTimeRange.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4928
diff
changeset
|
114 // TODO CREATE BETTER TITLE FOR FACETS (issue1180) |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
115 facets.add(new HistoricalDischargeDifferenceFacet(i, |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
116 HISTORICAL_DISCHARGE_Q_DIFF, "DIFF: " + wqt.getName())); |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
117 } |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
118 } |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
119 else { |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
120 facets.add(new HistoricalDischargeFacet(i, |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
121 HISTORICAL_DISCHARGE_W, createFacetTitle(wqt))); |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
122 |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
123 if (wqt instanceof HistoricalWQTimerange) { |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
124 logger |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
125 .debug("Create another facet for historical differences."); |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
126 |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
127 // TODO CREATE BETTER TITLE FOR FACETS |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
128 facets.add(new HistoricalDischargeDifferenceFacet(i, |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
129 HISTORICAL_DISCHARGE_W_DIFF, "DIFF: " + wqt.getName())); |
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
130 } |
2311
b8df8d1476ba
Compute differences between discharge table values and reference discharge table values in historical discharge curve calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2258
diff
changeset
|
131 } |
b8df8d1476ba
Compute differences between discharge table values and reference discharge table values in historical discharge curve calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2258
diff
changeset
|
132 |
b8df8d1476ba
Compute differences between discharge table values and reference discharge table values in historical discharge curve calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2258
diff
changeset
|
133 i++; |
2228
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
134 } |
4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2215
diff
changeset
|
135 } |
4144
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
136 |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
137 protected void prepareWQFacets(CallContext cc, List<Facet> facets, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
138 WQKms[] wqs, HistoricalDischargeAccess access, String hash) { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
139 double[] ws = access.getWs(); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
140 double[] qs = access.getQs(); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
141 |
4928
57652f905a87
HistoricalDischargeComputeState: Fix flys/issue664 i18n numbered facettes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4927
diff
changeset
|
142 NumberFormat format = NumberFormat.getInstance( |
57652f905a87
HistoricalDischargeComputeState: Fix flys/issue664 i18n numbered facettes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4927
diff
changeset
|
143 Resources.getLocale(cc.getMeta())); |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
144 for (int k = 0; k < ws.length; k++) { |
4260
e4a415773b0a
Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4258
diff
changeset
|
145 facets.add(new HistoricalDischargeWQFacet(k, |
4928
57652f905a87
HistoricalDischargeComputeState: Fix flys/issue664 i18n numbered facettes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4927
diff
changeset
|
146 HISTORICAL_DISCHARGE_WQ_W, "W=" + format.format(ws[k]), ComputeType.ADVANCE, |
4260
e4a415773b0a
Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4258
diff
changeset
|
147 hash, getID(), ws[k])); |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
148 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
149 |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
150 for (int k = 0; k < qs.length; k++) { |
4260
e4a415773b0a
Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4258
diff
changeset
|
151 facets.add(new HistoricalDischargeWQFacet(k, |
4928
57652f905a87
HistoricalDischargeComputeState: Fix flys/issue664 i18n numbered facettes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4927
diff
changeset
|
152 HISTORICAL_DISCHARGE_WQ_Q, "Q=" + format.format(qs[k]), ComputeType.ADVANCE, |
4260
e4a415773b0a
Added the 'index' parameter to HistoricalDischargeWQFacet to avoid loosing facets during the merge process in the FLYSArtifactCollection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4258
diff
changeset
|
153 hash, getID(), qs[k])); |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
154 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
155 |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
156 int idx = 0; |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
157 for (WQKms wqkms : wqs) { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
158 String title = null; |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
159 if (wqkms instanceof HistoricalWQKms) { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
160 title = createDischargeCurveTitle(cc, (HistoricalWQKms) wqkms); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
161 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
162 else { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
163 title = wqkms.getName(); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
164 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
165 |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
166 facets.add(new HistoricalDischargeCurveFacet(idx, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
167 HISTORICAL_DISCHARGE_WQ_CURVE, title, ComputeType.ADVANCE, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
168 getID(), hash)); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
169 idx++; |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
170 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
171 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
172 |
5339
1b73b731f7bd
Doc, debug fix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5335
diff
changeset
|
173 /** Create title for a Discharge-curve, including date. */ |
4241
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
174 protected String createDischargeCurveTitle(CallContext cc, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
175 HistoricalWQKms wqkms) { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
176 TimeInterval timeInterval = wqkms.getTimeInterval(); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
177 |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
178 if (timeInterval.getStopTime() != null) { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
179 return Resources.format(cc.getMeta(), I18N_WQ_CURVE_FACET_RANGE, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
180 I18N_WQ_CURVE_FACET_RANGE, timeInterval.getStartTime(), |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
181 timeInterval.getStopTime()); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
182 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
183 else { |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
184 return Resources.format(cc.getMeta(), I18N_WQ_CURVE_FACET_SINCE, |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
185 I18N_WQ_CURVE_FACET_SINCE, timeInterval.getStartTime()); |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
186 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
187 } |
49cb65d5932d
Improved the historical discharge calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4232
diff
changeset
|
188 |
5339
1b73b731f7bd
Doc, debug fix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5335
diff
changeset
|
189 |
1b73b731f7bd
Doc, debug fix.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5335
diff
changeset
|
190 /** Create string for facets name/description. */ |
4144
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
191 protected String createFacetTitle(WQTimerange wqt) { |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
192 String name = wqt.getName(); |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
193 |
4232
b3aa91e45010
Implemented the Q evaluation mode for historical discharge calculations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
4144
diff
changeset
|
194 return name != null && name.indexOf("W") >= 0 ? createFacetTitleW(wqt) |
4144
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
195 : createFacetTitleQ(wqt); |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
196 } |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
197 |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
198 protected String createFacetTitleW(WQTimerange wqt) { |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
199 String name = wqt.getName(); |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
200 return name + " " + DEFAULT_UNIT; |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
201 } |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
202 |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
203 protected String createFacetTitleQ(WQTimerange wqt) { |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
204 return wqt.getName(); |
d7db9baa4e62
#930 Added unit [cm] of discharge tables to the facet description of historical discharge curves if calculation mode is W.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3047
diff
changeset
|
205 } |
2191
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
206 } |
f28844a57fed
Added states (work is not finished yet) for the 'historical discharge curve' calculation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
207 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |