[PATCH] SINFO - show results themes according to spec, either raw data or floating mean values

Wald Commits scm-commit at wald.intevation.org
Thu Apr 5 18:30:40 CEST 2018


# HG changeset patch
# User gernotbelger
# Date 1522945834 -7200
# Node ID b194fa64506ae726e3c694bac5c6be6c53cc8487
# Parent  951a4af24a09ce09cd6f1bea6d33759f41accf19
SINFO - show results themes according to spec, either raw data or floating mean values.
Some improvements to error handling and handling of empty results.

diff -r 951a4af24a09 -r b194fa64506a artifacts/doc/conf/artifacts/sinfo.xml
--- a/artifacts/doc/conf/artifacts/sinfo.xml	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/doc/conf/artifacts/sinfo.xml	Thu Apr 05 18:30:34 2018 +0200
@@ -59,8 +59,11 @@
         <outputmode name="sinfo_flow_depth" description="output.flow_depth" mime-type="image/png" type="chart">
           <facets>
             <!-- REMARK: id's that ends with 'filtered' are handled differently ' -->
-            <facet name="sinfo_facet_flow_depth.filtered" description="Facet for mean flow depth, filtered by current zoom state"/>
-            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="Facet for mean flow depth including tkh, filtered by current zoom state"/>
+            <facet name="sinfo_facet_flow_depth.filtered" description="flow depth, filtered by current zoom state"/>
+            <facet name="sinfo_facet_flow_depth" description="flow depth"/>
+
+            <facet name="sinfo_facet_flow_depth_with_tkh.filtered" description="flow depth including tkh, filtered by current zoom state"/>
+            <facet name="sinfo_facet_flow_depth_with_tkh" description="flow depth including tkh"/>
 
             <facet name="sinfo_facet_tkh" description="Facet for tkh"/>
 
@@ -109,7 +112,9 @@
         <outputmode name="sinfo_flow_depth_minmax" description="output.flow_depth" mime-type="image/png" type="chart">
           <facets>
             <facet name="sinfo_facet_flow_depth_min.filtered" description="min flow depth"/>
+            <facet name="sinfo_facet_flow_depth_min" description="min flow depth"/>
             <facet name="sinfo_facet_flow_depth_max.filtered" description="max flow depth"/>
+            <facet name="sinfo_facet_flow_depth_max" description="max flow depth"/>
 
             <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
           </facets>
@@ -168,11 +173,15 @@
         <outputmode name="sinfo_flow_depth_development" description="output.flow_depth_development" mime-type="image/png" type="chart">
           <facets>
             <facet name="sinfo_facet_flow_depth_development.filtered" description="flow depth development"/>
+            <facet name="sinfo_facet_flow_depth_development" description="flow depth development"/>
+
             <facet name="sinfo_facet_waterlevel_difference.filtered" description="waterlevel difference"/>
             <facet name="sinfo_facet_bedheight_difference.filtered" description="bed Height difference"/>
 
             <facet name="sinfo_facet_flow_depth_current.filtered" description="flow depth current"/>
+            <facet name="sinfo_facet_flow_depth_current" description="flow depth current"/>
             <facet name="sinfo_facet_flow_depth_historical.filtered" description="flow depth historical"/>
+            <facet name="sinfo_facet_flow_depth_historical" description="flow depth historical"/>
 
             <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
           </facets>
@@ -181,6 +190,7 @@
         <outputmode name="sinfo_flow_depth_development_peryear" description="output.flow_depth_development_peryear" mime-type="image/png" type="chart">
           <facets>
             <facet name="sinfo_facet_flow_depth_development_per_year.filtered" description="flow depth development per year"/>
+            <facet name="sinfo_facet_flow_depth_development_per_year" description="flow depth development per year"/>
 
             <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
           </facets>
@@ -246,11 +256,12 @@
 
             <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
 
-            <!-- FIXME: should not be filtered according to spec... -->
             <facet name="sinfo_facet_flow_depth.filtered" description="mean flow depth"/>
-            <facet name="sinfo_facet_velocity.filtered" description="Velocity"/>
-            <facet name="sinfo_facet_d50.filtered" description="D50"/>
-            <facet name="sinfo_facet_tau.filtered" description="Tau"/>
+            <facet name="sinfo_facet_flow_depth" description="mean flow depth"/>
+            
+            <facet name="sinfo_facet_velocity" description="Velocity"/>
+            <facet name="sinfo_facet_d50" description="D50"/>
+            <facet name="sinfo_facet_tau" description="Tau"/>
           </facets>
         </outputmode>
       
diff -r 951a4af24a09 -r b194fa64506a artifacts/doc/conf/meta-data.xml
--- a/artifacts/doc/conf/meta-data.xml	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/doc/conf/meta-data.xml	Thu Apr 05 18:30:34 2018 +0200
@@ -2093,7 +2093,8 @@
         '<BR>Strecke: ' || round(r.a, 1) || '-' || round(r.b, 1) ||
         '<BR>Auswerter: ' || bhs.evaluation_by AS info,
         bhv.height_count AS bedh_height_count,
-        bhv.min_count AS bedh_min_count,
+        bhv.min_count AS
+        bedh_min_count,
         bhv.max_count AS bedh_max_count
         FROM bed_height bhs
         JOIN bed_height_type bht ON bht.id = bhs.type_id
@@ -3231,7 +3232,14 @@
     </dc:macro>
 
     <dc:macro name="sinfo_flowdepths">
-      <dc:filter expr="( $facet_name = 'sinfo_facet_flow_depth.filtered' or $facet_name = 'sinfo_facet_flow_depth_with_tkh.filtered' or $facet_name = 'sinfo_facet_flow_depth_current.filtered' or $facet_name = 'sinfo_facet_flow_depth_historical.filtered' )">
+      <dc:filter expr="( $facet_name = 'sinfo_facet_flow_depth' or 
+                         $facet_name = 'sinfo_facet_flow_depth.filtered' or 
+                         $facet_name = 'sinfo_facet_flow_depth_with_tkh' or 
+                         $facet_name = 'sinfo_facet_flow_depth_with_tkh.filtered' or 
+                         $facet_name = 'sinfo_facet_flow_depth_current' or 
+                         $facet_name = 'sinfo_facet_flow_depth_current.filtered' or 
+                         $facet_name = 'sinfo_facet_flow_depth_historical' or
+                         $facet_name = 'sinfo_facet_flow_depth_historical.filtered' )">
         <dc:if test="dc:has-result()">
           <sinfo_flow_depths>
             <dc:call-macro name="collection-group">
@@ -3254,7 +3262,12 @@
     </dc:macro>
 
     <dc:macro name="sinfo_flowdepths_minmax">
-      <dc:filter expr="( $facet_name = 'sinfo_facet_flow_depth_min.filtered' or $facet_name = 'sinfo_facet_flow_depth_max.filtered' )">
+      <dc:filter expr="( 
+                          $facet_name = 'sinfo_facet_flow_depth_min' or 
+                          $facet_name = 'sinfo_facet_flow_depth_min.filtered' or 
+                          $facet_name = 'sinfo_facet_flow_depth_max' or 
+                          $facet_name = 'sinfo_facet_flow_depth_max.filtered' 
+                          )">
         <dc:if test="dc:has-result()">
           <sinfo_flow_depths_minmax>
             <dc:call-macro name="collection-group">
@@ -3277,7 +3290,10 @@
     </dc:macro>
 
     <dc:macro name="sinfo_flow_depth_development">
-      <dc:filter expr="$facet_name = 'sinfo_facet_flow_depth_development.filtered' or $facet_name = 'sinfo_facet_flow_depth_development_per_year.filtered'">
+      <dc:filter expr="$facet_name = 'sinfo_facet_flow_depth_development' or 
+                       $facet_name = 'sinfo_facet_flow_depth_development.filtered' or
+                       $facet_name = 'sinfo_facet_flow_depth_development_per_year'
+                       $facet_name = 'sinfo_facet_flow_depth_development_per_year.filtered'">
         <dc:if test="dc:has-result()">
           <sinfo_flow_depth_developments>
             <dc:call-macro name="collection-group">
@@ -3369,7 +3385,7 @@
     </dc:macro>
 
     <dc:macro name="sinfo_tkh_velocity">
-      <dc:filter expr="starts-with( $facet_name , 'sinfo_facet_velocity.filtered' )">
+      <dc:filter expr="starts-with( $facet_name , 'sinfo_facet_velocity' )">
         <dc:if test="dc:has-result()">
           <sinfo_velocities>
             <dc:call-macro name="collection-group">
@@ -3392,7 +3408,7 @@
     </dc:macro>
 
     <dc:macro name="sinfo_tkh_d50">
-      <dc:filter expr="starts-with( $facet_name , 'sinfo_facet_d50.filtered' )">
+      <dc:filter expr="starts-with( $facet_name , 'sinfo_facet_d50' )">
         <dc:if test="dc:has-result()">
           <sinfo_bedqualities>
             <sinfo_d50s>
@@ -3417,7 +3433,7 @@
     </dc:macro>
 
     <dc:macro name="sinfo_tkh_tau">
-      <dc:filter expr="starts-with( $facet_name , 'sinfo_facet_tau.filtered' )">
+      <dc:filter expr="starts-with( $facet_name , 'sinfo_facet_tau' )">
         <dc:if test="dc:has-result()">
           <sinfo_taus>
             <dc:call-macro name="collection-group">
diff -r 951a4af24a09 -r b194fa64506a artifacts/doc/conf/themes.xml
--- a/artifacts/doc/conf/themes.xml	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/doc/conf/themes.xml	Thu Apr 05 18:30:34 2018 +0200
@@ -409,24 +409,34 @@
         <mapping from="bedheight_min" to="SInfoBedHeightMin" />
         <mapping from="bedheight_max" to="SInfoBedHeightMax" />
         
+        <mapping from="sinfo_facet_flow_depth" to="SInfoFlowDepth" />
         <mapping from="sinfo_facet_flow_depth.filtered" to="SInfoFlowDepth" />
+        <mapping from="sinfo_facet_flow_depth_with_tkh" to="SInfoFlowDepthWithTkh" />
         <mapping from="sinfo_facet_flow_depth_with_tkh.filtered" to="SInfoFlowDepthWithTkh" />
+        <mapping from="sinfo_facet_flow_depth_min" to="SInfoFlowDepthMin" />
         <mapping from="sinfo_facet_flow_depth_min.filtered" to="SInfoFlowDepthMin" />
+        <mapping from="sinfo_facet_flow_depth_max" to="SInfoFlowDepthMax" />
         <mapping from="sinfo_facet_flow_depth_max.filtered" to="SInfoFlowDepthMax" />
 
+        <mapping from="sinfo_facet_flow_depth_current" to="SInfoFlowDepthCurrent" />
         <mapping from="sinfo_facet_flow_depth_current.filtered" to="SInfoFlowDepthCurrent" />
+        <mapping from="sinfo_facet_flow_depth_historical" to="SInfoFlowDepthHistorical" />
         <mapping from="sinfo_facet_flow_depth_historical.filtered" to="SInfoFlowDepthHistorical" />
 
         <mapping from="sinfo_facet_tkh" to="SInfoTkh" />
 
-        <mapping from="sinfo_facet_d50.filtered" to="BedDiameterTopLines" />
-        <mapping from="sinfo_facet_tau.filtered" to="FlowVelocityTau" />
-        <mapping from="sinfo_facet_velocity.filtered" to="FlowVelocityVMainChannel" />
+        <mapping from="sinfo_facet_d50" to="BedDiameterTopLines" />
+        <mapping from="sinfo_facet_tau" to="FlowVelocityTau" />
+        <mapping from="sinfo_facet_velocity" to="FlowVelocityVMainChannel" />
 
+        <mapping from="sinfo_facet_flow_depth_current" to="FlowVelocityVMainChannel" />
         <mapping from="sinfo_facet_flow_depth_current.filtered" to="FlowVelocityVMainChannel" />
+        <mapping from="sinfo_facet_flow_depth_historical" to="FlowVelocityVMainChannel" />
         <mapping from="sinfo_facet_flow_depth_historical.filtered" to="FlowVelocityVMainChannel" />
 
+        <mapping from="sinfo_facet_flow_depth_development" to="SInfoFlowDepthDevelopment" />
         <mapping from="sinfo_facet_flow_depth_development.filtered" to="SInfoFlowDepthDevelopment" />
+        <mapping from="sinfo_facet_flow_depth_development_per_year" to="SInfoFlowDepthDevelopmentPerYear" />
         <mapping from="sinfo_facet_flow_depth_development_per_year.filtered" to="SInfoFlowDepthDevelopmentPerYear" />
         <mapping from="sinfo_facet_waterlevel_difference.filtered" to="SInfoWaterlevelDifference" />
         <mapping from="sinfo_facet_bedheight_difference.filtered" to="SInfoBedHeightDifference" />
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/SINFOArtifact.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/SINFOArtifact.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/SINFOArtifact.java	Thu Apr 05 18:30:34 2018 +0200
@@ -15,6 +15,7 @@
 import org.dive4elements.artifacts.Artifact;
 import org.dive4elements.river.artifacts.D4EArtifact;
 import org.dive4elements.river.artifacts.sinfo.common.D50Processor;
+import org.dive4elements.river.artifacts.sinfo.common.FlowDepthDevelopmentPerYearProcessor;
 import org.dive4elements.river.artifacts.sinfo.common.FlowDepthDevelopmentProcessor;
 import org.dive4elements.river.artifacts.sinfo.common.FlowDepthProcessor;
 import org.dive4elements.river.artifacts.sinfo.common.TauProcessor;
@@ -52,8 +53,9 @@
             @Override
             public Boolean isInitialActive(final Artifact artifact, final Facet facet, final String output) {
 
+                final String name = facet.getName();
+
                 if ("sinfo_tkk".equals(output)) {
-                    final String name = facet.getName();
                     if (FlowDepthProcessor.FACET_FLOW_DEPTH_FILTERED.equals(name))
                         return Boolean.FALSE;
                     if (VelocityProcessor.FACET_TKH_VELOCITY_FILTERED.equals(name))
@@ -65,7 +67,6 @@
                 }
 
                 if ("sinfo_flow_depth_development".equals(output)) {
-                    final String name = facet.getName();
                     if (FlowDepthProcessor.FACET_FLOW_DEPTH_CURRENT_FILTERED.equals(name))
                         return Boolean.FALSE;
                     if (FlowDepthProcessor.FACET_FLOW_DEPTH_HISTORICAL_FILTERED.equals(name))
@@ -76,6 +77,24 @@
                         return Boolean.FALSE;
                 }
 
+                if (FlowDepthProcessor.FACET_FLOW_DEPTH_RAW.equals(name))
+                    return Boolean.FALSE;
+                if (FlowDepthProcessor.FACET_FLOW_DEPTH_TKH_RAW.equals(name))
+                    return Boolean.FALSE;
+                if (FlowDepthProcessor.FACET_FLOW_DEPTH_CURRENT_RAW.equals(name))
+                    return Boolean.FALSE;
+                if (FlowDepthProcessor.FACET_FLOW_DEPTH_HISTORICAL_RAW.equals(name))
+                    return Boolean.FALSE;
+                if (FlowDepthProcessor.FACET_FLOW_DEPTH_MIN_RAW.equals(name))
+                    return Boolean.FALSE;
+                if (FlowDepthProcessor.FACET_FLOW_DEPTH_MAX_RAW.equals(name))
+                    return Boolean.FALSE;
+
+                if (FlowDepthDevelopmentProcessor.FACET_FLOW_DEPTH_DEVELOPMENT_RAW.equals(name))
+                    return Boolean.FALSE;
+                if (FlowDepthDevelopmentPerYearProcessor.FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW.equals(name))
+                    return Boolean.FALSE;
+
                 return null;
             }
         });
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResult.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResult.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResult.java	Thu Apr 05 18:30:34 2018 +0200
@@ -46,6 +46,10 @@
         return this.wst;
     }
 
