annotate artifacts/src/main/java/org/dive4elements/river/exports/process/DischargeProcessor.java @ 8354:9f9857f6c464

Added y axis label to discharge processors.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 01 Oct 2014 13:40:04 +0200
parents e4606eae8ea5
children b37cd2db9659
rev   line source
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
3 *
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
7 */
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
8
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.exports.process;
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
11 import java.util.Map;
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
12
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import org.apache.log4j.Logger;
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import org.jfree.data.xy.XYSeries;
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
17 import org.dive4elements.artifacts.CallContext;
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
18 import org.dive4elements.artifacts.CallMeta;
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
19 import org.dive4elements.river.artifacts.D4EArtifact;
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
20 import org.dive4elements.river.artifacts.access.RiverAccess;
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 import org.dive4elements.river.artifacts.model.FacetTypes;
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import org.dive4elements.river.artifacts.model.WQKms;
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
23 import org.dive4elements.river.artifacts.resources.Resources;
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
24 import org.dive4elements.river.exports.DiagramGenerator;
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
25 import org.dive4elements.river.exports.StyledSeriesBuilder;
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 import org.dive4elements.river.jfree.StyledXYSeries;
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
27 import org.dive4elements.river.model.Gauge;
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
28 import org.dive4elements.river.model.River;
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: 6898
diff changeset
29 import org.dive4elements.river.themes.ThemeDocument;
6880
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
30
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 /** Helper for data handling in discharge diagrams. */
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33 public class DischargeProcessor
7059
f9d5020af0af Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents: 6922
diff changeset
34 extends DefaultProcessor implements FacetTypes {
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8194
diff changeset
36 private final static Logger log =
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 Logger.getLogger(DischargeProcessor.class);
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38
6880
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
39 /** Station for which the diagram is shown. */
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
40 private double km;
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
41
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
42 /** Tolerance for comparison of kilometers. */
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
43 public static final double KM_EPSILON = 0.001d;
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
44
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
45 private String yAxisLabel = "";
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
46
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
47 private String I18N_AXIS_LABEL = "chart.discharge.curve.yaxis.label";
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
48
6880
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
49
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
50 /** This processor needs to be constructed with a given km. */
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
51 public DischargeProcessor() {
6880
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
52 km = Double.NaN;
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
53 }
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
54
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
55
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
56 public DischargeProcessor(double km) {
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
57 this.km = km;
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
58 }
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
59
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
60
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
61 /** Process data, add it to plot. */
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
62 @Override
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
63 public void doOut(
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
64 DiagramGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
65 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: 6898
diff changeset
66 ThemeDocument theme,
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
67 boolean visible
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
68 ) {
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 CallContext context = generator.getCallContext();
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
70 Object data = bundle.getData(context);
7585
67e87c2d3748 issue1597: Re-enable w/q points in DischargeProcessor. It's yet unclear why it was disabled.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7075
diff changeset
71 if (data instanceof WQKms) {
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
72 doDischargeOut(
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
73 generator,
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
74 bundle,
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
75 bundle.getFacetName(),
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
76 theme,
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
77 visible);
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
78 }
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
79 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8194
diff changeset
80 log.error("Can't process "
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
81 + data.getClass().getName() + " objects of facet "
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
82 + bundle.getFacetName());
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
83 }
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 }
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86 /** True if this processor knows how to deal with facetType. */
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87 @Override
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 public boolean canHandle(String facetType) {
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
89 return DISCHARGE_CURVE.equals(facetType)
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
90 || GAUGE_DISCHARGE_CURVE.equals(facetType);
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 }
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93
6897
34c04d877149 DischargeProcessor: Minor refactoring (use getter), warn when no Ẁ/Q data found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6892
diff changeset
94 /** The station of the current calculation/view. */
34c04d877149 DischargeProcessor: Minor refactoring (use getter), warn when no Ẁ/Q data found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6892
diff changeset
95 protected double getKm() {
34c04d877149 DischargeProcessor: Minor refactoring (use getter), warn when no Ẁ/Q data found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6892
diff changeset
96 return km;
34c04d877149 DischargeProcessor: Minor refactoring (use getter), warn when no Ẁ/Q data found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6892
diff changeset
97 }
34c04d877149 DischargeProcessor: Minor refactoring (use getter), warn when no Ẁ/Q data found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6892
diff changeset
98
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
99 /**
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
100 * Add series with discharge curve to diagram.
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
101 */
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
102 protected void doDischargeOut(
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
103 DiagramGenerator generator,
7075
253d80af5b7f More Processor refactoring
Andre Heinecke <aheinecke@intevation.de>
parents: 7059
diff changeset
104 ArtifactAndFacet bundle,
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
105 String name,
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: 6898
diff changeset
106 ThemeDocument theme,
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
107 boolean visible)
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
108 {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8194
diff changeset
109 log.debug("DischargeCurveGenerator.doDischargeOut");
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
110 CallContext context = generator.getCallContext();
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
111 Map<String, String> metaData = bundle.getFacet().getMetaData(
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
112 bundle.getArtifact(), context);
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
113 WQKms data = (WQKms)bundle.getData(context);
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
114 StyledXYSeries series = new StyledXYSeries(name, theme);
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
115 double[][] wqData = new double[2][data.size()];
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
116 for (int i = 0; i < data.size(); i++) {
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
117 wqData[0][i] = data.getQ(i);
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
118 wqData[1][i] = data.getW(i);
6880
8a4e344b309a issue1378: Preparing DischargeProcessor to be able to draw W/Q points,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6878
diff changeset
119 }
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
120 StyledSeriesBuilder.addPoints(series, wqData, false);
6897
34c04d877149 DischargeProcessor: Minor refactoring (use getter), warn when no Ẁ/Q data found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6892
diff changeset
121
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
122 series.putMetaData(metaData, bundle.getArtifact(), context);
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
123 yAxisLabel = metaData.get("Y");
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
124
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
125 String gaugeName = data.getName();
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
126 RiverAccess access = new RiverAccess((D4EArtifact)bundle.getArtifact());
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
127 River river = access.getRiver();
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
128
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
129 if (river == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8194
diff changeset
130 log.debug("no river found");
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
131 return;
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
132 }
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
133
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
134 Gauge gauge = river.determineGaugeByName(gaugeName);
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
135
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
136 if (gauge == null) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8194
diff changeset
137 log.debug("no gauge found");
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
138 return;
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
139 }
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
140
8182
0b4cd7a5f079 Changed discharge processor to plot only discharge curves and added processor for computed discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents: 7585
diff changeset
141 generator.addAxisSeries(series, axisName, visible);
6922
6fb355b87f50 DischargeProcessor: Handle interpolated w values
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6914
diff changeset
142 }
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
143
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
144 @Override
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
145 public String getAxisLabel(DiagramGenerator generator) {
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
146 CallMeta meta = generator.getCallContext().getMeta();
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
147 RiverAccess access = new RiverAccess((D4EArtifact)generator.getMaster());
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
148 String unit = access.getRiver().getWstUnit().getName();
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
149
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
150 if (yAxisLabel != null && !yAxisLabel.isEmpty()) {
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
151 return Resources.getMsg(
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
152 meta,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
153 yAxisLabel,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
154 new Object[] { unit });
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
155 }
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
156 return Resources.getMsg(
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
157 meta,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
158 I18N_AXIS_LABEL,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
159 new Object[] { unit });
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
160 }
6878
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
161 }
9b35bf3227e9 Initial DischargeProcessor-commit (skeleton).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
162 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org