annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedParametersResult.java @ 8581:073ea4bcea58

(issue1755) Interpolate BedQuality Results This adds an interpolation function to each various bedQuality result class. Imho this is ok as the interpolation function can be seen as part of the result. The interpolation function is initalized on first use and can be accessed through get.*Interpol functions.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 16 Mar 2015 15:36:38 +0100
parents af13ceeba52a
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: 3785
diff changeset
9 package org.dive4elements.river.artifacts.model.minfo;
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import gnu.trove.TDoubleArrayList;
8581
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
12 import org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
13 import org.dive4elements.river.utils.DoubleUtil;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
14 import org.apache.commons.math.ArgumentOutsideDomainException;
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import java.io.Serializable;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 public class BedParametersResult
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 implements Serializable
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 protected TDoubleArrayList porosityCap;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 protected TDoubleArrayList porositySub;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 protected TDoubleArrayList loadDensityCap;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 protected TDoubleArrayList loadDensitySub;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 protected TDoubleArrayList kms;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
8581
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
28 protected PolynomialSplineFunction interpolPoroSub;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
29 protected PolynomialSplineFunction interpolPoroCap;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
30 protected PolynomialSplineFunction interpolDensSub;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
31 protected PolynomialSplineFunction interpolDensCap;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
32
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
33 protected boolean nonInterpolPoroSub;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
34 protected boolean nonInterpolPoroCap;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
35 protected boolean nonInterpolDensSub;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
36 protected boolean nonInterpolDensCap;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
37
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 public BedParametersResult() {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 public BedParametersResult(
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 TDoubleArrayList kms,
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 TDoubleArrayList porosityCap,
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 TDoubleArrayList porositySub,
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 TDoubleArrayList densityCap,
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 TDoubleArrayList densitySub
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 ) {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 this.kms = kms;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 this.porosityCap = porosityCap;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 this.porositySub = porositySub;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 this.loadDensityCap = densityCap;
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 this.loadDensitySub = densitySub;
8581
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
54
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
55 PolynomialSplineFunction interpolPoroSub = null;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
56 PolynomialSplineFunction interpolPoroCap = null;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
57 PolynomialSplineFunction interpolDensSub = null;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
58 PolynomialSplineFunction interpolDensCap = null;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
59
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
60 nonInterpolPoroSub = false;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
61 nonInterpolPoroCap = false;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
62 nonInterpolDensSub = false;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
63 nonInterpolDensCap = false;
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 public double getPorosityCap(int ndx) {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 return porosityCap.get(ndx);
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 public double getPorositySub(int ndx) {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 return porositySub.get(ndx);
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 public double getLoadDensityCap(int ndx) {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 return loadDensityCap.get(ndx);
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 public double getLoadDensitySub(int ndx) {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 return loadDensitySub.get(ndx);
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
3785
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
82 public double getPorosityCap(double km) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
83 if (kms.indexOf(km) >= 0) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
84 return porosityCap.get(kms.indexOf(km));
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
85 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
86 return Double.NaN;
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
87 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
88
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
89 public double getPorositySub(double km) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
90 if (kms.indexOf(km) >= 0) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
91 return porositySub.get(kms.indexOf(km));
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
92 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
93 return Double.NaN;
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
94 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
95
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
96 public double getLoadDensityCap(double km) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
97 if (kms.indexOf(km) >= 0) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
98 return loadDensityCap.get(kms.indexOf(km));
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
99 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
100 return Double.NaN;
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
101 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
102
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
103 public double getLoadDensitySub(double km) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
104 if (kms.indexOf(km) >= 0) {
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
105 return loadDensitySub.get(kms.indexOf(km));
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
106 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
107 return Double.NaN;
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
108 }
a5f65e8983be Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3784
diff changeset
109
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 public double[][] getPorosityCapData() {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 return new double[][] {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 kms.toNativeArray(),
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 porosityCap.toNativeArray()
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 };
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 public double[][] getPorositySubData() {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 return new double[][] {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 kms.toNativeArray(),
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 porositySub.toNativeArray()
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 };
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 public double[][] getDensityCapData() {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 return new double[][] {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 kms.toNativeArray(),
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 loadDensityCap.toNativeArray()
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 };
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 }
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 public double[][] getDensitySubData() {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 return new double[][] {
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 kms.toNativeArray(),
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 loadDensitySub.toNativeArray()
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 };
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 }
8581
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
137
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
138 public double getPorositySubInterpol(double km) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
139 if (nonInterpolPoroSub) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
140 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
141 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
142 if (interpolPoroSub == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
143 interpolPoroSub = DoubleUtil.getLinearInterpolator(kms, porositySub);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
144 if (interpolPoroSub == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
145 nonInterpolPoroSub = true;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
146 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
147 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
148 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
149 try {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
150 return interpolPoroSub.value(km);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
151 } catch (ArgumentOutsideDomainException e) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
152 /* This is expected for many results. */
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
153 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
154 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
155 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
156
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
157 public double getPorosityCapInterpol(double km) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
158 if (nonInterpolPoroCap) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
159 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
160 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
161 if (interpolPoroCap == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
162 interpolPoroCap = DoubleUtil.getLinearInterpolator(kms, porosityCap);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
163 if (interpolPoroCap == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
164 nonInterpolPoroCap = true;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
165 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
166 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
167 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
168 try {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
169 return interpolPoroCap.value(km);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
170 } catch (ArgumentOutsideDomainException e) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
171 /* This is expected for many results. */
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
172 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
173 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
174 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
175
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
176 public double getDensitySubInterpol(double km) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
177 if (nonInterpolDensSub) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
178 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
179 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
180 if (interpolDensSub == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
181 interpolDensSub = DoubleUtil.getLinearInterpolator(kms, loadDensitySub);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
182 if (interpolDensSub == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
183 nonInterpolDensSub = true;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
184 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
185 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
186 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
187 try {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
188 return interpolDensSub.value(km);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
189 } catch (ArgumentOutsideDomainException e) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
190 /* This is expected for many results. */
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
191 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
192 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
193 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
194
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
195 public double getDensityCapInterpol(double km) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
196 if (nonInterpolDensCap) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
197 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
198 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
199 if (interpolDensCap == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
200 interpolDensCap = DoubleUtil.getLinearInterpolator(kms, loadDensityCap);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
201 if (interpolDensCap == null) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
202 nonInterpolDensCap = true;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
203 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
204 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
205 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
206 try {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
207 return interpolDensCap.value(km);
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
208 } catch (ArgumentOutsideDomainException e) {
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
209 /* This is expected for many results. */
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
210 return Double.NaN;
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
211 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
212 }
073ea4bcea58 (issue1755) Interpolate BedQuality Results
Andre Heinecke <andre.heinecke@intevation.de>
parents: 5994
diff changeset
213
3784
9f9d5ada96ca Merged revisions 5498-5499 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
214 }

http://dive4elements.wald.intevation.org