+    public boolean isEmpty() {
+        return this.rows.isEmpty();
+    }
+
     public final void addRow(final SInfoResultRow resultRow) {
         this.rows.add(resultRow);
     }
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResults.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResults.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoCalculationResults.java	Thu Apr 05 18:30:34 2018 +0200
@@ -15,6 +15,7 @@
 import java.util.List;
 
 import org.apache.commons.lang.math.DoubleRange;
+import org.dive4elements.river.artifacts.model.Calculation;
 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
 
 /**
@@ -57,7 +58,16 @@
         return this.calcRange;
     }
 
-    public final void addResult(final RESULT result) {
+    public final void addResult(final RESULT result, final Calculation problems) {
+        /* we assume error reporting was already done in this case */
+        if (result == null)
+            return;
+
+        if (result.isEmpty()) {
+            problems.addProblem("abstractsinfocalculationresults.emptyResult", result.getLabel());
+            return;
+        }
+
         this.results.add(result);
     }
 
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/D50Processor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/D50Processor.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/D50Processor.java	Thu Apr 05 18:30:34 2018 +0200
@@ -18,14 +18,13 @@
 
 public final class D50Processor extends AbstractSInfoLineProcessor<AbstractTkhCalculationResult> {
 
-    // FIXME: check: filtered or not?
-    public static final String FACET_TKH_D50_FILTERED = "sinfo_facet_d50.filtered";
+    public static final String FACET_TKH_D50_FILTERED = "sinfo_facet_d50";
 
     private static final String I18N_AXIS_LABEL = "sinfo.chart.tkh_d50.section.yaxis.label";
 
     private static final String SINFO_CHART_D50_YAXIS_LABEL = "sinfo.chart.tkh_d50.yaxis.label";
 
-    private static final String I18N_FACET_TKH_D50_FILTERED_DESCRIPTION = "sinfo.facet.tkh_d50.filtered.description";
+    private static final String I18N_FACET_TKH_D50_FILTERED_DESCRIPTION = "sinfo.facet.tkh_d50.description";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
 
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentPerYearProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentPerYearProcessor.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentPerYearProcessor.java	Thu Apr 05 18:30:34 2018 +0200
@@ -15,8 +15,6 @@
 
 import org.dive4elements.artifactdatabase.state.Facet;
 import org.dive4elements.artifacts.CallContext;
-import org.dive4elements.river.artifacts.resources.Resources;
-import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
 
 public final class FlowDepthDevelopmentPerYearProcessor extends AbstractSInfoLineProcessor<AbstractSInfoCalculationResult> {
 
@@ -25,16 +23,23 @@
     private static final String SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL = "sinfo.chart.flow_depth_development_per_year.yaxis.label";
 
     /* Theme name, usually defined in 'FacetTypes', but that is soooo bad dependencies... */
-    // REMARK: these mustend with 'filtered' so extra handling happens in chart: point are always recalculated, because data
+    // REMARK: these must end with 'filtered' so extra handling happens in chart: point are always recalculated, because
+    // data
     // changes depending on zoom state
+
     public static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED = "sinfo_facet_flow_depth_development_per_year.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.filtered.description";
+    private static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.filtered.description";
+
+    public static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW = "sinfo_facet_flow_depth_development_per_year";
+
+    private static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.raw.description";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
 
     static {
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW);
     }
 
     public FlowDepthDevelopmentPerYearProcessor() {
@@ -46,16 +51,22 @@
 
         if (FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepthDevelopmentPerYear);
+        if (FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepthDevelopmentPerYear);
 
         final String error = String.format("Unknown facet name: %s", facetName);
         throw new UnsupportedOperationException(error);
     }
 
-    public static Facet createFlowDepthDevelopmentFacet(final CallContext context, final String hash, final String id,
+    public static Facet createFlowDepthDevelopmentFilteredFacet(final CallContext context, final String hash, final String id,
             final AbstractSInfoCalculationResult result, final int index) {
-        final String facetFlowDepthFilteredDescription = Resources.getMsg(context.getMeta(), I18N_FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION,
-                I18N_FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION, result.getLabel());
-        return new SInfoResultFacet(index, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED, facetFlowDepthFilteredDescription,
-                SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL, ComputeType.ADVANCE, id, hash);
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL,
+                FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthDevelopmentRawFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL,
+                FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW_DESCRIPTION);
     }
 }
\ No newline at end of file
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentProcessor.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentProcessor.java	Thu Apr 05 18:30:34 2018 +0200
@@ -25,24 +25,29 @@
     private static final String SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_YAXIS_LABEL = "sinfo.chart.flow_depth.yaxis.label";
 
     /* Theme name, usually defined in 'FacetTypes', but that is soooo bad dependencies... */
-    // REMARK: these mustend with 'filtered' so extra handling happens in chart: point are always recalculated, because data
-    // changes depending on zoom state
+    // REMARK: these must end with 'filtered' so extra handling happens in chart: point are always recalculated, because
+    // data changes depending on zoom state
     public static final String FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED = "sinfo_facet_flow_depth_development.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_development.filtered.description";
+    private static final String FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_development.filtered.description";
+
+    public static final String FACET_FLOW_DEPTH_DEVELOPMENT_RAW = "sinfo_facet_flow_depth_development";
+
+    private static final String FACET_FLOW_DEPTH_DEVELOPMENT_RAW_DESCRIPTION = "sinfo.facet.flow_depth_development.raw.description";
 
     public static final String FACET_WATERLEVEL_DIFFERENCE_FILTERED = "sinfo_facet_waterlevel_difference.filtered";
 
-    private static final String I18N_FACET_WATERLEVEL_DIFFERENCE_FILTERED_DESCRIPTION = "sinfo.facet.waterlevel_difference.filtered.description";
+    private static final String FACET_WATERLEVEL_DIFFERENCE_FILTERED_DESCRIPTION = "sinfo.facet.waterlevel_difference.filtered.description";
 
     public static final String FACET_BEDHEIGHT_DIFFERENCE_FILTERED = "sinfo_facet_bedheight_difference.filtered";
 
-    private static final String I18N_FACET_BEDHEIGHT_DIFFERENCE_FILTERED_DESCRIPTION = "sinfo.facet.bedheight_difference.filtered.description";
+    private static final String FACET_BEDHEIGHT_DIFFERENCE_FILTERED_DESCRIPTION = "sinfo.facet.bedheight_difference.filtered.description";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
 
     static {
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_RAW);
         HANDLED_FACET_TYPES.add(FACET_WATERLEVEL_DIFFERENCE_FILTERED);
         HANDLED_FACET_TYPES.add(FACET_BEDHEIGHT_DIFFERENCE_FILTERED);
     }
@@ -56,6 +61,8 @@
 
         if (FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepthDevelopment);
+        if (FACET_FLOW_DEPTH_DEVELOPMENT_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepthDevelopment);
 
         if (FACET_WATERLEVEL_DIFFERENCE_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.waterlevelDifference);
@@ -67,18 +74,22 @@
         throw new UnsupportedOperationException(error);
     }
 
