annotate artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java @ 6889:feaf76b70190

issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 21 Aug 2013 15:00:40 +0200
parents 281190b96f4d
children e97e710ecf3f
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
9 package org.dive4elements.river.exports;
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
11 import java.util.ArrayList;
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
12 import java.util.List;
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
13
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
15 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
16 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
17 import org.dive4elements.river.artifacts.model.WQKms;
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
18 import org.dive4elements.river.exports.process.DischargeProcessor;
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
19 import org.dive4elements.river.jfree.CollisionFreeXYTextAnnotation;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
20 import org.dive4elements.river.jfree.Bounds;
5864
f2e46a668fe6 River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
21 import org.dive4elements.river.jfree.RiverAnnotation;
6453
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
22 import org.dive4elements.river.jfree.StickyAxisAnnotation;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
23 import org.dive4elements.river.jfree.StyledXYSeries;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
24 import org.dive4elements.river.model.Gauge;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3997
diff changeset
25 import org.dive4elements.river.model.River;
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
26 import org.dive4elements.river.utils.RiverUtils;
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
27 import org.dive4elements.river.utils.ThemeUtil;
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 2728
diff changeset
28
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 import org.apache.log4j.Logger;
6453
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
30 import org.jfree.chart.annotations.XYTextAnnotation;
728
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
31 import org.jfree.chart.axis.ValueAxis;
375
60f63539d004 Ws and Qs of a longitudinal section chart are mapped to an own range axis now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 369
diff changeset
32 import org.jfree.chart.plot.XYPlot;
728
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
33 import org.jfree.data.Range;
923
7ca4a287cd0e #135 Modified the way to store datasets for different chart axes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 743
diff changeset
34 import org.jfree.data.xy.XYSeries;
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 2728
diff changeset
35 import org.w3c.dom.Document;
1103
e0243627ba62 Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1070
diff changeset
36
2302
300d50f74dab Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
37
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 /**
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 * An OutGenerator that generates discharge curves.
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 *
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 */
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
43 public class DischargeCurveGenerator
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
44 extends XYChartGenerator
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
45 implements FacetTypes {
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
6882
a77dca301419 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6739
diff changeset
47 /** Beware, in this implementation, the W axis is also in cm! */
1933
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
48 public static enum YAXIS {
6453
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
49 WCm(0),
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
50 W(1);
1933
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
51 protected int idx;
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
52 private YAXIS(int c) {
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
53 idx = c;
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
54 }
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
55 }
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
56
1070
b1ed0ec0236f Smaller Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1055
diff changeset
57 /** The logger used in this generator. */
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 private static Logger logger =
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 Logger.getLogger(DischargeCurveGenerator.class);
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
61 public static final String I18N_CHART_TITLE =
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
62 "chart.discharge.curve.title";
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
63
414
0385bcc4229a Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
64 public static final String I18N_CHART_SUBTITLE =
0385bcc4229a Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
65 "chart.discharge.curve.subtitle";
0385bcc4229a Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
66
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
67 public static final String I18N_XAXIS_LABEL =
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
68 "chart.discharge.curve.xaxis.label";
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
69
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
70 public static final String I18N_YAXIS_LABEL =
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
71 "chart.discharge.curve.yaxis.label";
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
72
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
73 public static final String I18N_CHART_TITLE_DEFAULT = "Abflusskurven";
664
e006da5679d2 s@m³/s@m\u00b3/s@
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 454
diff changeset
74 public static final String I18N_XAXIS_LABEL_DEFAULT = "Q [m\u00b3/s]";
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
75 public static final String I18N_YAXIS_LABEL_DEFAULT = "W [cm]";
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
76
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
77
6445
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
78 /**
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
79 * Returns the PNP (Datum) of gauge, if at gauge, 0 otherwise.
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
80 */
6463
378b0d780e36 add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6453
diff changeset
81 public static double getCurrentGaugeDatum(double km, D4EArtifact artifact, double tolerance) {
6739
be8a5e1911ed issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6559
diff changeset
82 // Look if there is a gauge at chosen km:
be8a5e1911ed issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6559
diff changeset
83 // Get gauge which is defined for km
be8a5e1911ed issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6559
diff changeset
84 Gauge gauge =
be8a5e1911ed issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6559
diff changeset
85 RiverUtils.getRiver(artifact).determineGauge(km-0.1d, km+0.1d);
6445
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
86 double subtractPNP = 0d;
6739
be8a5e1911ed issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6559
diff changeset
87 // Compare to km.
6463
378b0d780e36 add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6453
diff changeset
88 if (Math.abs(km - gauge.getStation().doubleValue()) < tolerance) {
6445
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
89 subtractPNP = gauge.getDatum().doubleValue();
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
90 }
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
91 return subtractPNP;
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
92 }
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
93
6453
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
94
6882
a77dca301419 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6739
diff changeset
95 /** Get the current Gauge datum with default distance tolerance. */
6445
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
96 public double getCurrentGaugeDatum() {
6463
378b0d780e36 add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6453
diff changeset
97 return getCurrentGaugeDatum(getRange()[0],
378b0d780e36 add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6453
diff changeset
98 (D4EArtifact) getMaster(), 1e-4);
6445
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
99 }
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
100
192fbd23d97f Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6427
diff changeset
101
6559
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
102 /** Overriden to show second axis also if no visible data present. */
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
103 @Override
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
104 protected void adjustAxes(XYPlot plot) {
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
105 super.adjustAxes(plot);
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
106 if (getCurrentGaugeDatum() != 0d) {
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
107 // Show the W[*m] axis even if there is no data.
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
108 plot.setRangeAxis(1, createYAxis(YAXIS.W.idx));
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
109 }
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
110 }
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
111
6791411ed1fc issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6526
diff changeset
112
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 public DischargeCurveGenerator() {
348
635af5381a4d Added an abstract OutGenerator that should be the base class for all generators which create charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 299
diff changeset
114 super();
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 }
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
2000
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
118 @Override
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
119 protected YAxisWalker getYAxisWalker() {
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
120 return new YAxisWalker() {
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
121 @Override
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
122 public int length() {
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
123 return YAXIS.values().length;
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
124 }
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
125
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
126 @Override
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
127 public String getId(int idx) {
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
128 YAXIS[] yaxes = YAXIS.values();
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
129 return yaxes[idx].toString();
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
130 }
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
131 };
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
132 }
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
133
e71719483546 Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1948
diff changeset
134
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 2728
diff changeset
135 /**
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 2728
diff changeset
136 * Returns always null to suppress subtitles.
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 2728
diff changeset
137 */
2048
3157a78e6494 Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2000
diff changeset
138 @Override
3157a78e6494 Improved chart title and subtitle creation in ChartGenerators - all ChartGenerators make now use of title and subtitle provided by ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2000
diff changeset
139 protected String getDefaultChartTitle() {
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 2728
diff changeset
140 return null;
414
0385bcc4229a Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
141 }
0385bcc4229a Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
142
0385bcc4229a Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
143
2051
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2049
diff changeset
144 @Override
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2049
diff changeset
145 protected String getDefaultXAxisLabel() {
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
146 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT);
369
2ce7b473620e Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
147 }
2ce7b473620e Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
148
2051
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2049
diff changeset
149 @Override
4ba5036109d2 Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2049
diff changeset
150 protected String getDefaultYAxisLabel(int pos) {
408
fc3ac59c3c8b Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 381
diff changeset
151 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
369
2ce7b473620e Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
152 }
2ce7b473620e Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
153
2ce7b473620e Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 364
diff changeset
154
2302
300d50f74dab Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
155 /* TODO is this one really needed? */
728
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
156 @Override
2587
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2325
diff changeset
157 protected boolean zoomX(XYPlot plot, ValueAxis axis, Bounds bounds, Range x) {
bece6f604899 Removed references to Range and replaced those with references to Bounds in ChartGenerators.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2325
diff changeset
158 boolean zoomin = super.zoom(plot, axis, bounds, x);
728
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
159
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
160 if (!zoomin) {
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
161 axis.setLowerBound(0d);
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
162 }
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
163
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
164 return zoomin;
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
165 }
56bcf56b1fe0 #157 Both types of discharge curves will now include the '0' value on the x-axis.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 723
diff changeset
166
6526
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6463
diff changeset
167 /** Translate River annotations if a gauge. */
6453
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
168 public void translateRiverAnnotation(RiverAnnotation riverAnnotation) {
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
169 if (getCurrentGaugeDatum() == 0d) {
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
170 return;
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
171 }
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
172 logger.debug("Translate some river annotation.");
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
173 double translate = getCurrentGaugeDatum();
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
174 double factor = 100d;
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
175 for (StickyAxisAnnotation annotation: riverAnnotation.getAxisTextAnnotations()){
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
176 if (!annotation.atX()) {
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
177 annotation.setPos((annotation.getPos() - translate)*factor);
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
178 }
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
179 }
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
180 for (XYTextAnnotation annotation: riverAnnotation.getTextAnnotations()) {
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
181 annotation.setY((annotation.getY() - translate)*factor);
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
182 }
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
183 }
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
184
2302
300d50f74dab Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
185
3409
97ad960f5579 Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents: 2728
diff changeset
186 @Override
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1680
diff changeset
187 public void doOut(
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
188 ArtifactAndFacet artifactFacet,
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
189 Document theme,
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
190 boolean visible
1684
bdb05dc9b763 Bugfix: #353 Enabled chart's to be drawn with proper axes set even if no data is contained.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1680
diff changeset
191 ) {
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
192 String name = artifactFacet.getFacetName();
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
193 logger.debug("DischargeCurveGenerator.doOut: " + name);
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194
3997
a9cdd5fae878 Add Facet type for GaugeDischargeCurveArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3409
diff changeset
195 if (name.equals(DISCHARGE_CURVE)
a9cdd5fae878 Add Facet type for GaugeDischargeCurveArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3409
diff changeset
196 || name.equals(GAUGE_DISCHARGE_CURVE)) {
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
197 doDischargeOut(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
198 (D4EArtifact)artifactFacet.getArtifact(),
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
199 artifactFacet.getData(context),
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
200 artifactFacet.getFacetDescription(),
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
201 theme,
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
202 visible);
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
203 }
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
204 else if (name.equals(COMPUTED_DISCHARGE_MAINVALUES_Q)
1848
3918bd7eb4e1 Cosmetics, removed duplicate code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1812
diff changeset
205 || name.equals(MAINVALUES_Q)
3918bd7eb4e1 Cosmetics, removed duplicate code.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1812
diff changeset
206 || name.equals(COMPUTED_DISCHARGE_MAINVALUES_W)
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
207 || name.equals(MAINVALUES_W))
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
208 {
6453
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
209 RiverAnnotation mainValues = (RiverAnnotation) artifactFacet.getData(context);
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
210 translateRiverAnnotation(mainValues);
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
211 doAnnotations(
f11165468f0a issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6445
diff changeset
212 mainValues,
2325
1fcaeced48f2 #485 Fixed broken renaming of chart themes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2302
diff changeset
213 artifactFacet, theme, visible);
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
214 }
2302
300d50f74dab Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
215 else if (FacetTypes.IS.MANUALPOINTS(name)) {
300d50f74dab Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
216 doPoints(artifactFacet.getData(context),
2325
1fcaeced48f2 #485 Fixed broken renaming of chart themes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2302
diff changeset
217 artifactFacet,
2302
300d50f74dab Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
218 theme, visible, YAXIS.W.idx);
300d50f74dab Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2074
diff changeset
219 }
6883
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
220 else if (STATIC_WQ.equals(name)) {
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
221 doWQOut(artifactFacet.getData(context),
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
222 artifactFacet,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
223 theme,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
224 visible);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
225 }
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
226 else {
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
227 logger.warn("DischargeCurveGenerator.doOut: Unknown facet name: " + name);
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
228 return;
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
229 }
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
230 }
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
231
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
232
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
233 /**
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
234 * Add series with discharge curve to diagram.
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
235 */
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
236 protected void doDischargeOut(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
237 D4EArtifact artifact,
1944
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
238 Object o,
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
239 String description,
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
240 Document theme,
21a4d2c677a1 Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1943
diff changeset
241 boolean visible)
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
242 {
6882
a77dca301419 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6739
diff changeset
243 logger.debug("DischargeCurveGenerator.doDischargeOut");
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
244 WQKms wqkms = (WQKms) o;
721
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
245
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
246 String gaugeName = wqkms.getName();
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
247
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5864
diff changeset
248 River river = RiverUtils.getRiver(artifact);
721
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
249
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
250 if (river == null) {
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
251 logger.debug("no river found");
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
252 return;
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
253 }
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
254
721
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
255 Gauge gauge = river.determineGaugeByName(gaugeName);
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
256
721
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
257 if (gauge == null) {
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
258 logger.debug("no gauge found");
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
259 return;
7298d58a1f5a Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 695
diff changeset
260 }
454
2c0c22e0935d Added names for discharge curves (at gauges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 414
diff changeset
261
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
262 XYSeries series = new StyledXYSeries(description, theme);
923
7ca4a287cd0e #135 Modified the way to store datasets for different chart axes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 743
diff changeset
263
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1768
diff changeset
264 StyledSeriesBuilder.addPointsQW(series, wqkms);
923
7ca4a287cd0e #135 Modified the way to store datasets for different chart axes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 743
diff changeset
265
1933
9e9cfc036a3f Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1931
diff changeset
266 addAxisSeries(series, YAXIS.W.idx, visible);
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
267 }
6883
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
268
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
269 /**
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
270 * Add W/Q-Series to plot.
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
271 * @param wqkms actual data
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
272 * @param theme theme to use.
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
273 */
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
274 protected void doQOut(
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
275 Object wqkms,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
276 ArtifactAndFacet aaf,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
277 Document theme,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
278 boolean visible
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
279 ) {
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
280 logger.debug("DischargeCurveGenerator: doQOut (add W/Q data).");
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
281 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
282
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
283 StyledSeriesBuilder.addPointsQW(series, (WQKms) wqkms);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
284
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
285 addAxisSeries(series, YAXIS.W.idx, visible);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
286 }
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
287
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
288
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
289 /** Add a point annotation at given x and y coordinates. */
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
290 protected void addPointTextAnnotation(
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
291 String title,
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
292 double x,
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
293 double y,
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
294 Document theme
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
295 ) {
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
296 List<XYTextAnnotation> textAnnos =
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
297 new ArrayList<XYTextAnnotation>();
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
298 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation(
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
299 title,
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
300 x,
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
301 y);
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
302 textAnnos.add(anno);
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
303 RiverAnnotation flysAnno = new RiverAnnotation(
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
304 null, null, null, theme);
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
305 flysAnno.setTextAnnotations(textAnnos);
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
306 addAnnotations(flysAnno);
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
307 }
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
308
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
309
6883
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
310 /**
6889
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
311 * Return true if all values in data[0] are zero or very close to it.
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
312 * Return false if data is null or empty
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
313 */
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
314 private boolean zeroQ(double[][] data) {
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
315 if (data == null || data.length == 0) {
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
316 return false;
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
317 }
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
318
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
319 boolean allZero = true;
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
320
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
321 double[] qs = data[0];
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
322 for (double q: qs) {
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
323 if (Math.abs(q) >= 0.01d) {
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
324 allZero = false;
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
325 }
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
326 }
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
327
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
328 return allZero;
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
329 }
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
330
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
331
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
332 /**
6883
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
333 * Add WQ Data to plot.
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
334 * @param wq data as double[][]
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
335 */
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
336 protected void doWQOut(
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
337 Object wq,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
338 ArtifactAndFacet aaf,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
339 Document theme,
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
340 boolean visible
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
341 ) {
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
342 logger.debug("DischargeCurveGenerator: doWQOut");
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
343 double [][] data = (double [][]) wq;
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
344 String title = aaf.getFacetDescription();
6883
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
345
6889
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
346 double translate = getCurrentGaugeDatum();
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
347
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
348 // If no Q values (all zero) foud, add annotations
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
349 if (zeroQ(data)) {
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
350 List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>();
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
351
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
352 for (double y: data[1]) {
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
353 if (translate != 0d) {
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
354 y = (y-translate)*100d;
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
355 }
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
356
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
357 xy.add(new StickyAxisAnnotation(
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
358 title,
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
359 (float) y,
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
360 StickyAxisAnnotation.SimpleAxis.Y_AXIS));
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
361 }
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
362
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
363 doAnnotations(
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
364 new RiverAnnotation(title, xy),
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
365 aaf, theme, visible);
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
366 return;
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
367 }
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
368
feaf76b70190 issue1378: Add axis markers for additional long-sect. without Q (e.g. dike heights).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6888
diff changeset
369 // Otherwise add points.
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
370 XYSeries series = new StyledXYSeries(title, theme);
6883
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
371
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
372 if (translate != 0d) {
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
373 StyledSeriesBuilder.addPointsQW(series, data, -translate, 100d);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
374 addAxisSeries(series, YAXIS.W.idx, visible);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
375 }
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
376 else {
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
377 StyledSeriesBuilder.addPoints(series, data, true);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
378 addAxisSeries(series, YAXIS.W.idx, visible);
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
379 }
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
380
6888
281190b96f4d Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6887
diff changeset
381 if (visible && ThemeUtil.parseShowPointLabel(theme)
6887
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
382 && data != null && data.length != 0) {
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
383
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
384 double[] xs = data[0];
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
385 double[] ys = data[1];
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
386 for (int i = 0; i < xs.length; i++) {
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
387 double x = xs[i];
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
388 double y = ys[i];
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
389
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
390 if (translate != 0d) {
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
391 y = (y-translate)*100d;
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
392 }
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
393
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
394 addPointTextAnnotation(title, x, y, theme);
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
395 }
5a1078fd53e1 issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6883
diff changeset
396 }
6883
3df41681f326 issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6882
diff changeset
397 }
299
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
398 }
8940b0885865 Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
399 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org