annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/SINFOArtifact.java @ 9596:fbfd66e8fb81

Softwaretests...20181219 6.2.2: Sinfo/Ued Haupt-/Extremwerte update for current km, W/Q of selected WSPL initially visible
author mschaefer
date Tue, 05 Feb 2019 15:43:27 +0100
parents 45bbd2c232f8
children 1d4262a68f1f
rev   line source
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
2 * Software engineering by
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
5 *
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
9 */
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.sinfo;
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
11
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
12 import org.apache.commons.lang.StringUtils;
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
13 import org.dive4elements.artifactdatabase.state.Facet;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
14 import org.dive4elements.artifactdatabase.state.FacetActivity;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
15 import org.dive4elements.artifacts.Artifact;
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.artifacts.D4EArtifact;
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
17 import org.dive4elements.river.artifacts.sinfo.common.D50Processor;
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
18 import org.dive4elements.river.artifacts.sinfo.common.FlowDepthDevelopmentPerYearProcessor;
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
19 import org.dive4elements.river.artifacts.sinfo.common.FlowDepthDevelopmentProcessor;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
20 import org.dive4elements.river.artifacts.sinfo.common.FlowDepthProcessor;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
21 import org.dive4elements.river.artifacts.sinfo.common.TauProcessor;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
22 import org.dive4elements.river.artifacts.sinfo.common.VelocityProcessor;
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
23
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
24 /**
8869
20b85ea3b524 Fixed some typos
gernotbelger
parents: 8854
diff changeset
25 * The default SINFO artifact.
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
26 *
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
27 * @author Gernot Belger
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
28 */
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
29 public class SINFOArtifact extends D4EArtifact {
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
30
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
31 private static final long serialVersionUID = 1L;
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
32
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
33 /** Error message that is thrown if no mode has been chosen. */
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
34 private static final String ERROR_NO_CALCULATION_MODE = "error_feed_no_calculation_mode";
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
35
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
36 /**
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
37 * Error message that is thrown if an invalid calculation mode has been
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
38 * chosen.
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
39 */
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
40 private static final String ERROR_INVALID_CALCULATION_MODE = "error_feed_invalid_calculation_mode";
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
41
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
42 /** The name of the artifact. */
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
43 private static final String ARTIFACT_NAME = "sinfo";
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
44
8869
20b85ea3b524 Fixed some typos
gernotbelger
parents: 8854
diff changeset
45 private static final String FIELD_RIVER = "river";
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
46
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
47 private static final String FIELD_MODE = "calculation_mode";
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
48
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
49 static {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
50 // Active/deactivate facets.
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
51 // BEWARE: we can only define one activity for "sinfo", so we use the artifact as place for this
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
52 FacetActivity.Registry.getInstance().register("sinfo", new FacetActivity() {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
53 @Override
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
54 public Boolean isInitialActive(final Artifact artifact, final Facet facet, final String output) {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
55
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
56 final String name = facet.getName();
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
57
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
58 if ("sinfo_tkk".equals(output)) {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
59 if (FlowDepthProcessor.FACET_FLOW_DEPTH_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
60 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
61 if (VelocityProcessor.FACET_TKH_VELOCITY_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
62 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
63 if (TauProcessor.FACET_TKH_TAU_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
64 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
65 if (D50Processor.FACET_TKH_D50_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
66 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
67 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
68
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
69 if ("sinfo_flow_depth_development".equals(output)) {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
70 if (FlowDepthProcessor.FACET_FLOW_DEPTH_CURRENT_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
71 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
72 if (FlowDepthProcessor.FACET_FLOW_DEPTH_HISTORICAL_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
73 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
74 if (FlowDepthDevelopmentProcessor.FACET_WATERLEVEL_DIFFERENCE_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
75 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
76 if (FlowDepthDevelopmentProcessor.FACET_BEDHEIGHT_DIFFERENCE_FILTERED.equals(name))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
77 return Boolean.FALSE;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
78 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
79
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
80 if (FlowDepthProcessor.FACET_FLOW_DEPTH_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
81 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
82 if (FlowDepthProcessor.FACET_FLOW_DEPTH_TKH_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
83 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
84 if (FlowDepthProcessor.FACET_FLOW_DEPTH_CURRENT_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
85 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
86 if (FlowDepthProcessor.FACET_FLOW_DEPTH_HISTORICAL_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
87 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
88 if (FlowDepthProcessor.FACET_FLOW_DEPTH_MIN_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
89 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
90 if (FlowDepthProcessor.FACET_FLOW_DEPTH_MAX_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
91 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
92
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
93 if (FlowDepthDevelopmentProcessor.FACET_FLOW_DEPTH_DEVELOPMENT_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
94 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
95 if (FlowDepthDevelopmentPerYearProcessor.FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW.equals(name))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
96 return Boolean.FALSE;
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
97
9596
fbfd66e8fb81 Softwaretests...20181219 6.2.2: Sinfo/Ued Haupt-/Extremwerte update for current km, W/Q of selected WSPL initially visible
mschaefer
parents: 9307
diff changeset
98 // if (FloodDurationCurveProcessor.FACET_FLOOD_DURATION_MAINVALUES_W.equals(name))
fbfd66e8fb81 Softwaretests...20181219 6.2.2: Sinfo/Ued Haupt-/Extremwerte update for current km, W/Q of selected WSPL initially visible
mschaefer
parents: 9307
diff changeset
99 // return Boolean.FALSE;
fbfd66e8fb81 Softwaretests...20181219 6.2.2: Sinfo/Ued Haupt-/Extremwerte update for current km, W/Q of selected WSPL initially visible
mschaefer
parents: 9307
diff changeset
100 // if (FloodDurationCurveProcessor.FACET_FLOOD_DURATION_MAINVALUES_Q.equals(name))
fbfd66e8fb81 Softwaretests...20181219 6.2.2: Sinfo/Ued Haupt-/Extremwerte update for current km, W/Q of selected WSPL initially visible
mschaefer
parents: 9307
diff changeset
101 // return Boolean.FALSE;
9307
45bbd2c232f8 S-Info main value themes in flood duration w/q set to initially invisible
mschaefer
parents: 8980
diff changeset
102
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
103 return null;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
104 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
105 });
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
106 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents: 8946
diff changeset
107
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
108 /**
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
109 * Default constructor, because it's serializable.
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
110 */
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
111 public SINFOArtifact() {
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
112 }
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
113
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
114 /**
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
115 * Returns the name of the concrete artifact.
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
116 *
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
117 * @return the name of the concrete artifact.
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
118 */
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
119 @Override
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
120 public String getName() {
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
121 return ARTIFACT_NAME;
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
122 }
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
123
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
124 public SinfoCalcMode getCalculationMode() {
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
125
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
126 final String calc = getDataAsString(FIELD_MODE);
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
127 if (calc == null) {
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
128 throw new IllegalArgumentException(ERROR_NO_CALCULATION_MODE);
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
129 }
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
130
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
131 try {
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
132 return SinfoCalcMode.valueOf(StringUtils.trimToEmpty(calc).toLowerCase());
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
133 }
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
134 catch (final Exception e) {
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
135 throw new IllegalArgumentException(ERROR_INVALID_CALCULATION_MODE, e);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
136 }
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
137 }
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
138
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
139 public String getRiver() {
8946
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
140 return getDataAsString(FIELD_RIVER);
5d5d482da3e9 Implementing SINFO - FlowDepthMinMax calculation
gernotbelger
parents: 8869
diff changeset
141 }
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents:
diff changeset
142 }

http://dive4elements.wald.intevation.org