Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/StyledSeriesBuilder.java @ 8614:e7a2234e7c3f
(issue1608) Export appropiate data for different result types
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 25 Mar 2015 11:25:28 +0100 |
parents | a7eaf3e13bbe |
children | 5dea205ea3e7 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4438
diff
changeset
|
9 package org.dive4elements.river.exports; |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
11 import org.apache.log4j.Logger; |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
12 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
13 import org.jfree.data.xy.XYSeries; |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4438
diff
changeset
|
15 import org.dive4elements.river.artifacts.model.WKms; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4438
diff
changeset
|
16 import org.dive4elements.river.artifacts.model.WQKms; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4438
diff
changeset
|
17 import org.dive4elements.river.artifacts.model.WWQQ; |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
18 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
19 /** |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
20 * Helper to create and modify StyledXYSeries. |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
21 */ |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
22 public class StyledSeriesBuilder { |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
23 |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
24 /** |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
25 * JFreeChart and the area calculation will fail if we use Double.INFINITY |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
26 * or Double.MAX_VALUE (probably because these are really used in |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
27 * calculations). We define and use a more handy value instead. |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
28 */ |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
29 final static double BIG_DOUBLE_VALUE = 1234567d; |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
30 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6881
diff
changeset
|
31 private static final Logger log = Logger.getLogger |
2571
63f44b8b41a3
Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2156
diff
changeset
|
32 (StyledSeriesBuilder.class); |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
33 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
34 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
35 /** |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
36 * Trivial, hidden constructor. |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
37 */ |
1886
6f047a407f84
Removed dead ';' from empty bodies.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1812
diff
changeset
|
38 private StyledSeriesBuilder() { |
6f047a407f84
Removed dead ';' from empty bodies.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1812
diff
changeset
|
39 } |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
40 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
41 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
42 /** |
6862
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
43 * Add points to series, create gaps if certain distance between |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
44 * points is met and scale the Y value. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
45 * |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
46 * @param series Series to add points to. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
47 * @param points Points to add to series, points[0] to 1st dim, points[1] |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
48 * to 2nd dim. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
49 * @param skipNANs if true, skip NAN values in points parameter. Otherwise, |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
50 * the NaNs lead to gaps in graph. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
51 * @param distance if two consecutive entries in points[0] are more |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
52 * than distance apart, create a NaN value to skip in display. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
53 * Still, create a line segment. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
54 * @param factor Factor by which to scale the y value (points[1]). |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
55 */ |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
56 public static void addPointsFactorY(XYSeries series, |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
57 double[][] points, |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
58 boolean skipNANs, |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
59 double distance, |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
60 double factor |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
61 ) { |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
62 if (points == null || points.length <= 1) { |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
63 return; |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
64 } |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
65 double [] xPoints = points[0]; |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
66 double [] yPoints = points[1]; |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
67 for (int i = 0; i < xPoints.length; i++) { |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
68 if (skipNANs && |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
69 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) { |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
70 continue; |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
71 } |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
72 // Create gap if distance >= distance. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
73 if (i != 0 && Math.abs(xPoints[i-1] - xPoints[i]) >= distance) { |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
74 // Create at least a small segment for last point. |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
75 if (!Double.isNaN(yPoints[i-1])) { |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
76 series.add(xPoints[i-1]+0.99d*(distance)/2.d, yPoints[i-1]*factor, false); |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
77 } |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
78 |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
79 if (!Double.isNaN(yPoints[i-1]) && !Double.isNaN(yPoints[i])) { |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
80 series.add((xPoints[i-1]+xPoints[i])/2.d, Double.NaN, false); |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
81 } |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
82 } |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
83 series.add(xPoints[i], yPoints[i]*factor, false); |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
84 } |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
85 } |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
86 |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
87 |
590d420ed382
StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6778
diff
changeset
|
88 /** |
6212
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
89 * Add points to series, create gaps if certain distance between points is met. |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
90 * |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
91 * @param series Series to add points to. |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
92 * @param points Points to add to series, points[0] to 1st dim, points[1] |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
93 * to 2nd dim. |
6769
334db91c96dc
StyledSeriesBuilder: Minor doc improvement.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6465
diff
changeset
|
94 * @param skipNANs if true, skip NAN values in points parameter. Otherwise, |
334db91c96dc
StyledSeriesBuilder: Minor doc improvement.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6465
diff
changeset
|
95 * the NaNs lead to gaps in graph. |
6212
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
96 * @param distance if two consecutive entries in points[0] are more |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
97 * than distance apart, create a NaN value to skip in display. |
6778
cbe9ac4380a5
issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6769
diff
changeset
|
98 * Still, create a line segment. |
6212
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
99 */ |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
100 public static void addPoints(XYSeries series, double[][] points, boolean skipNANs, double distance) { |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
101 if (points == null || points.length <= 1) { |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
102 return; |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
103 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
104 double [] xPoints = points[0]; |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
105 double [] yPoints = points[1]; |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
106 for (int i = 0; i < xPoints.length; i++) { |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
107 if (skipNANs && |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
108 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) { |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
109 continue; |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
110 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
111 // Create gap if distance >= distance. |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
112 if (i != 0 && Math.abs(xPoints[i-1] - xPoints[i]) >= distance) { |
6778
cbe9ac4380a5
issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6769
diff
changeset
|
113 // Create at least a small segment for last point. |
cbe9ac4380a5
issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6769
diff
changeset
|
114 if (!Double.isNaN(yPoints[i-1])) { |
cbe9ac4380a5
issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6769
diff
changeset
|
115 series.add(xPoints[i-1]+0.99d*(distance)/2.d, yPoints[i-1], false); |
cbe9ac4380a5
issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6769
diff
changeset
|
116 } |
cbe9ac4380a5
issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6769
diff
changeset
|
117 |
6212
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
118 if (!Double.isNaN(yPoints[i-1]) && !Double.isNaN(yPoints[i])) { |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
119 series.add((xPoints[i-1]+xPoints[i])/2.d, Double.NaN, false); |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
120 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
121 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
122 series.add(xPoints[i], yPoints[i], false); |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
123 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
124 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
125 |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
126 /** |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
127 * Add points to series. |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
128 * |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
129 * @param series Series to add points to. |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
130 * @param points Points to add to series, points[0] to 1st dim, points[1] |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
131 * to 2nd dim. |
2686
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
132 * @param skipNANs if true, skip NAN values in points parameter. |
6465
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
133 * @param transY translate y-values by this value (before scale). |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
134 * @param factorY scale y-values by this value (after translation). |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
135 */ |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
136 public static void addPoints(XYSeries series, double[][] points, |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
137 boolean skipNANs, double transY, double factorY) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
138 if (transY == 0d && factorY == 1d) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
139 addPoints(series, points, skipNANs); |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
140 return; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
141 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
142 if (points == null || points.length <= 1) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
143 return; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
144 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
145 double [] xPoints = points[0]; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
146 double [] yPoints = points[1]; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
147 for (int i = 0; i < xPoints.length; i++) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
148 if (skipNANs && |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
149 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
150 continue; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
151 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
152 series.add(xPoints[i], factorY * (transY+yPoints[i]), false); |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
153 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
154 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
155 |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
156 /** |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
157 * Add points to series. |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
158 * |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
159 * @param series Series to add points to. |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
160 * @param points Points to add to series, points[0] to 1st dim, points[1] |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
161 * to 2nd dim. |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
162 * @param skipNANs if true, skip NAN values in points parameter. |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
163 */ |
2686
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
164 public static void addPoints(XYSeries series, double[][] points, boolean skipNANs) { |
1983
ddb7b7da6199
Fix/survive certain minor malconditions.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1975
diff
changeset
|
165 if (points == null || points.length <= 1) { |
1975
b30e1710df1d
Server-side of interactive cross-section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1942
diff
changeset
|
166 return; |
b30e1710df1d
Server-side of interactive cross-section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1942
diff
changeset
|
167 } |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
168 double [] xPoints = points[0]; |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
169 double [] yPoints = points[1]; |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
170 for (int i = 0; i < xPoints.length; i++) { |
2686
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
171 if (skipNANs && |
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
172 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) { |
2571
63f44b8b41a3
Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2156
diff
changeset
|
173 continue; |
63f44b8b41a3
Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2156
diff
changeset
|
174 } |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
175 series.add(xPoints[i], yPoints[i], false); |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
176 } |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
177 } |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
178 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
179 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
180 /** |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
181 * Add points to series (km to 1st dim, w to 2nd dim). |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
182 * |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
183 * @param series Series to add points to. |
3269
b2ea89a665bc
Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3176
diff
changeset
|
184 * @param wkms WKms to add to series. |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
185 */ |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
186 public static void addPoints(XYSeries series, WKms wkms) { |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
187 if (wkms == null) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
188 return; |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
189 } |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
190 |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
191 int size = wkms.size(); |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
192 |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
193 for (int i = 0; i < size; i++) { |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
194 series.add(wkms.getKm(i), wkms.getW(i), false); |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
195 } |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
196 } |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
197 |
3395
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
198 |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
199 /** |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
200 * Add points to dataset with an offset (shift all points by given amount). |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
201 * @param series series to add data to. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
202 * @param wkms WKms of which the Ws will be shifted. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
203 * @param off the offset. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
204 */ |
3394
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
205 public static void addUpperBand(XYSeries series, WKms wkms, double off) { |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
206 if (wkms == null) { |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
207 return; |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
208 } |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
209 |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
210 int size = wkms.size(); |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
211 |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
212 for (int i = 0; i < size; i++) { |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
213 series.add(wkms.getKm(i), wkms.getW(i)+off, false); |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
214 } |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
215 } |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
216 |
3395
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
217 |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
218 /** |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
219 * Add points to dataset with an offset (shift all points 'down' by given |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
220 * amount). |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
221 * @param series series to add data to. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
222 * @param wkms WKms of which the Ws will be shifted. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
223 * @param off the offset. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
224 */ |
3394
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
225 public static void addLowerBand(XYSeries series, WKms wkms, double off) { |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
226 addUpperBand(series, wkms, -off); |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
227 } |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
228 |
3395
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
229 |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
230 /** |
1942
be1270c10d9a
Fix documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1886
diff
changeset
|
231 * Add points to series (km to 1st dim, q to 2nd dim). |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
232 * |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
233 * @param series Series to add points to. |
3269
b2ea89a665bc
Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3176
diff
changeset
|
234 * @param wqkms WQKms to add to series. |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
235 */ |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
236 public static void addPointsKmQ(XYSeries series, WQKms wqkms) { |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
237 if (wqkms == null) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
238 return; |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
239 } |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
240 |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
241 int size = wqkms.size(); |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
242 |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
243 for (int i = 0; i < size; i++) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
244 series.add(wqkms.getKm(i), wqkms.getQ(i), false); |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
245 } |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
246 } |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
247 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
248 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
249 /** |
3176
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
250 * Add points to series (km to 1st dim, q to 2nd dim), adding points |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
251 * to achieve a step-like curve. |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
252 * |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
253 * @param series Series to add points to. |
3269
b2ea89a665bc
Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3176
diff
changeset
|
254 * @param wqkms WQKms to add to series. |
3176
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
255 */ |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
256 public static void addStepPointsKmQ(XYSeries series, WQKms wqkms) { |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
257 if (wqkms == null) { |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
258 return; |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
259 } |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
260 |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
261 int size = wqkms.size(); |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
262 |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
263 for (int i = 0; i < size; i++) { |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
264 if (i==0) { |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
265 series.add(wqkms.getKm(i), wqkms.getQ(i), false); |
8507
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
266 } else if (i == size-1) { |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
267 series.add(wqkms.getKm(i), wqkms.getQ(i), false); |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
268 } else { |
3176
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
269 //Add two points. |
8507
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
270 double prevX; |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
271 double prevQ; |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
272 if (wqkms.getKm(i + 1) < wqkms.getKm(i)) { |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
273 /* Depending on the data direction the previous km / q |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
274 * might have a larger index when we draw right to left data. */ |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
275 prevX = wqkms.getKm(i + 1); |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
276 prevQ = wqkms.getQ(i + 1); |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
277 } else { |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
278 prevX = wqkms.getKm(i - 1); |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
279 prevQ = wqkms.getQ(i - 1); |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
280 } |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
281 double halveX = (prevX + wqkms.getKm(i)) / 2d; |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
282 series.add(halveX, prevQ, false); |
4438
919d4939ebe6
Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4365
diff
changeset
|
283 series.add(halveX, wqkms.getQ(i), false); |
3176
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
284 } |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
285 } |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
286 } |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
287 |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
288 |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
289 /** |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
290 * Add points to series (q to 1st dim, w to 2nd dim). |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
291 * |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
292 * @param series Series to add points to. |
3284
d9af29a4bb85
Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3269
diff
changeset
|
293 * @param wqkms WQKms to add to series. |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
294 */ |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
295 public static void addPointsQW(XYSeries series, WQKms wqkms) { |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
296 if (wqkms == null) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
297 return; |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
298 } |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
299 |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
300 int size = wqkms.size(); |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
301 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
302 for (int i = 0; i < size; i++) { |
4438
919d4939ebe6
Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4365
diff
changeset
|
303 series.add(wqkms.getQ(i), wqkms.getW(i), false); |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
304 } |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
305 } |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
306 |
6428
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
307 /** |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
308 * Add points to series (q to 1st dim, w to 2nd dim), adding wTrans to the |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
309 * W values and scaling it with wScale. |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
310 * |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
311 * @param series Series to add points to. |
6881
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
312 * @param qws to add to series. |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
313 * @param wAdd Value to add to each Q while adding to series. |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
314 * @param wScale multiply with |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
315 */ |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
316 public static void addPointsQW(XYSeries series, double[][] qws, double wTrans, double wScale) { |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
317 if (qws == null || qws.length == 0) { |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
318 return; |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
319 } |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
320 |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
321 double x[] = qws[0]; |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
322 double y[] = qws[1]; |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
323 |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
324 for (int i = 0; i < x.length; i++) { |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
325 series.add(x[i], wScale * (y[i] + wTrans), false); |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
326 } |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
327 } |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
328 /** |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
329 * Add points to series (q to 1st dim, w to 2nd dim), adding wTrans to the |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
330 * W values and scaling it with wScale. |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
331 * |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
332 * @param series Series to add points to. |
6428
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
333 * @param wqkms WQKms to add to series. |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
334 * @param wAdd Value to add to each Q while adding to series. |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
335 * @param wScale multiply with |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
336 */ |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
337 public static void addPointsQW(XYSeries series, WQKms wqkms, double wTrans, double wScale) { |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
338 if (wqkms == null) { |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
339 return; |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
340 } |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
341 |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
342 int size = wqkms.size(); |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
343 |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
344 for (int i = 0; i < size; i++) { |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
345 series.add(wqkms.getQ(i), wScale * (wqkms.getW(i) + wTrans), false); |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
346 } |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
347 } |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
348 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
349 /** |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
350 * Add points to series (q to 1st dim, w to 2nd dim). |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
351 * |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
352 * @param series Series to add points to. |
4365
7e3dc021452a
StyledSeriesBuilder: Corrected doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4364
diff
changeset
|
353 * @param qs the Qs to add, assumed same length than ws. |
7e3dc021452a
StyledSeriesBuilder: Corrected doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4364
diff
changeset
|
354 * @param ws the Ws to add, assumed same length than qs. |
4364
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
355 */ |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
356 public static void addPointsQW(XYSeries series, double[] qs, double ws[]) { |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
357 if (ws == null || qs == null) { |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
358 return; |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
359 } |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
360 |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
361 int size = qs.length; |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
362 |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
363 for (int i = 0; i < size; i++) { |
4438
919d4939ebe6
Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4365
diff
changeset
|
364 series.add(qs[i], ws[i], false); |
4364
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
365 } |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
366 } |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
367 |
6465
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
368 /** |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
369 * Add points to series (q to 1st dim, w to 2nd dim), with |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
370 * scaling and translation. |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
371 * |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
372 * @param series Series to add points to. |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
373 * @param qs the Qs to add, assumed same length than ws. |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
374 * @param ws the Ws to add, assumed same length than qs. |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
375 */ |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
376 public static void addPointsQW(XYSeries series, double[] qs, double ws[], |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
377 double wTrans, double wScale) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
378 if (ws == null || qs == null) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
379 return; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
380 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
381 |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
382 int size = qs.length; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
383 |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
384 for (int i = 0; i < size; i++) { |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
385 series.add(qs[i], wScale * (ws[i]+wTrans), false); |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
386 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
387 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
388 |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
389 |
4364
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
390 |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
391 /** |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
392 * Add points to series (q to 1st dim, w to 2nd dim). |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
393 * |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
394 * @param series Series to add points to. |
3284
d9af29a4bb85
Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3269
diff
changeset
|
395 * @param wwqq WWQQ to add to series. |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
396 */ |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
397 public static void addPoints(XYSeries series, WWQQ wwqq) { |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
398 if (wwqq == null) { |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
399 return; |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
400 } |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
401 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
402 int size = wwqq.size(); |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
403 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
404 for (int i = 0; i < size; i++) { |
4438
919d4939ebe6
Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4365
diff
changeset
|
405 series.add(wwqq.getW1(i), wwqq.getW2(i), false); |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
406 } |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
407 } |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
408 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
409 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
410 /** |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
411 * Create a Series such that an infinitely big area can be filled |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
412 * between the newly created and the given series. |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
413 */ |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
414 public static XYSeries createGroundAtInfinity(XYSeries series) { |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
415 XYSeries ground = new XYSeries(series.getKey() + /** TODO rand + */ "INF"); |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
416 ground.add(series.getMinX(), -BIG_DOUBLE_VALUE); |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
417 ground.add(series.getMaxX(), -BIG_DOUBLE_VALUE); |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
418 return ground; |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
419 } |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
420 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
421 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
422 /** |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
423 * Create a Series such that an infinitely big area can be filled |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
424 * between the newly created and the given series. |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
425 */ |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
426 public static XYSeries createCeilingAtInfinity(XYSeries series) { |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
427 XYSeries ground = new XYSeries(series.getKey() + /** TODO rand + */ "INF"); |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
428 ground.add(series.getMinX(), BIG_DOUBLE_VALUE); |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
429 ground.add(series.getMaxX(), BIG_DOUBLE_VALUE); |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
430 return ground; |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
431 } |
1791
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
432 } |
e0e5a5b51a40
Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
433 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |