annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedQualityResultValue.java @ 8667:0c241f03ebcd

(issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 08 Apr 2015 19:09:38 +0200
parents dbec49147f54
children 5e38e2924c07
rev   line source
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
3 *
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
7 */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
8
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.artifacts.model.minfo;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
10
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
11 import org.dive4elements.river.utils.DoubleUtil;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
12
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
13 import org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
14 import org.apache.commons.math.ArgumentOutsideDomainException;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
15
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
16 import java.util.Arrays;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
17 import java.util.Set;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
18 import java.util.HashSet;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
19
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
20 import java.io.Serializable;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
21
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
22 /** Holder of a specific result from the bed quality calculation.
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
23 *
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
24 * Data is always a map of km to value. The type "bedload"
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
25 * translates to german "Geschiebe" other results are either
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
26 * specific to the top or the sublayer of the riverbed.
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
27 *
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
28 * The name can be the diameter of this result for bed and bedload
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
29 * data.
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
30 **/
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
31 public class BedQualityResultValue implements Serializable {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
32 public static final String[] DIAMETER_NAMES = new String[] {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
33 "D90",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
34 "D84",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
35 "D80",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
36 "D75",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
37 "D70",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
38 "D60",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
39 "D50",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
40 "D40",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
41 "D30",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
42 "D25",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
43 "D20",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
44 "D16",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
45 "D10",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
46 "DM",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
47 "DMIN",
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
48 "DMAX"
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
49 };
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
50
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
51 /* For ease of access */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
52 public static final Set<String> DIAMETER_NAME_SET = new HashSet<String>(
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
53 Arrays.asList(DIAMETER_NAMES));
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
54
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
55 private String name;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
56 private String type;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
57 private double [][] data;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
58 private transient PolynomialSplineFunction interpolFunc;
8653
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
59 private boolean isInterpolatableData;
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
60
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
61 public BedQualityResultValue() {
8653
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
62 isInterpolatableData = false;
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
63 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
64
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
65 public BedQualityResultValue(String name, double [][] data, String type) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
66 this.name = name;
8653
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
67 isInterpolatableData = false;
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
68 setData(data);
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
69 this.type = type;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
70 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
71
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
72 public String getName() {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
73 return name;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
74 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
75
8638
3c78fc83fc6d (issue1755) Do not treat empty values as part of the result
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
76 public boolean isEmpty() {
3c78fc83fc6d (issue1755) Do not treat empty values as part of the result
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
77 return data == null || data.length < 2 || data[0].length == 0;
3c78fc83fc6d (issue1755) Do not treat empty values as part of the result
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
78 }
3c78fc83fc6d (issue1755) Do not treat empty values as part of the result
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8587
diff changeset
79
8667
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
80 public boolean isNaN() {
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
81 if (isEmpty()) {
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
82 return true;
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
83 }
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
84 for (int i = 0; i < data[0].length; i++) {
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
85 if (!Double.isNaN(data[1][i])) {
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
86 return false;
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
87 }
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
88 }
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
89 return true;
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
90 }
0c241f03ebcd (issue1755) Only add facets / results when they do not consist exlcusively of NaN values.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8653
diff changeset
91
8653
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
92 public boolean isInterpolateable() {
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
93 return isInterpolatableData;
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
94 }
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
95
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
96 public void setName(String name) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
97 this.name = name;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
98 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
99
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
100 public double [][] getData() {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
101 return data;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
102 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
103
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
104 public double getData(double x) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
105 int idx = Arrays.binarySearch(data[0], x);
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
106 if (idx < 0) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
107 return Double.NaN;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
108 } else {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
109 return data[1][idx];
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
110 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
111 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
112
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
113 public double getDataInterpolated(double x) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
114 if (interpolFunc == null) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
115 interpolFunc = DoubleUtil.getLinearInterpolator(data[0], data[1]);
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
116 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
117 try {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
118 return interpolFunc.value(x);
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
119 } catch (ArgumentOutsideDomainException e) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
120 return getData(x);
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
121 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
122 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
123
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
124 public double [][] getDataInterpolated(double[] x) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
125 double y[] = new double[x.length];
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
126 int i = 0;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
127 for (double point: x) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
128 y[i++] = getDataInterpolated(point);
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
129 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
130 return new double[][] {x, y};
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
131 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
132
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
133 public void setData(double [][] data) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
134 this.data = data;
8653
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
135
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
136 if (!isEmpty() && data[0].length > 1 && data[0].length == data[1].length) {
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
137 int usable_points = 0;
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
138 for (double val :data[1]) {
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
139 if (!Double.isNaN(val)) {
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
140 usable_points++;
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
141 }
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
142 if (usable_points == 2) {
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
143 isInterpolatableData = true;
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
144 return;
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
145 }
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
146 }
dbec49147f54 (issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8638
diff changeset
147 }
8587
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
148 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
149
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
150 public void setType(String type) {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
151 this.type = type;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
152 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
153
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
154 public String getType() {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
155 return type;
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
156 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
157
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
158 /** Checks wether or not the name matches that of a diameter */
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
159 public boolean isDiameterResult() {
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
160 return DIAMETER_NAME_SET.contains(name.toUpperCase());
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
161 }
07c9ac22f611 (issue1755) Generalise BedQuality result handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
162 }

http://dive4elements.wald.intevation.org