annotate artifacts/src/main/java/org/dive4elements/river/exports/StyledSeriesBuilder.java @ 6881:32af7e5cb00f

issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 21 Aug 2013 11:10:45 +0200
parents 590d420ed382
children e4606eae8ea5
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
2571
63f44b8b41a3 Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2156
diff changeset
31 private static final Logger logger = Logger.getLogger
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 logger.warn ("Skipping NaN in StyledSeriesBuilder.");
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
71 continue;
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
72 }
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
73 // 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
74 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
75 // 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
76 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
77 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
78 }
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
79
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
80 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
81 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
82 }
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
83 }
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
84 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
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
590d420ed382 StyledSeriesBuilder: Added new method to add points with a scane factor.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6778
diff changeset
89 /**
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
90 * 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
91 *
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
92 * @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
93 * @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
94 * to 2nd dim.
6769
334db91c96dc StyledSeriesBuilder: Minor doc improvement.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6465
diff changeset
95 * @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
96 * 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
97 * @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
98 * 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
99 * 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
100 */
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
101 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
102 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
103 return;
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
104 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
105 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
106 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
107 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
108 if (skipNANs &&
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
109 (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
110 logger.warn ("Skipping NaN in StyledSeriesBuilder.");
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
111 continue;
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
112 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
113 // 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
114 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
115 // 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
116 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
117 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
118 }
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
119
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
120 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
121 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
122 }
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 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
125 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
126 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
127
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
128 /**
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
129 * 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
130 *
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 * @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
132 * @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
133 * to 2nd dim.
2686
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
134 * @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
135 * @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
136 * @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
137 */
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
138 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
139 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
140 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
141 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
142 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
143 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
144 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
145 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
146 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
147 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
148 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
149 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
150 if (skipNANs &&
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
151 (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
152 logger.warn ("Skipping NaN in StyledSeriesBuilder.");
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
153 continue;
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 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
156 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
157 }
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 /**
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
160 * 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
161 *
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
162 * @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
163 * @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
164 * 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
165 * @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
166 */
2686
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
167 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
168 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
169 return;
b30e1710df1d Server-side of interactive cross-section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1942
diff changeset
170 }
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
171 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
172 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
173 for (int i = 0; i < xPoints.length; i++) {
2686
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
174 if (skipNANs &&
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
175 (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
176 logger.warn ("Skipping NaN in StyledSeriesBuilder.");
63f44b8b41a3 Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2156
diff changeset
177 continue;
63f44b8b41a3 Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2156
diff changeset
178 }
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
179 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
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 }
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
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
184 /**
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 * 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
186 *
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
187 * @param series Series to add points to.
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3176
diff changeset
188 * @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
189 */
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
190 public static void addPoints(XYSeries series, WKms wkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
191 if (wkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
192 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
193 }
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
194
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
195 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
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 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
198 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
199 }
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
200 }
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
201
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
202
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
203 /**
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
204 * 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
205 * @param series series to add data to.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
206 * @param wkms WKms of which the Ws will be shifted.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
207 * @param off the offset.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
208 */
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
209 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
210 if (wkms == null) {
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
211 return;
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
212 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
213
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
214 int size = wkms.size();
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 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
217 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
218 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
219 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
220
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
221
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
222 /**
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
223 * 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
224 * amount).
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
225 * @param series series to add data to.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
226 * @param wkms WKms of which the Ws will be shifted.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
227 * @param off the offset.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
228 */
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
229 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
230 addUpperBand(series, wkms, -off);
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
231 }
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
232
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
233
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
234 /**
1942
be1270c10d9a Fix documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1886
diff changeset
235 * 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
236 *
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
237 * @param series Series to add points to.
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3176
diff changeset
238 * @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
239 */
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 public static void addPointsKmQ(XYSeries series, WQKms wqkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
241 if (wqkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
242 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
243 }
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
244
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
245 int size = wqkms.size();
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
246
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
247 for (int i = 0; i < size; i++) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
248 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
249 }
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
250 }
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
251
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
252
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
253 /**
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
254 * 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
255 * 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
256 *
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
257 * @param series Series to add points to.
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3176
diff changeset
258 * @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
259 */
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
260 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
261 if (wqkms == null) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
262 return;
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
263 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
264
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
265 int size = wqkms.size();
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
266
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
267 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
268 if (i==0) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
269 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
270 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
271 else {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
272 //Add two points.
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
273 double halveX = (wqkms.getKm(i-1) + wqkms.getKm(i)) / 2d;
4438
919d4939ebe6 Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4365
diff changeset
274 series.add(halveX, wqkms.getQ(i-1), false);
919d4939ebe6 Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4365
diff changeset
275 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
276 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
277 if (i == size-1) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
278 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
279 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
280 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
281 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
282
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
283
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
284 /**
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
285 * 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
286 *
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
287 * @param series Series to add points to.
3284
d9af29a4bb85 Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3269
diff changeset
288 * @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
289 */
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
290 public static void addPointsQW(XYSeries series, WQKms wqkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
291 if (wqkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
292 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
293 }
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
294
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
295 int size = wqkms.size();
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
296
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
297 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
298 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
299 }
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
300 }
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
301
6428
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
302 /**
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
303 * 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
304 * 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
305 *
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
306 * @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
307 * @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
308 * @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
309 * @param wScale multiply with
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
310 */
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
311 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
312 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
313 return;
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
314 }
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 double x[] = qws[0];
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
317 double y[] = qws[1];
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
318
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
319 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
320 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
321 }
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
322 }
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 * 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
325 * 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
326 *
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
327 * @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
328 * @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
329 * @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
330 * @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
331 */
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
332 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
333 if (wqkms == null) {
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
334 return;
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
335 }
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 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
338
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
339 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
340 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
341 }
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
342 }
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
343
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
344 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
345 * 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
346 *
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
347 * @param series Series to add points to.
4365
7e3dc021452a StyledSeriesBuilder: Corrected doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4364
diff changeset
348 * @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
349 * @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
350 */
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
351 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
352 if (ws == null || qs == null) {
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
353 return;
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
354 }
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 int size = qs.length;
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
357
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
358 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
359 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
360 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
361 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
362
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
363 /**
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
364 * 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
365 * 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
366 *
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
367 * @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
368 * @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
369 * @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
370 */
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
371 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
372 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
373 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
374 return;
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
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
377 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
378
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
379 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
380 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
381 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
382 }
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
4364
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
385
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
386 /**
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
387 * 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
388 *
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
389 * @param series Series to add points to.
3284
d9af29a4bb85 Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3269
diff changeset
390 * @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
391 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
392 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
393 if (wwqq == null) {
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
394 return;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
395 }
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 int size = wwqq.size();
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
398
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
399 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
400 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
401 }
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
402 }
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
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
405 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
406 * 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
407 * 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
408 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
409 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
410 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
411 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
412 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
413 return ground;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
414 }
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
415
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
416
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
417 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
418 * 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
419 * 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
420 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
421 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
422 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
423 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
424 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
425 return ground;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
426 }
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
427 }
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
428 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org