Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/DischargeCurveGenerator.java @ 7691:fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
The SyncNumberAxis was completely broken. It only synced
in one direction and even that did not work correctly when
data was added to the axis (and the syncAxis rescaled but
forgot the old axis) then there were lots of ways to bypass
that scaling. And i also think the trans calculation was wrong.
It has been replaced by a "mostly" simple method to just keep
the W in M and W in CM+Datum axes in sync. I say "Mostly" because
it had to deal with the Bounds interface.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 13 Dec 2013 19:03:00 +0100 |
parents | 2fed93751ecb |
children | e47b1ea5baf4 |
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; |
6904
d710bd3df387
Artifacts: Make it compilable again.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6899
diff
changeset
|
18 import org.dive4elements.river.exports.process.DischargeProcessor; |
6887
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; |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
21 import org.dive4elements.river.jfree.DoubleBounds; |
5864
f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
22 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
|
23 import org.dive4elements.river.jfree.StickyAxisAnnotation; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
24 import org.dive4elements.river.jfree.StyledXYSeries; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
25 import org.dive4elements.river.model.Gauge; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3997
diff
changeset
|
26 import org.dive4elements.river.model.River; |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
27 import org.dive4elements.river.themes.ThemeDocument; |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
28 import org.dive4elements.river.utils.RiverUtils; |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
29 |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 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
|
31 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
|
32 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
|
33 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
|
34 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
|
35 import org.jfree.data.xy.XYSeries; |
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); |
6939
765cf5fe26c3
DischargeCurveGenerator: Prevent NPE when no gauge can be found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
86 if (gauge == null) { |
765cf5fe26c3
DischargeCurveGenerator: Prevent NPE when no gauge can be found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
87 logger.error("No Gauge could be found at station " + km + "!"); |
765cf5fe26c3
DischargeCurveGenerator: Prevent NPE when no gauge can be found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
88 return 0d; |
765cf5fe26c3
DischargeCurveGenerator: Prevent NPE when no gauge can be found.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6905
diff
changeset
|
89 } |
6445
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
90 double subtractPNP = 0d; |
6739
be8a5e1911ed
issue1418: Fetch correct (not necessarily first) gauge
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6559
diff
changeset
|
91 // Compare to km. |
6463
378b0d780e36
add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6453
diff
changeset
|
92 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
|
93 subtractPNP = gauge.getDatum().doubleValue(); |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
94 } |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
95 return subtractPNP; |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
96 } |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
97 |
6453
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
98 |
6882
a77dca301419
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6739
diff
changeset
|
99 /** 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
|
100 public double getCurrentGaugeDatum() { |
6463
378b0d780e36
add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6453
diff
changeset
|
101 return getCurrentGaugeDatum(getRange()[0], |
378b0d780e36
add tolerance to getCurrentGaugeDatum .
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6453
diff
changeset
|
102 (D4EArtifact) getMaster(), 1e-4); |
6445
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
103 } |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
104 |
192fbd23d97f
Moved code from ComputedDischargeCurveGenerator to DischargeCurveGenerator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6427
diff
changeset
|
105 |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
106 /** 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
|
107 @Override |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
108 protected void adjustAxes(XYPlot plot) { |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
109 super.adjustAxes(plot); |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
110 if (getCurrentGaugeDatum() != 0d) { |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
111 // 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
|
112 plot.setRangeAxis(1, createYAxis(YAXIS.W.idx)); |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
113 syncWAxisRanges(); |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
114 } |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
115 } |
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
116 |
7691
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
117 protected void syncWAxisRanges() { |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
118 // Syncronizes the ranges of both W Axes to make sure |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
119 // that the Data matches for both axes. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
120 Bounds boundsInMGauge = getYBounds(YAXIS.W.idx); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
121 Bounds boundsInCM = getYBounds(YAXIS.WCm.idx); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
122 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
123 // XXX Q-Symetry: I am assuming here that there can only |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
124 // be a fixed Range for WinM as this is currently the only |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
125 // thing that is configureable. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
126 Range fixedWinMRange = getRangeForAxisFromSettings( |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
127 getYAxisWalker().getId(YAXIS.W.idx)); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
128 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
129 // The combination of Range and Bounds is crazy.. |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
130 if (fixedWinMRange != null) { |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
131 boundsInMGauge = new DoubleBounds(fixedWinMRange.getLowerBound(), |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
132 fixedWinMRange.getUpperBound()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
133 } |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
134 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
135 logger.debug("Syncing Axis Bounds. Bounds W: " + boundsInMGauge.toString() + |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
136 " Bounds Wcm: " + boundsInCM.toString()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
137 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
138 double datum = getCurrentGaugeDatum(); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
139 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
140 // Convert boundsInMGauge to Datum+cm |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
141 double convertedLower = ((Double)boundsInMGauge.getLower() - datum) * 100; |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
142 double convertedUpper = ((Double)boundsInMGauge.getUpper() - datum) * 100; |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
143 Bounds convertedBounds = new DoubleBounds(convertedLower, convertedUpper); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
144 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
145 // Now combine both Ranges |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
146 boundsInCM = boundsInCM.combine(convertedBounds); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
147 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
148 // Recalculate absolute bounds |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
149 boundsInMGauge = new DoubleBounds((Double)boundsInCM.getLower() / 100d + datum, |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
150 (Double)boundsInCM.getUpper() / 100d + datum); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
151 |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
152 // Set the new combined bounds |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
153 setYBounds(YAXIS.W.idx, boundsInMGauge); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
154 setYBounds(YAXIS.WCm.idx, boundsInCM); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
155 logger.debug("Synced Bounds W: " + boundsInMGauge.toString() + |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
156 " Bounds Wcm: " + boundsInCM.toString()); |
fa4fbd66e752
(issue1579) Fix axes syncronisation at Gauges
Andre Heinecke <aheinecke@intevation.de>
parents:
6981
diff
changeset
|
157 } |
6559
6791411ed1fc
issue1370: Force second axis if at gauge.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6526
diff
changeset
|
158 |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 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
|
160 super(); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 } |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
163 |
2000
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
164 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
165 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
|
166 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
|
167 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
168 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
|
169 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
|
170 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
171 |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
172 @Override |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
173 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
|
174 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
|
175 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
|
176 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
177 }; |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
178 } |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
179 |
e71719483546
Improved the ChartSettings - now, each chart writes proper AxisSections into the ChartSettings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1948
diff
changeset
|
180 |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
181 /** |
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
182 * 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
|
183 */ |
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
|
184 @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
|
185 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
|
186 return null; |
414
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
187 } |
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
188 |
0385bcc4229a
Added subtitles to the available charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
408
diff
changeset
|
189 |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
190 @Override |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
191 protected String getDefaultXAxisLabel() { |
408
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
192 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
|
193 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
194 |
2051
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
195 @Override |
4ba5036109d2
Make use of user defined axes labels during chart creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2049
diff
changeset
|
196 protected String getDefaultYAxisLabel(int pos) { |
408
fc3ac59c3c8b
Enabled i18n support for charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
381
diff
changeset
|
197 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
|
198 } |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
199 |
2ce7b473620e
Implemented the chart creation of a longitudinal section chart - W and Q facets.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
364
diff
changeset
|
200 |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
201 /* 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
|
202 @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
|
203 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
|
204 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
|
205 |
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
|
206 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
|
207 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
|
208 } |
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
|
209 |
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
|
210 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
|
211 } |
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
|
212 |
6526 | 213 /** 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
|
214 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
|
215 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
|
216 return; |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
217 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
218 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
|
219 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
|
220 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
|
221 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
|
222 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
|
223 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
|
224 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
225 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
226 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
|
227 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
|
228 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
229 } |
f11165468f0a
issue1370: swap default axis (now in cm), translate annotations if in cm.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6445
diff
changeset
|
230 |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
231 |
3409
97ad960f5579
Add subtitle to Fix W/Q chart and refactor addSubtitle() method(s)
Christian Lins <christian.lins@intevation.de>
parents:
2728
diff
changeset
|
232 @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
|
233 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
|
234 ArtifactAndFacet artifactFacet, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
235 ThemeDocument theme, |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
236 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
|
237 ) { |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
238 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
|
239 logger.debug("DischargeCurveGenerator.doOut: " + name); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
240 |
6899
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
241 DischargeProcessor dProcessor = new DischargeProcessor(getRange()[0]); |
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
242 if (dProcessor.canHandle(name)) { |
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
243 // In Base DischargeCurveGenerator, always at gauge, use WCm axis. |
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
244 dProcessor.doOut(this, artifactFacet, theme, visible, YAXIS.WCm.idx); |
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
245 } |
0a127b6fa490
DischargeCurveGenerator: Use DischargeProcessor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6892
diff
changeset
|
246 else if (name.equals(DISCHARGE_CURVE) |
3997
a9cdd5fae878
Add Facet type for GaugeDischargeCurveArtifact
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3409
diff
changeset
|
247 || 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
|
248 doDischargeOut( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
249 (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
|
250 artifactFacet.getData(context), |
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
251 artifactFacet.getFacetDescription(), |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
252 theme, |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
253 visible); |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
254 } |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
255 else if (FacetTypes.IS.MANUALPOINTS(name)) { |
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
256 doPoints(artifactFacet.getData(context), |
2325
1fcaeced48f2
#485 Fixed broken renaming of chart themes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2302
diff
changeset
|
257 artifactFacet, |
2302
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
258 theme, visible, YAXIS.W.idx); |
300d50f74dab
Handle manual points in discharge curve generator.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2074
diff
changeset
|
259 } |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
260 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
|
261 doWQOut(artifactFacet.getData(context), |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
262 artifactFacet, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
263 theme, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
264 visible); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
265 } |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
266 else { |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
267 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
|
268 return; |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
269 } |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
270 } |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
271 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
272 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
273 /** |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
274 * 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
|
275 */ |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
276 protected void doDischargeOut( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
277 D4EArtifact artifact, |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
278 Object o, |
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
279 String description, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
280 ThemeDocument theme, |
1944
21a4d2c677a1
Changed doOut signature, side effect from blackboard feature (to come).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1943
diff
changeset
|
281 boolean visible) |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
282 { |
6882
a77dca301419
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6739
diff
changeset
|
283 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
|
284 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
|
285 |
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
286 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
|
287 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5864
diff
changeset
|
288 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
|
289 |
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
290 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
|
291 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
|
292 return; |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
293 } |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
294 |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
295 Gauge gauge = river.determineGaugeByName(gaugeName); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
296 |
721
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
297 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
|
298 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
|
299 return; |
7298d58a1f5a
Generate facets for "Abflusskurven am Pegel". Not working by now. :-/
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
695
diff
changeset
|
300 } |
454
2c0c22e0935d
Added names for discharge curves (at gauges).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
414
diff
changeset
|
301 |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
302 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
|
303 |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1768
diff
changeset
|
304 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
|
305 |
1933
9e9cfc036a3f
Better use multiple axis feature in chart generators.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1931
diff
changeset
|
306 addAxisSeries(series, YAXIS.W.idx, visible); |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
307 } |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
308 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
309 /** |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
310 * 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
|
311 * @param wqkms actual data |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
312 * @param theme theme to use. |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
313 */ |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
314 protected void doQOut( |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
315 Object wqkms, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
316 ArtifactAndFacet aaf, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
317 ThemeDocument theme, |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
318 boolean visible |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
319 ) { |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
320 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
|
321 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
|
322 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
323 StyledSeriesBuilder.addPointsQW(series, (WQKms) wqkms); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
324 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
325 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
|
326 } |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
327 |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
328 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
329 /** 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
|
330 protected void addPointTextAnnotation( |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
331 String title, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
332 double x, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
333 double y, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
334 ThemeDocument theme |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
335 ) { |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
336 List<XYTextAnnotation> textAnnos = |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
337 new ArrayList<XYTextAnnotation>(); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
338 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
339 title, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
340 x, |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
341 y); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
342 textAnnos.add(anno); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
343 RiverAnnotation flysAnno = new RiverAnnotation( |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
344 null, null, null, theme); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
345 flysAnno.setTextAnnotations(textAnnos); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
346 addAnnotations(flysAnno); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
347 } |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
348 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
349 |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
350 /** |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
351 * Return true if all values in data[0] are smaller than zero |
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
352 * (in imported data they are set to -1 symbolically). |
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
|
353 * 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
|
354 */ |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
355 private boolean hasNoDischarge(double[][] data) { |
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
|
356 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
|
357 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
|
358 } |
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 |
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 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
|
361 for (double q: qs) { |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
362 if (q > 0d) { |
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
363 return false; |
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
|
364 } |
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 } |
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 |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
367 return true; |
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
|
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 |
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
|
370 |
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
|
371 /** |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
372 * Add WQ Data to plot. |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
373 * @param wq data as double[][] |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
374 */ |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
375 protected void doWQOut( |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
376 Object wq, |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
377 ArtifactAndFacet aaf, |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
378 ThemeDocument theme, |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
379 boolean visible |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
380 ) { |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
381 logger.debug("DischargeCurveGenerator: doWQOut"); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
382 double [][] data = (double [][]) wq; |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
383 String title = aaf.getFacetDescription(); |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
384 |
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
|
385 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
|
386 |
6981
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
387 // If no Q values (i.e. all -1) found, add annotations. |
2fed93751ecb
issue1457: Handle symbolic discharge of -1 as 'no discharge'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6939
diff
changeset
|
388 if (hasNoDischarge(data)) { |
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
|
389 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
|
390 |
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
|
391 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
|
392 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
|
393 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
|
394 } |
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
|
395 |
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
|
396 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
|
397 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
|
398 (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
|
399 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
|
400 } |
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
|
401 |
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
|
402 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
|
403 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
|
404 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
|
405 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
|
406 } |
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
|
407 |
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
|
408 // Otherwise add points. |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
409 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
|
410 |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
411 if (translate != 0d) { |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
412 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
|
413 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
|
414 } |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
415 else { |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
416 StyledSeriesBuilder.addPoints(series, data, true); |
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
417 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
|
418 } |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
419 |
6905
1b35b2ddfc28
Artifacts: Introduce ThemeDocument & make stuff compileable again. THIS BREAKS THE SYSTEM! TODO: Move ThemeUtils into ThemeDocument.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6904
diff
changeset
|
420 if (visible && theme.parseShowPointLabel() |
6887
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
421 && data != null && data.length != 0) { |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
422 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
423 double[] xs = data[0]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
424 double[] ys = data[1]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
425 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
|
426 double x = xs[i]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
427 double y = ys[i]; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
428 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
429 if (translate != 0d) { |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
430 y = (y-translate)*100d; |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
431 } |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
432 |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
433 addPointTextAnnotation(title, x, y, theme); |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
434 } |
5a1078fd53e1
issue1378: Also add ability to add text-annotations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6883
diff
changeset
|
435 } |
6883
3df41681f326
issue1378: Prepare DischargeCurveGenerator to digest wq-interpolated data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6882
diff
changeset
|
436 } |
299
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
437 } |
8940b0885865
Added a DischargeCurveGenerator that creates discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
438 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |