annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCrossSectionIndexData.java @ 9430:e8b1255fc89e

Added calculation of salix hw5 and salix line w
author mschaefer
date Mon, 20 Aug 2018 09:41:07 +0200
parents bd5f5d2220fa
children ee6508687e3f
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 import org.dive4elements.artifacts.CallContext;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
15
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 * 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
18 *
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
19 * @author Gernot Belger
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
20 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
21 public final class SalixLineCrossSectionIndexData implements Serializable {
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
22
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 * Known waterlevels of the salix computation
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
25 */
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
26 public enum SalixWaterlevel {
9430
e8b1255fc89e Added calculation of salix hw5 and salix line w
mschaefer
parents: 9429
diff changeset
27 mnw, mw, mhw, hw5
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
28 }
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
29
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
30 private static final long serialVersionUID = 1L;
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 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
33
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
34 // 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
35 private final int resultIndex = 0;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
36
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
37 private final Integer scenarioIndex;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
38
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
39 private final SalixWaterlevel waterlevel;
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
40
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 * 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
43 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
44 public static final SalixLineCrossSectionIndexData salixLine() {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
45 return SALIX_LINE;
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
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 * 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
50 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
51 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
52 return new SalixLineCrossSectionIndexData(scenarioIndex, null);
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
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 * 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
57 */
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
58 // 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
59 // Rechnung?
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
60 // 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
61 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
62 assert name != null;
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
63 return new SalixLineCrossSectionIndexData(null, name);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
64 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
65
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
66 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
67 this.scenarioIndex = scenarioIndex;
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
68 this.waterlevel = waterlevel;
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
69 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
70
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
71 public double getCrossSectionLine(final SalixLineCalculationResults results, final double currentKm, final double nextKm, final double prevKm,
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
72 final CallContext context) {
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
73
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
74 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
75
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
76 if (this.scenarioIndex != null) {
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
77 // 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
78 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
79 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
80
9429
bd5f5d2220fa Work on salix cross sections; waterlevels work now with different colors
gernotbelger
parents: 9426
diff changeset
81 if (this.waterlevel != null) {
9426
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
82 // 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
83 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
84 }
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 // 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
87 return result.getSalixValue(currentKm, nextKm, prevKm);
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
88 }
b6e595f1696f Activated cross section output mode for salix line and implemented some themes preliminary.
gernotbelger
parents:
diff changeset
89 }

http://dive4elements.wald.intevation.org