annotate artifacts/src/main/java/org/dive4elements/river/exports/StyledSeriesBuilder.java @ 9617:1d4262a68f1f

#12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
author dnt_bjoernsen <d.tironi@bjoernsen.de>
date Thu, 10 Oct 2019 15:29:02 +0200
parents 3f0803009a8f
children
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;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4438
diff changeset
12 import org.dive4elements.river.artifacts.model.WKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4438
diff changeset
13 import org.dive4elements.river.artifacts.model.WQKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4438
diff changeset
14 import org.dive4elements.river.artifacts.model.WWQQ;
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
15 import org.jfree.data.xy.XYSeries;
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
16
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
17 /**
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 * 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
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 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
21
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
22 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
23 * 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
24 * 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
25 * 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
26 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
27 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
28
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
29 private static final Logger log = Logger.getLogger(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
30
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
31 /**
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
32 * 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
33 */
1886
6f047a407f84 Removed dead ';' from empty bodies.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1812
diff changeset
34 private StyledSeriesBuilder() {
6f047a407f84 Removed dead ';' from empty bodies.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1812
diff changeset
35 }
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
36
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 /**
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8698
diff changeset
38 * Add points to series, create gaps if certain distance
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8698
diff changeset
39 * between points is met.
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
40 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
41 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
42 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
43 * @param points
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
44 * Points to add to series, points[0] to 1st dim, points[1]
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
45 * to 2nd dim.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
46 * @param skipNANs
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
47 * if true, skip NAN values in points parameter. Otherwise,
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
48 * the NaNs lead to gaps in graph.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
49 * @param distance
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
50 * if two consecutive entries in points[0] are more
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
51 * than distance apart, create a NaN value to skip
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
52 * in display.
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
53 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
54 public static void addPoints(final XYSeries series, final double[][] points, final boolean skipNANs, final double distance) {
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
55 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
56 return;
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
57 }
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
58 final double[] xPoints = points[0];
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
59 final double[] yPoints = points[1];
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
60
9347
08f46ccd37ba salix.regional refactoring
gernotbelger
parents: 8935
diff changeset
61 Integer lastNonNaNIndex = null;
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
62
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
63 for (int i = 0; i < xPoints.length; i++) {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
64 if (skipNANs && (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) {
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
65 continue;
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
66 }
9347
08f46ccd37ba salix.regional refactoring
gernotbelger
parents: 8935
diff changeset
67
8698
5c7b4f4a2e6c (issue1670) Purge obsolete if-branching.
Tom Gottfried <tom@intevation.de>
parents: 8697
diff changeset
68 // Create gap if distance between points > distance.
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
69 if (i > 0 && lastNonNaNIndex != null) {
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
70 final double distanceToLastNonNan = Math.abs(xPoints[lastNonNaNIndex] - xPoints[i]);
9347
08f46ccd37ba salix.regional refactoring
gernotbelger
parents: 8935
diff changeset
71 if (distanceToLastNonNan > distance && !Double.isNaN(yPoints[lastNonNaNIndex]) && !Double.isNaN(yPoints[i]))
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
72 series.add((xPoints[i - 1] + xPoints[i]) / 2, Double.NaN, false);
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
73 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
74 series.add(xPoints[i], yPoints[i], false);
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
75
9590
3f0803009a8f Punkt 3.2 Lineare Interpolation weglassen für Peilungen
gernotbelger
parents: 9347
diff changeset
76 // if (skipNANs && !Double.isNaN(xPoints[i]) && !Double.isNaN(yPoints[i]))
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
77 if (!Double.isNaN(xPoints[i]) && !Double.isNaN(yPoints[i])) // skipNaN-State irrelevant, since lastNonNaNIndex is used for interpolation
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
78 // after gap-distance-comparison
9590
3f0803009a8f Punkt 3.2 Lineare Interpolation weglassen für Peilungen
gernotbelger
parents: 9347
diff changeset
79 lastNonNaNIndex = i;
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
80 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
81 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
82
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
83 /**
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
84 * 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
85 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
86 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
87 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
88 * @param points
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
89 * Points to add to series, points[0] to 1st dim, points[1]
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
90 * to 2nd dim.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
91 * @param skipNANs
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
92 * if true, skip NAN values in points parameter.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
93 * @param transY
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
94 * translate y-values by this value (before scale).
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
95 * @param factorY
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
96 * scale y-values by this value (after translation).
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
97 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
98 public static void addPoints(final XYSeries series, final double[][] points, final boolean skipNANs, final double transY, final double factorY) {
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
99 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
100 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
101 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
102 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
103 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
104 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
105 }
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
106 final double[] xPoints = points[0];
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
107 final double[] yPoints = points[1];
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
108 for (int i = 0; i < xPoints.length; i++) {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
109 if (skipNANs && (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) {
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
110 continue;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
111 }
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
112 series.add(xPoints[i], factorY * (transY + yPoints[i]), false);
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
113 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
114 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
115
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
116 /**
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
117 * 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
118 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
119 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
120 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
121 * @param points
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
122 * Points to add to series, points[0] to 1st dim, points[1]
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
123 * to 2nd dim.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
124 * @param skipNANs
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
125 * 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
126 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
127 public static void addPoints(final XYSeries series, final double[][] points, final boolean skipNANs) {
1983
ddb7b7da6199 Fix/survive certain minor malconditions.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1975
diff changeset
128 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
129 return;
b30e1710df1d Server-side of interactive cross-section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1942
diff changeset
130 }
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
131 final double[] xPoints = points[0];
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
132 final double[] yPoints = points[1];
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
133 for (int i = 0; i < xPoints.length; i++) {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
134 if (skipNANs && (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
135 continue;
63f44b8b41a3 Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2156
diff changeset
136 }
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
137 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
138 }
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
139 }
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
140
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
141 /**
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
142 * 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
143 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
144 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
145 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
146 * @param wkms
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
147 * 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
148 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
149 public static void addPoints(final XYSeries series, final WKms wkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
150 if (wkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
151 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
152 }
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
153
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
154 final int size = wkms.size();
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
155
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
156 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
157 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
158 }
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
159 }
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
160
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
161 /**
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
162 * Add points to dataset with an offset (shift all points by given amount).
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
163 *
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
164 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
165 * series to add data to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
166 * @param wkms
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
167 * WKms of which the Ws will be shifted.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
168 * @param off
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
169 * the offset.
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
170 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
171 public static void addUpperBand(final XYSeries series, final WKms wkms, final double off) {
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
172 if (wkms == null) {
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
173 return;
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
174 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
175
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
176 final int size = wkms.size();
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
177
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
178 for (int i = 0; i < size; i++) {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
179 series.add(wkms.getKm(i), wkms.getW(i) + off, false);
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
180 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
181 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
182
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
183 /**
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
184 * 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
185 * amount).
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
186 *
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
187 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
188 * series to add data to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
189 * @param wkms
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
190 * WKms of which the Ws will be shifted.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
191 * @param off
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
192 * the offset.
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
193 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
194 public static void addLowerBand(final XYSeries series, final WKms wkms, final double off) {
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
195 addUpperBand(series, wkms, -off);
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
196 }
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
197
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
198 /**
1942
be1270c10d9a Fix documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1886
diff changeset
199 * 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
200 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
201 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
202 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
203 * @param wqkms
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
204 * 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
205 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
206 public static void addPointsKmQ(final XYSeries series, final WQKms wqkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
207 if (wqkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
208 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
209 }
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
210
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
211 final int size = wqkms.size();
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
212
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
213 for (int i = 0; i < size; i++) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
214 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
215 }
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
216 }
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
217
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
218 /**
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
219 * 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
220 * 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
221 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
222 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
223 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
224 * @param wqkms
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
225 * 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
226 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
227 public static void addStepPointsKmQ(final XYSeries series, final WQKms wqkms) {
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
228 if (wqkms == null) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
229 return;
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
230 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
231
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
232 final int size = wqkms.size();
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
233
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
234 for (int i = 0; i < size; i++) {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
235 if (i == 0) {
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
236 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
237 } else if (i == size - 1) {
8507
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
238 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
239 } else {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
240 // Add two points.
8507
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
241 double prevX;
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
242 double prevQ;
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
243 if (wqkms.getKm(i + 1) < wqkms.getKm(i)) {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
244 /*
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
245 * Depending on the data direction the previous km / q
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8698
diff changeset
246 * might have a larger index when we draw
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
247 * right to left data.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
248 */
8507
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
249 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
250 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
251 } else {
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
252 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
253 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
254 }
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
255 final double halveX = (prevX + wqkms.getKm(i)) / 2d;
8507
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
256 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
257 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
258 }
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
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
262 /**
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
263 * 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
264 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
265 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
266 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
267 * @param wqkms
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
268 * 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
269 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
270 public static void addPointsQW(final XYSeries series, final WQKms wqkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
271 if (wqkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
272 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
273 }
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
274
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
275 final int size = wqkms.size();
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
276
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
277 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
278 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
279 }
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
280 }
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
281
6428
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
282 /**
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
283 * 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
284 * 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
285 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
286 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
287 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
288 * @param qws
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
289 * to add to series.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
290 * @param wAdd
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
291 * Value to add to each Q while adding to series.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
292 * @param wScale
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
293 * multiply with
6881
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
294 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
295 public static void addPointsQW(final XYSeries series, final double[][] qws, final double wTrans, final double wScale) {
6881
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
296 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
297 return;
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
298 }
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
299
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
300 final double x[] = qws[0];
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
301 final double y[] = qws[1];
6881
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
302
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
303 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
304 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
305 }
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
306 }
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
307
6881
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
308 /**
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
309 * 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
310 * 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
311 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
312 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
313 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
314 * @param wqkms
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
315 * WQKms to add to series.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
316 * @param wAdd
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
317 * Value to add to each Q while adding to series.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
318 * @param wScale
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
319 * multiply with
6428
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
320 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
321 public static void addPointsQW(final XYSeries series, final WQKms wqkms, final double wTrans, final double wScale) {
6428
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
322 if (wqkms == null) {
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
323 return;
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
324 }
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
325
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
326 final int size = wqkms.size();
6428
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
327
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
328 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
329 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
330 }
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
331 }
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
332
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
333 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
334 * 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
335 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
336 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
337 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
338 * @param qs
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
339 * the Qs to add, assumed same length than ws.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
340 * @param ws
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
341 * 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
342 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
343 public static void addPointsQW(final XYSeries series, final double[] qs, final double ws[]) {
4364
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
344 if (ws == null || qs == null) {
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
345 return;
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
346 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
347
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
348 final int size = qs.length;
4364
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
349
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
350 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
351 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
352 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
353 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
354
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
355 /**
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
356 * 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
357 * 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
358 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
359 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
360 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
361 * @param qs
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
362 * the Qs to add, assumed same length than ws.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
363 * @param ws
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
364 * the Ws to add, assumed same length than qs.
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
365 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
366 public static void addPointsQW(final XYSeries series, final double[] qs, final double ws[], final double wTrans, final double wScale) {
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
367 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
368 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
369 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
370
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
371 final int size = qs.length;
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
372
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
373 for (int i = 0; i < size; i++) {
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
374 series.add(qs[i], wScale * (ws[i] + wTrans), false);
6465
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
4364
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
378 /**
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
379 * 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
380 *
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
381 * @param series
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
382 * Series to add points to.
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
383 * @param wwqq
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
384 * 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
385 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
386 public static void addPoints(final XYSeries series, final WWQQ wwqq) {
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
387 if (wwqq == null) {
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
388 return;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
389 }
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
390
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
391 final int size = wwqq.size();
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
392
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
393 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
394 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
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
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 * 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
400 * 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
401 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
402 public static XYSeries createGroundAtInfinity(final XYSeries series) {
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
403 final XYSeries ground = new XYSeries(series.getKey() + /** TODO rand + */
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
404 "INF");
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
405 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
406 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
407 return ground;
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 */
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
414 public static XYSeries createCeilingAtInfinity(final XYSeries series) {
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
415 final XYSeries ground = new XYSeries(series.getKey() + /** TODO rand + */
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
416 "INF");
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
417 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
418 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
419 return ground;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
420 }
8935
3ac9cb0029b2 Introduced new hook for chart tweaking.
gernotbelger
parents: 8856
diff changeset
421
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
422 /** Checks if a given value is the BIG_DOUBLE_VALUE */
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
423 public static boolean isBigDoubleValue(final Number value) {
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
424 if (value == null)
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
425 return false;
8935
3ac9cb0029b2 Introduced new hook for chart tweaking.
gernotbelger
parents: 8856
diff changeset
426
9617
1d4262a68f1f #12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents: 9590
diff changeset
427 return Math.abs(BIG_DOUBLE_VALUE - Math.abs(value.doubleValue())) < 0.1;
8935
3ac9cb0029b2 Introduced new hook for chart tweaking.
gernotbelger
parents: 8856
diff changeset
428 }
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
429 }
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
430 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org