Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/MiscDischargeProcessor.java @ 8181:209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 04 Sep 2014 11:10:37 +0200 |
parents | |
children | 407c9598352f |
rev | line source |
---|---|
8181
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 * |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports.process; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.ArrayList; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.List; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import org.apache.log4j.Logger; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import org.jfree.data.xy.XYSeries; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import org.dive4elements.artifacts.CallContext; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import org.dive4elements.river.artifacts.model.FacetTypes; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 import org.dive4elements.river.artifacts.model.WQKms; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 import org.dive4elements.river.exports.DiagramGenerator; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 import org.dive4elements.river.exports.DischargeCurveGenerator; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 import org.dive4elements.river.exports.StyledSeriesBuilder; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 import org.dive4elements.river.exports.XYChartGenerator; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 import org.dive4elements.river.jfree.RiverAnnotation; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 import org.dive4elements.river.jfree.StickyAxisAnnotation; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 import org.dive4elements.river.jfree.StyledXYSeries; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 import org.dive4elements.river.themes.ThemeDocument; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 import org.jfree.chart.annotations.XYTextAnnotation; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 /** Helper for data handling in discharge diagrams. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 public class MiscDischargeProcessor |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 extends DefaultProcessor implements FacetTypes { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 private final static Logger logger = |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 Logger.getLogger(MiscDischargeProcessor.class); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 /** Station for which the diagram is shown. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 private double km; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 /** Tolerance for comparison of kilometers. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 public static final double KM_EPSILON = 0.001d; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 /** This processor needs to be constructed with a given km. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 public MiscDischargeProcessor() { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 km = Double.NaN; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 public MiscDischargeProcessor(double km) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 this.km = km; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 public void doOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 DiagramGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 boolean visible) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 CallContext context = generator.getCallContext(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 Object data = bundle.getData(context); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 if (data instanceof WQKms) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 doWQKmsPointOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 generator, (WQKms) data, bundle, theme, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 else if (data instanceof RiverAnnotation) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 doRiverAnnotationOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 generator, (RiverAnnotation)data, bundle, theme, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 else if (data instanceof double[][]) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 doPointsOut(generator, (double[][])data, bundle, theme, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 else { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 logger.error("Can't process " |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 + data.getClass().getName() + " objects of facet " |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 + bundle.getFacetName()); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 /** Process data, add it to plot. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 @Override |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 public void doOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 XYChartGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 boolean visible, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 int axisIndex |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 CallContext context = generator.getCallContext(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 Object data = bundle.getData(context); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 /* TODO: Remove the first case.*/ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 if (bundle.getFacetName().equals(STATIC_WQ)) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 doPointOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 generator, bundle, theme, visible, axisIndex); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 else if (data instanceof WQKms) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 doWQKmsPointOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 generator, (WQKms) data, bundle, theme, visible, axisIndex); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 else if (data instanceof RiverAnnotation) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 doRiverAnnotationOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 generator, (RiverAnnotation) data, bundle, theme, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 else if (data instanceof double[][]) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 doMarksOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 generator, (double[][]) data, bundle, theme, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 else { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 logger.error("Can't process " |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 + data.getClass().getName() + " objects of facet " |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
119 + bundle.getFacetName()); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 private void doPointOut(XYChartGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 boolean visible, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 int axisIndex |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 Object wq = bundle.getData(generator.getCallContext()); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 if (wq instanceof double[][]) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 double [][] data = (double [][]) wq; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 StyledSeriesBuilder.addPoints(series, data, true); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 } else if (wq instanceof WQKms) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 WQKms wqkms = (WQKms) wq; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 StyledSeriesBuilder.addPointsQW(series, (WQKms) wq); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 generator.addAxisSeries(series, axisIndex, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 /** Handle WQKms data by finding w/q values at given km. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 protected void doWQKmsPointOut(XYChartGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 WQKms wqkms, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 boolean visible, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 int axidx |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 logger.debug("doWQKmsPointOut"); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 String title = bundle.getFacetDescription(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 XYSeries series = new StyledXYSeries( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 title, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 theme); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 double[] kms = wqkms.getKms(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 for (int i = 0 ; i< kms.length; i++) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 if (Math.abs(kms[i] - getKm()) <= KM_EPSILON) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 series.add(wqkms.getQ(i), wqkms.getW(i)); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 generator.addAxisSeries(series, axidx, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 if(visible && theme.parseShowPointLabel()) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 List<XYTextAnnotation> textAnnos = new ArrayList<XYTextAnnotation>(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 title, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 wqkms.getQ(i), |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 // TODO add a percentage to the extend of W axis |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 wqkms.getW(i)); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 textAnnos.add(anno); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 RiverAnnotation flysAnno = new RiverAnnotation(null, null, null, theme); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 flysAnno.setTextAnnotations(textAnnos); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 generator.addAnnotations(flysAnno); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
177 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 logger.warn("No WQ found for km " + getKm()); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 protected void doRiverAnnotationOut(XYChartGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
182 RiverAnnotation annotations, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
183 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
185 boolean visible |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
186 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
187 if (!(generator instanceof DischargeCurveGenerator)) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 logger.error("DischargeProcessor can only be used in " + |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 " in DischargeCurveGenerator-classes."); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 logger.debug("doRiverAnnotationOut"); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
193 DischargeCurveGenerator dGenerator = |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
194 (DischargeCurveGenerator) generator; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
195 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
196 dGenerator.translateRiverAnnotation(annotations); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
197 dGenerator.doAnnotations( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
198 annotations, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
199 bundle, theme, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
200 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
201 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
202 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
203 /** |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
204 * Put Sticky Axis Markers to Y-axis for each value. |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
205 * @param data [[-,y1],[-,y2],...] ('x'-coordinates ignored) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
206 */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
207 protected void doMarksOut(XYChartGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
208 double[][] data, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
209 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
210 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
211 boolean visible |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
212 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
213 logger.debug("doMarksOut"); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
214 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
215 if (!visible) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
216 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
217 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
218 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
219 // TODO subtract gauge null point if at gauge. |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
220 String title = bundle.getFacetDescription(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
221 List<StickyAxisAnnotation> yMarks = new ArrayList<StickyAxisAnnotation>(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
222 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
223 for (double yPos: data[1]) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
224 yMarks.add(new StickyAxisAnnotation( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
225 title, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
226 (float) yPos, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
227 StickyAxisAnnotation.SimpleAxis.Y_AXIS)); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
228 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
229 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
230 generator.doAnnotations(new RiverAnnotation(title, yMarks), |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
231 bundle, theme, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
232 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
233 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
234 /** True if this processor knows how to deal with facetType. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
235 @Override |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
236 public boolean canHandle(String facetType) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
237 return STATIC_WQKMS_W.equals(facetType) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
238 || COMPUTED_DISCHARGE_MAINVALUES_Q.equals(facetType) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
239 || MAINVALUES_Q.equals(facetType) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
240 || COMPUTED_DISCHARGE_MAINVALUES_W.equals(facetType) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
241 || MAINVALUES_W.equals(facetType) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
242 || STATIC_W_INTERPOL.equals(facetType) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
243 || STATIC_WQ.equals(facetType) |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
244 || STATIC_WQ_ANNOTATIONS.equals(facetType); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
245 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
246 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
247 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
248 /** The station of the current calculation/view. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
249 protected double getKm() { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
250 return km; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
251 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
252 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
253 private void doPointsOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
254 DiagramGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
255 double[][] data, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
256 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
257 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
258 boolean visible |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
259 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
260 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
261 StyledSeriesBuilder.addPoints(series, data, true); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
262 generator.addAxisSeries(series, axisName, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
263 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
264 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
265 /** Handle WQKms data by finding w/q values at given km. */ |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
266 protected void doWQKmsPointOut( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
267 DiagramGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
268 WQKms wqkms, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
269 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
270 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
271 boolean visible |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
272 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
273 logger.debug("doWQKmsPointOut"); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
274 String title = bundle.getFacetDescription(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
275 XYSeries series = new StyledXYSeries( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
276 title, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
277 theme); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
278 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
279 double[] kms = wqkms.getKms(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
280 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
281 for (int i = 0 ; i< kms.length; i++) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
282 if (Math.abs(kms[i] - getKm()) <= KM_EPSILON) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
283 series.add(wqkms.getQ(i), wqkms.getW(i)); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
284 generator.addAxisSeries(series, axisName, visible); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
285 if(visible && theme.parseShowPointLabel()) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
286 List<XYTextAnnotation> textAnnos = new ArrayList<XYTextAnnotation>(); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
287 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
288 title, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
289 wqkms.getQ(i), |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
290 // TODO add a percentage to the extend of W axis |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
291 wqkms.getW(i)); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
292 textAnnos.add(anno); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
293 RiverAnnotation flysAnno = new RiverAnnotation(null, null, null, theme); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
294 flysAnno.setTextAnnotations(textAnnos); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
295 generator.addAnnotations(flysAnno); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
296 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
297 return; |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
298 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
299 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
300 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
301 logger.warn("No WQ found for km " + getKm()); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
302 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
303 |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
304 protected void doRiverAnnotationOut(DiagramGenerator generator, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
305 RiverAnnotation annotations, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
306 ArtifactAndFacet bundle, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
307 ThemeDocument theme, |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
308 boolean visible |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
309 ) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
310 if (visible) { |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
311 annotations.setTheme(theme); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
312 generator.addAnnotations(annotations); |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
313 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
314 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
315 } |
209f8a9e8a75
Added new processor to plot misc discharge data, e.g. from datacage or recommendations.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
316 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |