Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/MorphologicWidth.java @ 8587:07c9ac22f611
(issue1755) Generalise BedQuality result handling
The bedquality calculation now produces a result for each time period
which has BedQualityResultValues for each specific result type.
Formally this was split up in density, porosity and diameter classes
with some bedload diameter classes mixed in for extra fun.
The intent of this commit is to allow more shared code and generic
access patterns to the BedQuality results.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 18 Mar 2015 18:42:08 +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:
5778
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.minfo; |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.HashMap; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.Map; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 public class MorphologicWidth |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 private Map<Double, Double> pairs; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 public MorphologicWidth() { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 pairs = new HashMap<Double, Double>(); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 public void add(double station, double width) { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 this.pairs.put(station, width); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 public Map<Double, Double> getAll() { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 return this.pairs; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 public double[][] getAsArray() { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 double [][] array = new double[2][pairs.size()]; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 Double[] kms = pairs.keySet().toArray(new Double[pairs.size()]); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 Double[] width = pairs.values().toArray(new Double[pairs.size()]); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 int realIndex = 0; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 for (int i = 0; i < kms.length; i++) { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 if (kms[i] == null || width[i] == null) { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 continue; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 array[0][realIndex] = kms[i]; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 array[1][realIndex] = width[i]; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 realIndex++; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 return array; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 public Double getWidth(double station) { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 if (this.pairs.containsKey(station)) { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 return this.pairs.get(station); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 return null; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 } |