-    public static Facet createFlowDepthDevelopmentFacet(final CallContext context, final String hash, final String id,
+    public static Facet createFlowDepthDevelopmentFilteredFacet(final CallContext context, final String hash, final String id,
             final AbstractSInfoCalculationResult result, final int index) {
-        final String facetFlowDepthFilteredDescription = Resources.getMsg(context.getMeta(), I18N_FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED_DESCRIPTION,
-                I18N_FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED_DESCRIPTION, result.getLabel());
-        return new SInfoResultFacet(index, FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED, facetFlowDepthFilteredDescription,
-                SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_YAXIS_LABEL, ComputeType.ADVANCE, id, hash);
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_YAXIS_LABEL,
+                FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED, FACET_FLOW_DEPTH_DEVELOPMENT_FILTERED_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthDevelopmentRawFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_YAXIS_LABEL,
+                FACET_FLOW_DEPTH_DEVELOPMENT_RAW, FACET_FLOW_DEPTH_DEVELOPMENT_RAW_DESCRIPTION);
     }
 
     public static Facet createWaterlevelDifferenceFacet(final CallContext context, final String hash, final String id,
             final AbstractSInfoCalculationResult result, final int index) {
-        final String facetFlowDepthTkhFilteredDescription = Resources.getMsg(context.getMeta(), I18N_FACET_WATERLEVEL_DIFFERENCE_FILTERED_DESCRIPTION,
-                I18N_FACET_WATERLEVEL_DIFFERENCE_FILTERED_DESCRIPTION, result.getLabel());
+        final String facetFlowDepthTkhFilteredDescription = Resources.getMsg(context.getMeta(), FACET_WATERLEVEL_DIFFERENCE_FILTERED_DESCRIPTION,
+                FACET_WATERLEVEL_DIFFERENCE_FILTERED_DESCRIPTION, result.getLabel());
         return new SInfoResultFacet(index, FACET_WATERLEVEL_DIFFERENCE_FILTERED, facetFlowDepthTkhFilteredDescription,
                 SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_YAXIS_LABEL, ComputeType.ADVANCE, id, hash);
     }
@@ -86,8 +97,8 @@
     public static Facet createBedHeightDifferenceFacet(final CallContext context, final String hash, final String id,
             final AbstractSInfoCalculationResult result, final int index) {
 
-        final String facetFlowDepthFilteredDescription = Resources.getMsg(context.getMeta(), I18N_FACET_BEDHEIGHT_DIFFERENCE_FILTERED_DESCRIPTION,
-                I18N_FACET_BEDHEIGHT_DIFFERENCE_FILTERED_DESCRIPTION, result.getLabel());
+        final String facetFlowDepthFilteredDescription = Resources.getMsg(context.getMeta(), FACET_BEDHEIGHT_DIFFERENCE_FILTERED_DESCRIPTION,
+                FACET_BEDHEIGHT_DIFFERENCE_FILTERED_DESCRIPTION, result.getLabel());
         return new SInfoResultFacet(index, FACET_BEDHEIGHT_DIFFERENCE_FILTERED, facetFlowDepthFilteredDescription,
                 SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_YAXIS_LABEL, ComputeType.ADVANCE, id, hash);
     }
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthProcessor.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthProcessor.java	Thu Apr 05 18:30:34 2018 +0200
@@ -18,50 +18,87 @@
 
 public final class FlowDepthProcessor extends AbstractSInfoLineProcessor<AbstractSInfoCalculationResult> {
 
-    private static final String I18N_AXIS_LABEL = "sinfo.chart.flow_depth.section.yaxis.label";
+    private static final String AXIS_LABEL = "sinfo.chart.flow_depth.section.yaxis.label";
 
     private static final String SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL = "sinfo.chart.flow_depth.yaxis.label";
 
     /* Theme name, usually defined in 'FacetTypes', but that is soooo bad dependencies... */
     // REMARK: these mustend with 'filtered' so extra handling happens in chart: point are always recalculated, because data
     // changes depending on zoom state
+
+    /* flow depth */
     public static final String FACET_FLOW_DEPTH_FILTERED = "sinfo_facet_flow_depth.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth.filtered.description";
+    private static final String FACET_FLOW_DEPTH_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth.filtered.description";
 
+    public static final String FACET_FLOW_DEPTH_RAW = "sinfo_facet_flow_depth";
+
+    private static final String FACET_FLOW_DEPTH_RAW_DESCRIPTION = "sinfo.facet.flow_depth.raw.description";
+
+    /* flow depth with tkh */
     private static final String FACET_FLOW_DEPTH_TKH_FILTERED = "sinfo_facet_flow_depth_with_tkh.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_TKH_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_with_tkh.filtered.description";
+    private static final String FACET_FLOW_DEPTH_TKH_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_with_tkh.filtered.description";
 
+    public static final String FACET_FLOW_DEPTH_TKH_RAW = "sinfo_facet_flow_depth_with_tkh";
+
+    private static final String FACET_FLOW_DEPTH_TKH_RAW_DESCRIPTION = "sinfo.facet.flow_depth_with_tkh.raw.description";
+
+    /* minimal flow depth */
     public static final String FACET_FLOW_DEPTH_MIN_FILTERED = "sinfo_facet_flow_depth_min.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_MIN_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_min.filtered.description";
+    private static final String FACET_FLOW_DEPTH_MIN_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_min.filtered.description";
 
+    public static final String FACET_FLOW_DEPTH_MIN_RAW = "sinfo_facet_flow_depth_min";
+
+    private static final String FACET_FLOW_DEPTH_MIN_RAW_DESCRIPTION = "sinfo.facet.flow_depth_min.raw.description";
+
+    /* maximal flow depth */
     public static final String FACET_FLOW_DEPTH_MAX_FILTERED = "sinfo_facet_flow_depth_max.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_MAX_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_max.filtered.description";
+    private static final String FACET_FLOW_DEPTH_MAX_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_max.filtered.description";
 
+    public static final String FACET_FLOW_DEPTH_MAX_RAW = "sinfo_facet_flow_depth_max";
+
+    private static final String FACET_FLOW_DEPTH_MAX_RAW_DESCRIPTION = "sinfo.facet.flow_depth_max.raw.description";
+
+    /* current flow depth */
     public static final String FACET_FLOW_DEPTH_CURRENT_FILTERED = "sinfo_facet_flow_depth_current.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_CURRENT_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_current.filtered.description";
+    private static final String FACET_FLOW_DEPTH_CURRENT_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_current.filtered.description";
 
+    public static final String FACET_FLOW_DEPTH_CURRENT_RAW = "sinfo_facet_flow_depth_current";
+
+    private static final String FACET_FLOW_DEPTH_CURRENT_RAW_DESCRIPTION = "sinfo.facet.flow_depth_current.raw.description";
+
+    /* historical flow depth */
     public static final String FACET_FLOW_DEPTH_HISTORICAL_FILTERED = "sinfo_facet_flow_depth_historical.filtered";
 
-    private static final String I18N_FACET_FLOW_DEPTH_HISTORICAL_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_historical.filtered.description";
+    private static final String FACET_FLOW_DEPTH_HISTORICAL_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_historical.filtered.description";
+
+    public static final String FACET_FLOW_DEPTH_HISTORICAL_RAW = "sinfo_facet_flow_depth_historical";
+
+    private static final String FACET_FLOW_DEPTH_HISTORICAL_RAW_DESCRIPTION = "sinfo.facet.flow_depth_historical.raw.description";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
 
     static {
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_RAW);
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_TKH_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_TKH_RAW);
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_MIN_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_MIN_RAW);
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_MAX_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_MAX_RAW);
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_CURRENT_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_CURRENT_RAW);
         HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_HISTORICAL_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_HISTORICAL_RAW);
     }
 
     public FlowDepthProcessor() {
-        super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
+        super(AXIS_LABEL, HANDLED_FACET_TYPES);
     }
 
     @Override
@@ -69,59 +106,107 @@
 
         if (FACET_FLOW_DEPTH_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepth);
+        if (FACET_FLOW_DEPTH_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepth);
 
         if (FACET_FLOW_DEPTH_TKH_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepthtkh);
+        if (FACET_FLOW_DEPTH_TKH_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepthtkh);
 
         if (FACET_FLOW_DEPTH_MIN_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepthmin);
+        if (FACET_FLOW_DEPTH_MIN_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepthmin);
 
         if (FACET_FLOW_DEPTH_MAX_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepthmax);
