annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCrossSectionIndexData.java @ 9514:ee6508687e3f

Added default vegetation zones tzo iota result map.
author gernotbelger
date Mon, 01 Oct 2018 13:03:42 +0200
parents e8b1255fc89e
children
rev   line source
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
2 * Software engineering by
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
5 *
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
9 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.uinfo.salix;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
11
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
12 import java.io.Serializable;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
13
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
14 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
15 * The 'index' that tells the cross section facet which of my result are to be fetched as a cross section line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
16 *
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
17 * @author Gernot Belger
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
18 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
19 public final class SalixLineCrossSectionIndexData implements Serializable {
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
20
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
21 /**
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
22 * Known waterlevels of the salix computation
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
23 */
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
24 public enum SalixWaterlevel {
9430
e8b1255fc89e Added calculation of salix hw5 and salix line w
mschaefer
parents: 9429
diff changeset
25 mnw, mw, mhw, hw5
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
26 }
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
27
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
28 private static final long serialVersionUID = 1L;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
29
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
30 private static final SalixLineCrossSectionIndexData SALIX_LINE = new SalixLineCrossSectionIndexData(null, null);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
31
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
32 // REMARK: we know at the moment there is exactly one result
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
33 private final int resultIndex = 0;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
34
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
35 private final Integer scenarioIndex;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
36
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
37 private final SalixWaterlevel waterlevel;
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
38
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
39 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
40 * Creates an instance of this class that represants the salix line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
41 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
42 public static final SalixLineCrossSectionIndexData salixLine() {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
43 return SALIX_LINE;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
44 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
45
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
46 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
47 * Creates an instance of this class that represants the salix line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
48 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
49 public static final SalixLineCrossSectionIndexData scenario(final int scenarioIndex) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
50 return new SalixLineCrossSectionIndexData(scenarioIndex, null);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
51 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
52
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
53 /**
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
54 * Creates an instance of this class that represants the salix line.
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
55 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
56 // FIXME: gemeint sind die einzublendenden 'MNW, MW, MHW, HW5' mir nicht klar wo diese Daten herkommen, ggf. aus der
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
57 // Rechnung?
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
58 // FIXME: statt 'name' vielleicht eine enum oder irgend etwas anderes was diese dinger eindeutig referenzieet?
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
59 public static final SalixLineCrossSectionIndexData waterlevel(final SalixWaterlevel name) {
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
60 assert name != null;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
61 return new SalixLineCrossSectionIndexData(null, name);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
62 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
63
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
64 private SalixLineCrossSectionIndexData(final Integer scenarioIndex, final SalixWaterlevel waterlevel) {
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
65 this.scenarioIndex = scenarioIndex;
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
66 this.waterlevel = waterlevel;
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
67 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
68
9514
ee6508687e3f Added default vegetation zones tzo iota result map.
gernotbelger
parents: 9430
diff changeset
69 public double getCrossSectionLine(final SalixLineCalculationResults results, final double currentKm, final double nextKm, final double prevKm) {
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
70
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
71 final SalixLineCalculationResult result = results.getResults().get(this.resultIndex);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
72
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
73 if (this.scenarioIndex != null) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
74 // fetch scenario result data = salix line value at km
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
75 return result.getSalixScenarioValue(currentKm, nextKm, prevKm, this.scenarioIndex);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
76 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
77
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
78 if (this.waterlevel != null) {
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
79 // fetch waterlevel result data = salix line value at km
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
80 return result.getWaterlevelValue(currentKm, nextKm, prevKm, this.waterlevel);
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
81 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
82
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
83 // fetch normal result data = salix line value at km
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
84 return result.getSalixValue(currentKm, nextKm, prevKm);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
85 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
86 }

http://dive4elements.wald.intevation.org