comparison artifacts/src/main/java/org/dive4elements/river/exports/StyledSeriesBuilder.java @ 6212:128686fa5add

flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 06 Jun 2013 11:20:01 +0200
parents af13ceeba52a
children 450bf0017690
comparison
equal deleted inserted replaced
6211:c40acb6bfe38 6212:128686fa5add
38 private StyledSeriesBuilder() { 38 private StyledSeriesBuilder() {
39 } 39 }
40 40
41 41
42 /** 42 /**
43 * Add points to series. 43 * Add points to series, create gaps if certain distance between points is met.
44 * 44 *
45 * @param series Series to add points to. 45 * @param series Series to add points to.
46 * @param points Points to add to series, points[0] to 1st dim, points[1] 46 * @param points Points to add to series, points[0] to 1st dim, points[1]
47 * to 2nd dim. 47 * to 2nd dim.
48 * @param skipNANs if true, skip NAN values in points parameter. 48 * @param skipNANs if true, skip NAN values in points parameter.
49 */ 49 * @param distance if two consecutive entries in points[0] are more
50 public static void addPoints(XYSeries series, double[][] points, boolean skipNANs) { 50 * than distance apart, create a NaN value to skip in display.
51 */
52 public static void addPoints(XYSeries series, double[][] points, boolean skipNANs, double distance) {
51 if (points == null || points.length <= 1) { 53 if (points == null || points.length <= 1) {
52 return; 54 return;
53 } 55 }
54 double [] xPoints = points[0]; 56 double [] xPoints = points[0];
55 double [] yPoints = points[1]; 57 double [] yPoints = points[1];
57 if (skipNANs && 59 if (skipNANs &&
58 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) { 60 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) {
59 logger.warn ("Skipping NaN in StyledSeriesBuilder."); 61 logger.warn ("Skipping NaN in StyledSeriesBuilder.");
60 continue; 62 continue;
61 } 63 }
64 // Create gap if distance >= distance.
65 if (i != 0 && Math.abs(xPoints[i-1] - xPoints[i]) >= distance) {
66 if (!Double.isNaN(yPoints[i-1]) && !Double.isNaN(yPoints[i])) {
67 series.add((xPoints[i-1]+xPoints[i])/2.d, Double.NaN, false);
68 }
69 logger.warn ("Gap " + xPoints[i-1] + " " + xPoints[i] + "!");
70 }
71 series.add(xPoints[i], yPoints[i], false);
72 }
73 }
74
75 /**
76 * Add points to series.
77 *
78 * @param series Series to add points to.
79 * @param points Points to add to series, points[0] to 1st dim, points[1]
80 * to 2nd dim.
81 * @param skipNANs if true, skip NAN values in points parameter.
82 */
83 public static void addPoints(XYSeries series, double[][] points, boolean skipNANs) {
84 if (points == null || points.length <= 1) {
85 return;
86 }
87 double [] xPoints = points[0];
88 double [] yPoints = points[1];
89 for (int i = 0; i < xPoints.length; i++) {
90 if (skipNANs &&
91 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) {
92 logger.warn ("Skipping NaN in StyledSeriesBuilder.");
93 continue;
94 }
62 series.add(xPoints[i], yPoints[i], false); 95 series.add(xPoints[i], yPoints[i], false);
63 } 96 }
64 } 97 }
65 98
66 99

http://dive4elements.wald.intevation.org