+        if (FACET_FLOW_DEPTH_MAX_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepthmax);
 
         if (FACET_FLOW_DEPTH_CURRENT_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepthCurrent);
+        if (FACET_FLOW_DEPTH_CURRENT_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepthCurrent);
 
         if (FACET_FLOW_DEPTH_HISTORICAL_FILTERED.contentEquals(facetName))
             return data.getStationPoints(SInfoResultType.flowdepthHistorical);
+        if (FACET_FLOW_DEPTH_HISTORICAL_RAW.contentEquals(facetName))
+            return data.getStationPoints(SInfoResultType.flowdepthHistorical);
 
         final String error = String.format("Unknown facet name: %s", facetName);
         throw new UnsupportedOperationException(error);
     }
 
-    public static Facet createFlowDepthFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
+    public static Facet createFlowDepthFilteredFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
             final int index) {
         return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_FILTERED,
-                I18N_FACET_FLOW_DEPTH_FILTERED_DESCRIPTION);
+                FACET_FLOW_DEPTH_FILTERED_DESCRIPTION);
     }
 
-    public static Facet createFlowDepthTkhFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
+    public static Facet createFlowDepthRawFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
             final int index) {
-        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_TKH_FILTERED,
-                I18N_FACET_FLOW_DEPTH_TKH_FILTERED_DESCRIPTION);
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_RAW,
+                FACET_FLOW_DEPTH_RAW_DESCRIPTION);
     }
 
-    public static Facet createFlowDepthMinFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
-            final int index) {
-        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_MIN_FILTERED,
-                I18N_FACET_FLOW_DEPTH_MIN_FILTERED_DESCRIPTION);
+    public static Facet createFlowDepthTkhFilteredFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_TKH_FILTERED,
+                FACET_FLOW_DEPTH_TKH_FILTERED_DESCRIPTION);
     }
 
-    public static Facet createFlowDepthMaxFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
+    public static Facet createFlowDepthTkhRawFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
             final int index) {
-        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_MAX_FILTERED,
-                I18N_FACET_FLOW_DEPTH_MAX_FILTERED_DESCRIPTION);
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_TKH_RAW,
+                FACET_FLOW_DEPTH_TKH_RAW_DESCRIPTION);
     }
 
-    public static Facet createFlowDepthCurrentFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
-            final int index) {
-        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_CURRENT_FILTERED,
-                I18N_FACET_FLOW_DEPTH_CURRENT_FILTERED_DESCRIPTION);
+    public static Facet createFlowDepthMinFilteredFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_MIN_FILTERED,
+                FACET_FLOW_DEPTH_MIN_FILTERED_DESCRIPTION);
     }
 
-    public static Facet createFlowDepthHistoricalFacet(final CallContext context, final String hash, final String id,
+    public static Facet createFlowDepthMinRawFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
+            final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_MIN_RAW,
+                FACET_FLOW_DEPTH_MIN_RAW_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthMaxFilteredFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_MAX_FILTERED,
+                FACET_FLOW_DEPTH_MAX_FILTERED_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthMaxRawFacet(final CallContext context, final String hash, final String id, final AbstractSInfoCalculationResult result,
+            final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_MAX_RAW,
+                FACET_FLOW_DEPTH_MAX_RAW_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthCurrentFilteredFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_CURRENT_FILTERED,
+                FACET_FLOW_DEPTH_CURRENT_FILTERED_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthCurrentRawFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_CURRENT_RAW,
+                FACET_FLOW_DEPTH_CURRENT_RAW_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthHistoricalFilteredFacet(final CallContext context, final String hash, final String id,
             final AbstractSInfoCalculationResult result, final int index) {
         return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL,
-                FACET_FLOW_DEPTH_HISTORICAL_FILTERED, I18N_FACET_FLOW_DEPTH_HISTORICAL_FILTERED_DESCRIPTION);
+                FACET_FLOW_DEPTH_HISTORICAL_FILTERED, FACET_FLOW_DEPTH_HISTORICAL_FILTERED_DESCRIPTION);
+    }
+
+    public static Facet createFlowDepthHistoricalRawFacet(final CallContext context, final String hash, final String id,
+            final AbstractSInfoCalculationResult result, final int index) {
+        return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_YAXIS_LABEL, FACET_FLOW_DEPTH_HISTORICAL_RAW,
+                FACET_FLOW_DEPTH_HISTORICAL_RAW_DESCRIPTION);
     }
 }
\ No newline at end of file
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/TauProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/TauProcessor.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/TauProcessor.java	Thu Apr 05 18:30:34 2018 +0200
@@ -18,14 +18,13 @@
 
 public final class TauProcessor extends AbstractSInfoLineProcessor<AbstractTkhCalculationResult> {
 
-    // FIXME: check: filtered or not?
-    public static final String FACET_TKH_TAU_FILTERED = "sinfo_facet_tau.filtered";
+    public static final String FACET_TKH_TAU_FILTERED = "sinfo_facet_tau";
 
     private static final String I18N_AXIS_LABEL = "sinfo.chart.tkh_tau.section.yaxis.label";
 
     private static final String SINFO_CHART_TAU_YAXIS_LABEL = "sinfo.chart.tkh_tau.yaxis.label";
 
-    private static final String I18N_FACET_TKH_TAU_FILTERED_DESCRIPTION = "sinfo.facet.tkh_tau.filtered.description";
+    private static final String I18N_FACET_TKH_TAU_FILTERED_DESCRIPTION = "sinfo.facet.tkh_tau.description";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
 
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/VelocityProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/VelocityProcessor.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/VelocityProcessor.java	Thu Apr 05 18:30:34 2018 +0200
@@ -18,14 +18,13 @@
 
 public final class VelocityProcessor extends AbstractSInfoLineProcessor<AbstractTkhCalculationResult> {
 
-    // FIXME: check: filtered or not?
-    public static final String FACET_TKH_VELOCITY_FILTERED = "sinfo_facet_velocity.filtered";
+    public static final String FACET_TKH_VELOCITY_FILTERED = "sinfo_facet_velocity";
 
     private static final String I18N_AXIS_LABEL = "sinfo.chart.tkh_velocity.section.yaxis.label";
 
     private static final String SINFO_CHART_VELOCITY_YAXIS_LABEL = "sinfo.chart.tkh_velocity.yaxis.label";
 
-    private static final String I18N_FACET_TKH_VELOCITY_FILTERED_DESCRIPTION = "sinfo.facet.tkh_velocity.filtered.description";
+    private static final String I18N_FACET_TKH_VELOCITY_FILTERED_DESCRIPTION = "sinfo.facet.tkh_velocity.description";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
 
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java	Thu Apr 05 18:30:34 2018 +0200
@@ -66,8 +66,7 @@
 
         for (final WstSoundingIdPair diffPair : diffPairs) {
             final FlowDepthCalculationResult result = calculateResult(calcRange, diffPair, problems, infoProvider, useTkh);
-            if (result != null)
-                results.addResult(result);
+            results.addResult(result, problems);
         }
 
         return new CalculationResult(results, problems);
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthState.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthState.java	Thu Apr 05 18:30:34 2018 +0200
@@ -83,11 +83,13 @@
             final FlowDepthCalculationResult result = resultList.get(index);
 
             /* filtered (zoom dependent mean) flow depth */
-            facets.add(FlowDepthProcessor.createFlowDepthFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthFilteredFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthRawFacet(context, hash, this.id, result, index));
 
             if (results.isUseTkh()) {
                 /* filtered (zoom dependent mean) flow depth including tkh */
-                facets.add(FlowDepthProcessor.createFlowDepthTkhFacet(context, hash, this.id, result, index));
+                facets.add(FlowDepthProcessor.createFlowDepthTkhFilteredFacet(context, hash, this.id, result, index));
+                facets.add(FlowDepthProcessor.createFlowDepthTkhRawFacet(context, hash, this.id, result, index));
 
                 facets.add(TkhProcessor.createTkhFacet(context, hash, this.id, result, index));
             }
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthUtils.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthUtils.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthUtils.java	Thu Apr 05 18:30:34 2018 +0200
@@ -37,9 +37,8 @@
         final int maxDifference = getMaxDifferenceYears(soundingYear);
 
         final int difference = Math.abs(soundingYear - wstYear);
-        if (difference > maxDifference) {
-            problems.addProblem("sinfo_calc_flow_depth.warning.year_difference", label, wstYear, soundingYear);
-        }
+        if (difference > maxDifference)
+            problems.addProblem("sinfo_calc_flow_depth.warning.year_difference", label, Integer.toString(wstYear), Integer.toString(soundingYear));
     }
 
     public static int getMaxDifferenceYears(final int year) {
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentCalculation.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentCalculation.java	Thu Apr 05 18:30:34 2018 +0200
@@ -70,8 +70,7 @@
         final FlowDepthDevelopmentCalculationResults results = new FlowDepthDevelopmentCalculationResults(calcModeLabel, user, riverInfo, calcRange);
 
         final FlowDepthDevelopmentCalculationResult result = calculateResult(calcRange, currentPair, histPair, problems, infoProvider);
-        if (result != null)
-            results.addResult(result);
+        results.addResult(result, problems);
 
         return new CalculationResult(results, problems);
     }
@@ -118,8 +117,11 @@
         }
 
         // FIXME: distinguish error messages
