annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentPerYearProcessor.java @ 8980:b194fa64506a

SINFO - show results themes according to spec, either raw data or floating mean values. Some improvements to error handling and handling of empty results.
author gernotbelger
date Thu, 05 Apr 2018 18:30:34 +0200
parents ee5ce13016ed
children 23945061daec
rev   line source
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
2 * Software engineering by
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
5 *
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
9 */
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
10
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
11 package org.dive4elements.river.artifacts.sinfo.common;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
12
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
13 import java.util.HashSet;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
14 import java.util.Set;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
15
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
16 import org.dive4elements.artifactdatabase.state.Facet;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
17 import org.dive4elements.artifacts.CallContext;
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
18
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
19 public final class FlowDepthDevelopmentPerYearProcessor extends AbstractSInfoLineProcessor<AbstractSInfoCalculationResult> {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
20
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
21 private static final String I18N_AXIS_LABEL = "sinfo.chart.flow_depth_development_per_year.section.yaxis.label";
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
22
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
23 private static final String SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL = "sinfo.chart.flow_depth_development_per_year.yaxis.label";
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
24
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
25 /* Theme name, usually defined in 'FacetTypes', but that is soooo bad dependencies... */
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
26 // REMARK: these must end with 'filtered' so extra handling happens in chart: point are always recalculated, because
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
27 // data
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
28 // changes depending on zoom state
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
29
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
30 public static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED = "sinfo_facet_flow_depth_development_per_year.filtered";
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
31
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
32 private static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.filtered.description";
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
33
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
34 public static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW = "sinfo_facet_flow_depth_development_per_year";
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
35
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
36 private static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.raw.description";
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
37
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
38 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
39
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
40 static {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
41 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED);
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
42 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW);
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
43 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
44
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
45 public FlowDepthDevelopmentPerYearProcessor() {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
46 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
47 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
48
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
49 @Override
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
50 protected double[][] doGetPoints(final AbstractSInfoCalculationResult data, final String facetName) {
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
51
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
52 if (FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED.contentEquals(facetName))
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
53 return data.getStationPoints(SInfoResultType.flowdepthDevelopmentPerYear);
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
54 if (FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW.contentEquals(facetName))
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
55 return data.getStationPoints(SInfoResultType.flowdepthDevelopmentPerYear);
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
56
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
57 final String error = String.format("Unknown facet name: %s", facetName);
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
58 throw new UnsupportedOperationException(error);
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
59 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
60
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
61 public static Facet createFlowDepthDevelopmentFilteredFacet(final CallContext context, final String hash, final String id,
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
62 final AbstractSInfoCalculationResult result, final int index) {
8980
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
63 return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL,
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
64 FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION);
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
65 }
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
66
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
67 public static Facet createFlowDepthDevelopmentRawFacet(final CallContext context, final String hash, final String id,
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
68 final AbstractSInfoCalculationResult result, final int index) {
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
69 return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL,
b194fa64506a SINFO - show results themes according to spec, either raw data or floating mean values.
gernotbelger
parents: 8956
diff changeset
70 FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW_DESCRIPTION);
8956
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
71 }
ee5ce13016ed Work on SINFO-Fließtiefenentwicklung
gernotbelger
parents:
diff changeset
72 }

http://dive4elements.wald.intevation.org