annotate artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java @ 7289:015e12aac2dc

issue1512: Adjusted Q and WOutProcessors to handle data coming from FlowVelocityMeasurementArtifacts.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 11 Oct 2013 12:12:52 +0200
parents c882fcf75a0d
children 01d1ed168b24
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: 5800
diff changeset
9 package org.dive4elements.river.exports.process;
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
12 import org.jfree.data.xy.XYSeries;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
13
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
15 import org.dive4elements.artifacts.CallContext;
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
16 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
17 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
18 import org.dive4elements.river.artifacts.model.WKms;
7113
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
19 import org.dive4elements.river.artifacts.model.WQCKms;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
20 import org.dive4elements.river.exports.StyledSeriesBuilder;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
21 import org.dive4elements.river.exports.XYChartGenerator;
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
22 import org.dive4elements.river.exports.DiagramGenerator;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
23 import org.dive4elements.river.jfree.StyledAreaSeriesCollection;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5800
diff changeset
24 import org.dive4elements.river.jfree.StyledXYSeries;
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6643
diff changeset
25 import org.dive4elements.river.themes.ThemeDocument;
7289
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
26 import org.dive4elements.river.model.FlowVelocityMeasurementValue.FastFlowVelocityMeasurementValue;
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
27 import org.dive4elements.river.utils.RiverUtils;
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
28
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
29 /**
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
30 * Add data to chart/generator.
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
31 *
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
32 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
33 */
7057
1011a40ee79c Add Default Processor implementation and make processors inherit it.
Andre Heinecke <aheinecke@intevation.de>
parents: 6905
diff changeset
34 public class WOutProcessor extends DefaultProcessor {
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
35
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
36 /** Private logger. */
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
37 private static final Logger logger =
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
38 Logger.getLogger(WOutProcessor.class);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
39
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
40 public static final String I18N_AXIS_LABEL =
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
41 "chart.longitudinal.section.yaxis.label";
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
42
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
43 public static final String I18N_AXIS_LABEL_DEFAULT = "W [NN + m]";
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
44
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
45 @Override
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
46 public void doOut(
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
47 DiagramGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
48 ArtifactAndFacet bundle,
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
49 ThemeDocument theme,
7289
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
50 boolean visible
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
51 ) {
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
52 logger.debug("Processing facet: " + bundle.getFacetName());
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
53 CallContext context = generator.getCallContext();
7113
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
54 Object data = bundle.getData(context);
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
55
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
56 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
57
7289
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
58 // Handle non WKms data.
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
59 if (bundle.getFacetName().equals(FacetTypes.FLOW_VELOCITY_WATERLEVEL)) {
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
60 FastFlowVelocityMeasurementValue fData =
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
61 (FastFlowVelocityMeasurementValue) data;
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
62 double[][] points = new double[][] {{fData.getStation()},{fData.getW()}};
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
63 StyledSeriesBuilder.addPoints(series, points, true);
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
64 generator.addAxisSeries(series, axisName, visible);
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
65 return;
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
66 }
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
67
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
68 // Handle WKms data.
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
69 WKms wkms = (WKms) data;
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
70
7113
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
71 if (bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)) {
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
72 // Add corrected values
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
73 WQCKms wqckms = (WQCKms) data;
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
74 int size = wqckms.size();
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
75 for (int i = 0; i < size; i++) {
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
76 series.add(wqckms.getKm(i), wqckms.getC(i), false);
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
77 }
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
78 } else {
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
79 StyledSeriesBuilder.addPoints(series, wkms);
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
80 }
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
81 generator.addAxisSeries(series, axisName, visible);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
82
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
83 // If a "band around the curve shall be drawn, add according area.
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
84 double bandWidth = theme.parseBandWidth();
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
85 if (bandWidth > 0 ) {
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
86 XYSeries seriesDown = new StyledXYSeries(
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
87 "band " + bundle.getFacetDescription(), false, theme);
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
88 XYSeries seriesUp = new StyledXYSeries(
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
89 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme);
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
90 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
91 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
92
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
93 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
94 area.addSeries(seriesUp);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
95 area.addSeries(seriesDown);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
96 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
97 generator.addAreaSeries(area, axisName, visible);
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
98 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
99
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
100 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W) ||
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
101 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) ||
7113
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
102 bundle.getFacetName().equals(FacetTypes.STATIC_WQKMS_W) ||
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
103 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)) {
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
104 /* Only use W values to check if the diagram should be inverted
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
105 * see flys/issue1290 for details */
7113
099f9faf5bf9 Process corrected WQkms (WQCKms) also in the WOutProcessor
Andre Heinecke <aheinecke@intevation.de>
parents: 7089
diff changeset
106 logger.debug("Check for RTL data: "+ wkms.guessRTLData());
7081
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
107 generator.setInverted(wkms.guessRTLData());
7067
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
108 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
109 }
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
110
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
111 @Override
eb24d5203d17 Add second doOut implementations to work with diagram generator
Andre Heinecke <aheinecke@intevation.de>
parents: 7057
diff changeset
112 public void doOut(
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
113 XYChartGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
114 ArtifactAndFacet bundle,
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6643
diff changeset
115 ThemeDocument theme,
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
116 boolean visible,
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
117 int index)
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
118 {
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
119 CallContext context = generator.getCallContext();
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
120 WKms wkms = (WKms) bundle.getData(context);
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
121
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
122 logger.debug("doOut");
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
123
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
124 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
125
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
126 StyledSeriesBuilder.addPoints(series, wkms);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
127 generator.addAxisSeries(series, index, visible);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
128
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
129 // If a "band around the curve shall be drawn, add according area.
6905
1b35b2ddfc28 Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6643
diff changeset
130 double bandWidth = theme.parseBandWidth();
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
131 if (bandWidth > 0 ) {
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
132 XYSeries seriesDown = new StyledXYSeries(
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
133 "band " + bundle.getFacetDescription(), false, theme);
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
134 XYSeries seriesUp = new StyledXYSeries(
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
135 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme);
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
136 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
137 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
138
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
139 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
140 area.addSeries(seriesUp);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
141 area.addSeries(seriesDown);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
142 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
143 generator.addAreaSeries(area, index, visible);
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
144 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
145
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
146 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W) ||
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
147 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) ||
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7067
diff changeset
148 bundle.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) {
6643
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
149 /* Only use W values to check if the diagram should be inverted
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
150 * see flys/issue1290 for details */
7081
3c4efd4b2c19 Simplyfy / unify "invert axis" logic
Andre Heinecke <aheinecke@intevation.de>
parents: 7075
diff changeset
151 generator.setInverted(wkms.guessRTLData());
6643
bf76346864fd Only look to W facets for inversion handling.
Andre Heinecke <aheinecke@intevation.de>
parents: 6635
diff changeset
152 }
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
153 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
154
7084
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
155 @Override
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
156 public String getAxisLabel(DiagramGenerator generator) {
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
157 D4EArtifact flys = (D4EArtifact) generator.getMaster();
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
158
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
159 String unit = RiverUtils.getRiver(flys).getWstUnit().getName();
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
160
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
161 return generator.msg(
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
162 I18N_AXIS_LABEL,
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
163 I18N_AXIS_LABEL_DEFAULT,
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
164 new Object[] { unit });
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
165 }
f0731aa7b735 Implement Label handling
Andre Heinecke <aheinecke@intevation.de>
parents: 7081
diff changeset
166
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
167 @Override
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
168 public boolean canHandle(String facetType) {
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
169 if (facetType == null) {
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
170 return false;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
171 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
172
5800
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
173 if (facetType.equals(FacetTypes.LONGITUDINAL_W)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
174 || facetType.equals(FacetTypes.STATIC_WKMS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
175 || facetType.equals(FacetTypes.HEIGHTMARKS_POINTS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
176 || facetType.equals(FacetTypes.STATIC_WQKMS)
397ff862b417 WOutProcessor: Renaming, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5341
diff changeset
177 || facetType.equals(FacetTypes.STATIC_WQKMS_W)
7289
015e12aac2dc issue1512: Adjusted Q and WOutProcessors to handle data
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7130
diff changeset
178 || facetType.equals(FacetTypes.FLOW_VELOCITY_WATERLEVEL)
7114
e3333da25634 Actually commit the canHandle part of the last revision. (WQCKms in WOut proc.)
Andre Heinecke <aheinecke@intevation.de>
parents: 7113
diff changeset
179 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_W)
7121
30cec9369608 Cosmetics
Andre Heinecke <aheinecke@intevation.de>
parents: 7114
diff changeset
180 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_C)) {
4447
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
181 return true;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
182 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
183 return false;
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
184 }
a5993b69439b Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
185 }
5341
547041487266 Doc, cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4447
diff changeset
186 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org