-        FlowDepthUtils.checkYearDifference("", currentWstYear, currentSoundingYear, problems);
-        FlowDepthUtils.checkYearDifference("", historicalWstYear, historicalSoundingYear, problems);
+        FlowDepthUtils.checkYearDifference(Resources.getMsg(this.context.getMeta(), "flowdepthdevelopmentcalculation.yearDifferenceCurrent"), currentWstYear,
+                currentSoundingYear, problems);
+        FlowDepthUtils.checkYearDifference(Resources.getMsg(this.context.getMeta(), "flowdepthdevelopmentcalculation.yearDifferenceHistorical"),
+                historicalWstYear,
+                historicalSoundingYear, problems);
 
         /* re-determine the reference gauge, in the same way as the WaterlevelArtifact would do it */
         final RiverInfoProvider currentRiverInfoProvider = infoProvider.forWaterlevel(currentWaterlevel);
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentState.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentState.java	Thu Apr 05 18:30:34 2018 +0200
@@ -77,24 +77,28 @@
 
         final FlowDepthDevelopmentCalculationResults results = (FlowDepthDevelopmentCalculationResults) res.getData();
         final FlowDepthDevelopmentCalculationResult result = results.getResult();
-        if (result == null)
-            return res;
+        if (result != null) {
+            /* add themes for chart, for each result */
+            final int index = 0;
 
-        /* add themes for chart, for each result */
-        final int index = 0;
+            // /* filtered (zoom dependent mean) flow depth development */
+            facets.add(FlowDepthDevelopmentProcessor.createFlowDepthDevelopmentFilteredFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthDevelopmentProcessor.createFlowDepthDevelopmentRawFacet(context, hash, this.id, result, index));
 
-        // /* filtered (zoom dependent mean) flow depth development */
-        facets.add(FlowDepthDevelopmentProcessor.createFlowDepthDevelopmentFacet(context, hash, this.id, result, index));
-        facets.add(FlowDepthDevelopmentProcessor.createWaterlevelDifferenceFacet(context, hash, this.id, result, index));
-        facets.add(FlowDepthDevelopmentProcessor.createBedHeightDifferenceFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthDevelopmentProcessor.createWaterlevelDifferenceFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthDevelopmentProcessor.createBedHeightDifferenceFacet(context, hash, this.id, result, index));
 
-        facets.add(FlowDepthDevelopmentPerYearProcessor.createFlowDepthDevelopmentFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthDevelopmentPerYearProcessor.createFlowDepthDevelopmentFilteredFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthDevelopmentPerYearProcessor.createFlowDepthDevelopmentRawFacet(context, hash, this.id, result, index));
 
-        facets.add(FlowDepthProcessor.createFlowDepthCurrentFacet(context, hash, this.id, result, index));
-        facets.add(FlowDepthProcessor.createFlowDepthHistoricalFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthCurrentFilteredFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthCurrentRawFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthHistoricalFilteredFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthHistoricalRawFacet(context, hash, this.id, result, index));
 
-        facets.add(new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id));
-        facets.add(new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id));
+            facets.add(new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id));
+            facets.add(new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id));
+        }
 
         final Calculation report = res.getReport();
         if (report.hasProblems())
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxCalculation.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxCalculation.java	Thu Apr 05 18:30:34 2018 +0200
@@ -70,8 +70,7 @@
 
         for (final MinMaxIdPair minMaxPair : minMaxPairs) {
             final FlowDepthMinMaxCalculationResult result = calculateResult(calcRange, minMaxPair, problems, infoProvider);
-            if (result != null)
-                results.addResult(result);
+            results.addResult(result, problems);
         }
 
         return new CalculationResult(results, problems);
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxState.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthminmax/FlowDepthMinMaxState.java	Thu Apr 05 18:30:34 2018 +0200
@@ -82,11 +82,15 @@
             final FlowDepthMinMaxCalculationResult result = resultList.get(index);
 
             /* filtered (zoom dependent mean) flow depth */
-            if (result.hasMin())
-                facets.add(FlowDepthProcessor.createFlowDepthMinFacet(context, hash, this.id, result, index));
+            if (result.hasMin()) {
+                facets.add(FlowDepthProcessor.createFlowDepthMinFilteredFacet(context, hash, this.id, result, index));
+                facets.add(FlowDepthProcessor.createFlowDepthMinRawFacet(context, hash, this.id, result, index));
+            }
 
