Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/Porosity.java @ 8653:dbec49147f54
(issue1755) Do not create interpolated themes and disable export of non interpolatable data.
Due to the fact that data can contain NaN's which will be filtered out
before creating the interpolator this requires the actual check
for interpolatable data when data is set in the ResultValue
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 01 Apr 2015 17:10:03 +0200 |
parents | e84726b48484 |
children |
rev | line source |
---|---|
7846
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 * |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 */ |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.minfo; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.HashMap; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.Map; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 public class Porosity |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 private Map<Double, Double> pairs; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 public Porosity() { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 pairs = new HashMap<Double, Double>(); |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 public void add(double station, double porosity) { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 this.pairs.put(station, porosity); |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 public Map<Double, Double> getAll() { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 return this.pairs; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 public double[][] getAsArray() { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 double [][] array = new double[2][pairs.size()]; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 Double[] kms = pairs.keySet().toArray(new Double[pairs.size()]); |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 Double[] porosity = pairs.values().toArray(new Double[pairs.size()]); |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 int realIndex = 0; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 for (int i = 0; i < kms.length; i++) { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 if (kms[i] == null || porosity[i] == null) { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 continue; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 array[0][realIndex] = kms[i]; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 array[1][realIndex] = porosity[i]; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 realIndex++; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 return array; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 public Double getWidth(double station) { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 if (this.pairs.containsKey(station)) { |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 return this.pairs.get(station); |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 return null; |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 } |
e84726b48484
New Facet, datatype and data factory for porosities.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 } |