-            if (result.hasMax())
-                facets.add(FlowDepthProcessor.createFlowDepthMaxFacet(context, hash, this.id, result, index));
+            if (result.hasMax()) {
+                facets.add(FlowDepthProcessor.createFlowDepthMaxFilteredFacet(context, hash, this.id, result, index));
+                facets.add(FlowDepthProcessor.createFlowDepthMaxRawFacet(context, hash, this.id, result, index));
+            }
         }
 
         if (!resultList.isEmpty()) {
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/SoilKindKmValueFinder.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/SoilKindKmValueFinder.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/SoilKindKmValueFinder.java	Thu Apr 05 18:30:34 2018 +0200
@@ -86,14 +86,11 @@
             return this.kmMobility.get(Double.valueOf(km));
 
         final Entry<Double, SoilKind> streamUp = this.kmMobility.floorEntry(Double.valueOf(km));
-        if (streamUp == null)
-        {
+        if (streamUp == null) {
             reportProblem(km);
             return null;
         }
 
-        // FIXME: Assert minimum distance between neighbouring stations and candidate km?
-
         // Return the soil kind of the neighbouring station with the shorter distance to the candidate.
         final Entry<Double, SoilKind> streamDown = this.kmMobility.ceilingEntry(Double.valueOf(km));
         if (streamDown == null)
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculation.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculation.java	Thu Apr 05 18:30:34 2018 +0200
@@ -91,8 +91,7 @@
 
         for (final WQKms wqKms : kms) {
             final TkhCalculationResult result = calculateResult(calcRange, allStations, infoProvider, wqKms, bedHeights, descBuilder, problems);
-            if (result != null)
-                results.addResult(result);
+            results.addResult(result, problems);
         }
 
         return new CalculationResult(results, problems);
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhState.java	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhState.java	Thu Apr 05 18:30:34 2018 +0200
@@ -87,7 +87,9 @@
 
             facets.add(TkhProcessor.createTkhFacet(context, hash, this.id, result, index));
 
-            facets.add(FlowDepthProcessor.createFlowDepthFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthFilteredFacet(context, hash, this.id, result, index));
+            facets.add(FlowDepthProcessor.createFlowDepthRawFacet(context, hash, this.id, result, index));
+
             facets.add(VelocityProcessor.createVelocityFacet(context, hash, this.id, result, index));
             facets.add(D50Processor.createD50Facet(context, hash, this.id, result, index));
             facets.add(TauProcessor.createTauFacet(context, hash, this.id, result, index));
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/resources/messages.properties
--- a/artifacts/src/main/resources/messages.properties	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/resources/messages.properties	Thu Apr 05 18:30:34 2018 +0200
@@ -780,9 +780,9 @@
 sinfo.bedheightsfinder.overlappingrange = Range of bed height {0} overlaps with other ranges.
 sinfo.bedheightsfinder.missingdescription = No bed heights found with description = {0}
 sinfo.bedheightsfinder.wrongriver = Bed heights {0} does not belong to river {1}
-sinfo.bedheightsfinder.configfile.missingriver = River not defined in config file '{0}': {1}
-sinfo.bedheightsfinder.configfile.loaderror = Failed to load config file '{0}': {1}
-sinfo.bedheightsfinder.notfound = Failed to access sounding with id '{0}'
+sinfo.bedheightsfinder.configfile.missingriver = River not defined in config file ''{0}'': {1}
+sinfo.bedheightsfinder.configfile.loaderror = Failed to load config file ''{0}'': {1}
+sinfo.bedheightsfinder.notfound = Failed to access sounding with id ''{0}''
 sinfo.bedheightsfinder.empty = The bed heights do not contain any values for the selected calculation range
 
 sinfo_calc_flow_depth_development=Flie\u00dftiefenentwicklung
@@ -874,11 +874,15 @@
 
 sinfo.chart.flow_depth.section.yaxis.label=Flie\u00dftiefe [m]
 sinfo.facet.flow_depth.filtered.description = h ({0})
+sinfo.facet.flow_depth.raw.description = h ({0}) (raw)
 sinfo.facet.flow_depth_with_tkh.filtered.description = h + \u0394d ({0})
+sinfo.facet.flow_depth_with_tkh.raw.description = h + \u0394d ({0}) (raw)
 
 sinfo.chart.flow_depth_minmax.section.title = min/max h-L\u00e4ngsschnitt
 sinfo.facet.flow_depth_min.filtered.description = h-min ({0})
+sinfo.facet.flow_depth_min.raw.description = h-min ({0}) (raw)
 sinfo.facet.flow_depth_max.filtered.description = h-max ({0})
+sinfo.facet.flow_depth_max.raw.description = h-max ({0}) (raw)
 
 sinfo.chart.tkh.section.title=Transportk\u00f6rperh\u00f6hen
 sinfo.chart.tkh.section.yaxis.label = Transportk\u00f6rperh\u00f6hen [cm]
@@ -893,15 +897,15 @@
 
 sinfo.chart.tkh_velocity.section.yaxis.label = Flie\u00dfgeschwindigkeit [m/s]
 sinfo.chart.tkh_velocity.yaxis.label = Flie\u00dfgeschwindigkeit [m/s]
-sinfo.facet.tkh_velocity.filtered.description = Flie\u00dfgeschwindigkeit ({0})
+sinfo.facet.tkh_velocity.description = Flie\u00dfgeschwindigkeit ({0})
 
 sinfo.chart.tkh_tau.section.yaxis.label = Sohlschubspannung [N/m\u00b2]
 sinfo.chart.tkh_tau.yaxis.label = Sohlschubspannung [N/m\u00b2]
-sinfo.facet.tkh_tau.filtered.description = Sohlschubspannung ({0})
+sinfo.facet.tkh_tau.description = Sohlschubspannung ({0})
 
 sinfo.chart.tkh_d50.section.yaxis.label = Sohlbeschaffenheit D50 [mm]
 sinfo.chart.tkh_d50.yaxis.label = Sohlbeschaffenheit D50 [mm]
-sinfo.facet.tkh_d50.filtered.description = Sohlbeschaffenheit D50 ({0})
+sinfo.facet.tkh_d50.description = Sohlbeschaffenheit D50 ({0})
 
 sinfo.chart.flow_depth_development.section.title = Flie\u00dftiefenentwicklung
 sinfo.chart.flow_depth_development.section.yaxis.label = Flie\u00dftiefenentwicklung [cm]
@@ -912,9 +916,11 @@
 sinfo.chart.flow_depth_development_per_year.yaxis.label = Flie\u00dftiefenentwicklung pro Jahr [cm/a]
 sinfo.facet.flow_depth_development_per_year.filtered = \u0394h/t [cm/a]
 sinfo.facet.flow_depth_development_per_year.filtered.description = \u0394h/t ({0})
+sinfo.facet.flow_depth_development_per_year.raw.description = \u0394h/t ({0}) (raw)
 
 sinfo_facet_flow_depth_development.filtered = \u0394h [cm]
 sinfo.facet.flow_depth_development.filtered.description = \u0394h ({0})
+sinfo.facet.flow_depth_development.raw.description = \u0394h ({0}) (raw)
 
 sinfo_facet_waterlevel_difference.filtered = \u0394WSPL [cm]
 sinfo.facet.waterlevel_difference.filtered.description = \u0394WSPL ({0})
@@ -924,16 +930,18 @@
 
 sinfo_facet_flow_depth_current.filtered = h-aktuell [m]
 sinfo.facet.flow_depth_current.filtered.description =  h-aktuell ({0})
+sinfo.facet.flow_depth_current.raw.description =  h-aktuell ({0}) (raw)
 
 sinfo_facet_flow_depth_historical.filtered = h-historisch [m]
 sinfo.facet.flow_depth_historical.filtered.description = h-historisch ({0})
+sinfo.facet.flow_depth_historical.raw.description = h-historisch ({0}) (raw)
 
 sinfo.flowdepthminmaxcalculation.soundingyear.different = Die Peiljahre von Talweg und Kammlage untersheiden sich
 
 sinfo.export.flow_depth_minmax.csv.header.min = Minimale Flie\u00dftiefe
 sinfo.export.flow_depth_minmax.csv.header.max = Maximale Flie\u00dftiefe
 
-waterlevelfetcher.missing = Failed to access waterlevel with id '{0}'
+waterlevelfetcher.missing = Failed to access waterlevel with id ''{0}''
 waterlevelfetcher.empty = The water level {0} does not contain any values for the selected calculation range
 
 bedqualityd50kmvaluefinder.error = Failed to access D50 data, calculation of transport body height not possible: {0}
@@ -961,4 +969,9 @@
 sinfo.export.csv.header.flowdepth.historical = Flie\u00dftiefe h-historisch
 
 flowdepthdevelopmentcalculation.missingCurrentYear = Failed to determine date of current watterlevel ({0}), calculation not possible.
-flowdepthdevelopmentcalculation.missingHistoricalYear = Failed to determine date of historical watterlevel ({0}), calculation not possible. 
\ No newline at end of file
+flowdepthdevelopmentcalculation.missingHistoricalYear = Failed to determine date of historical watterlevel ({0}), calculation not possible. 
+
+abstractsinfocalculationresults.emptyResult = {0}: result set is empty, please check the data ranges of the input 
+
+flowdepthdevelopmentcalculation.yearDifferenceCurrent = aktuelles Differenzenpaar
+flowdepthdevelopmentcalculation.yearDifferenceHistorical =  = historisches Differenzenpaar
\ No newline at end of file
diff -r 951a4af24a09 -r b194fa64506a artifacts/src/main/resources/messages_de.properties
--- a/artifacts/src/main/resources/messages_de.properties	Thu Apr 05 17:12:23 2018 +0200
+++ b/artifacts/src/main/resources/messages_de.properties	Thu Apr 05 18:30:34 2018 +0200
@@ -781,8 +781,8 @@
 sinfo.bedheightsfinder.missingdescription = Sohlh\u00f6he mit -description- {0} nicht vorhanden
 sinfo.bedheightsfinder.wrongriver = Sohlh\u00f6he {0} geh\u00f6rt nicht zum Gew\u00e4sser {1}
 sinfo.bedheightsfinder.configfile.missingriver = Gew\u00e4sser  {1} ist in Konfigurationsdatei {0} nicht definiert.
-sinfo.bedheightsfinder.configfile.loaderror = Fehler beim Laden der Konfigurationsdatei '{0}': {1}
-sinfo.bedheightsfinder.notfound = Keine Sohlh\u00f6he mit id '{0}' vorhanden
+sinfo.bedheightsfinder.configfile.loaderror = Fehler beim Laden der Konfigurationsdatei ''{0}'': {1}
+sinfo.bedheightsfinder.notfound = Keine Sohlh\u00f6he mit id ''{0}'' vorhanden
 sinfo.bedheightsfinder.empty = Die Sohlh\u00f6hen enthalten keine Werte f\u00fcr die gew\u00e4hlte Berechnungsstrecke 
 
 sinfo_calc_flow_depth_development=Flie\u00dftiefenentwicklung
@@ -874,11 +874,15 @@
 
 sinfo.chart.flow_depth.section.yaxis.label=Flie\u00dftiefe [m]
 sinfo.facet.flow_depth.filtered.description = h ({0})
+sinfo.facet.flow_depth.raw.description = h ({0}) (Rohdaten)
 sinfo.facet.flow_depth_with_tkh.filtered.description = h + \u0394d ({0})
+sinfo.facet.flow_depth_with_tkh.raw.description = h + \u0394d ({0}) (Rohdaten)
 
 sinfo.chart.flow_depth_minmax.section.title = min/max h-L\u00e4ngsschnitt
 sinfo.facet.flow_depth_min.filtered.description = h-min ({0})
+sinfo.facet.flow_depth_min.raw.description = h-min ({0}) (Rohdaten)
 sinfo.facet.flow_depth_max.filtered.description = h-max ({0})
+sinfo.facet.flow_depth_max.raw.description = h-max ({0}) (Rohdaten)
 
 sinfo.chart.tkh.section.title=Transportk\u00f6rperh\u00f6hen
 sinfo.chart.tkh.section.yaxis.label = Transportk\u00f6rperh\u00f6hen [cm]
@@ -893,15 +897,15 @@
 
 sinfo.chart.tkh_velocity.section.yaxis.label = Flie\u00dfgeschwindigkeit [m/s]
 sinfo.chart.tkh_velocity.yaxis.label = Flie\u00dfgeschwindigkeit [m/s]
-sinfo.facet.tkh_velocity.filtered.description = Flie\u00dfgeschwindigkeit ({0})
+sinfo.facet.tkh_velocity.description = Flie\u00dfgeschwindigkeit ({0})
 
 sinfo.chart.tkh_tau.section.yaxis.label = Sohlschubspannung [N/m\u00b2]
 sinfo.chart.tkh_tau.yaxis.label = Sohlschubspannung [N/m\u00b2]
-sinfo.facet.tkh_tau.filtered.description = Sohlschubspannung ({0})
+sinfo.facet.tkh_tau.description = Sohlschubspannung ({0})
 
 sinfo.chart.tkh_d50.section.yaxis.label = Sohlbeschaffenheit D50 [mm]
 sinfo.chart.tkh_d50.yaxis.label = Sohlbeschaffenheit D50 [mm]
-sinfo.facet.tkh_d50.filtered.description = Sohlbeschaffenheit D50 ({0})
+sinfo.facet.tkh_d50.description = Sohlbeschaffenheit D50 ({0})
 
 sinfo.chart.flow_depth_development.section.title = Flie\u00dftiefenentwicklung
 sinfo.chart.flow_depth_development.section.yaxis.label = Flie\u00dftiefenentwicklung [cm]
@@ -912,9 +916,11 @@
 sinfo.chart.flow_depth_development_per_year.yaxis.label = Flie\u00dftiefenentwicklung pro Jahr [cm/a]
 sinfo.facet.flow_depth_development_per_year.filtered = \u0394h/t [cm/a]
 sinfo.facet.flow_depth_development_per_year.filtered.description = \u0394h/t ({0})
+sinfo.facet.flow_depth_development_per_year.raw.description = \u0394h/t ({0}) (Rohdaten)
 
 sinfo_facet_flow_depth_development.filtered = \u0394h [cm]
 sinfo.facet.flow_depth_development.filtered.description = \u0394h ({0})
+sinfo.facet.flow_depth_development.raw.description = \u0394h ({0}) (Rohdaten)
 
 sinfo_facet_waterlevel_difference.filtered = \u0394WSPL [cm]
 sinfo.facet.waterlevel_difference.filtered.description = \u0394WSPL ({0})
@@ -924,17 +930,19 @@
 
 sinfo_facet_flow_depth_current.filtered = h-aktuell [m]
 sinfo.facet.flow_depth_current.filtered.description =  h-aktuell ({0})
+sinfo.facet.flow_depth_current.raw.description =  h-aktuell ({0}) (Rohdaten)
 
 sinfo_facet_flow_depth_historical.filtered = h-historisch [m]
 sinfo.facet.flow_depth_historical.filtered.description = h-historisch ({0})
+sinfo.facet.flow_depth_historical.raw.description = h-historisch ({0}) (Rohdaten)
 
 sinfo.flowdepthminmaxcalculation.soundingyear.different = Die Peiljahre von Talweg und Kammlage untersheiden sich
 
 sinfo.export.flow_depth_minmax.csv.header.min = Minimale Flie\u00dftiefe
 sinfo.export.flow_depth_minmax.csv.header.max = Maximale Flie\u00dftiefe
 
-waterlevelfetcher.missing = Fehler beim Zugriff auf Wasserspiegel mit id '{0}'
-waterlevelfetcher.empty = Der Wasserspiegel '{0}' enth\u00e4lt keine Werte f\u00fcr die gew\u00e4hlte Berechnungsstrecke
+waterlevelfetcher.missing = Fehler beim Zugriff auf Wasserspiegel mit id ''{0}''
+waterlevelfetcher.empty = Der Wasserspiegel ''{0}'' enth\u00e4lt keine Werte f\u00fcr die gew\u00e4hlte Berechnungsstrecke
 
 bedqualityd50kmvaluefinder.error = Fehler beim Zugriff auf die D50 Daten, Transportk\u00f6rperh\u00f6henberechnung nicht m\u00f6glich: {0}
 bedqualityd50kmvaluefinder.empty = F\u00fcr das Jahr {0} liegen keine D50-Korndurchmesser f\u00fcr die gew\u00e4hlte Berechnungsstrecke vor
@@ -961,4 +969,9 @@
 sinfo.export.csv.header.flowdepth.historical = Flie\u00dftiefe h-historisch
 
 flowdepthdevelopmentcalculation.missingCurrentYear = Datum des aktuellen Wasserspiegels ({0}) konnte nicht ermittelt werden, Berechnung nicht m\u00f6glich.
-flowdepthdevelopmentcalculation.missingHistoricalYear = Datum des historischen Wasserspiegels ({0}) konnte nicht ermittelt werden, Berechnung nicht m\u00f6glich.
\ No newline at end of file
+flowdepthdevelopmentcalculation.missingHistoricalYear = Datum des historischen Wasserspiegels ({0}) konnte nicht ermittelt werden, Berechnung nicht m\u00f6glich.
+
+abstractsinfocalculationresults.emptyResult = {0}: das Ergebnis enth\u00e4lt keine Daten, \u00fcberpr\u00fcfen Sie die Abdeckung der Eingangsdaten
+
+flowdepthdevelopmentcalculation.yearDifferenceCurrent = aktuelles Differenzenpaar
+flowdepthdevelopmentcalculation.yearDifferenceHistorical =  = historisches Differenzenpaar
\ No newline at end of file


More information about the Dive4Elements-commits mailing list