diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java @ 8213:ebdf34cae14d

Error reports for sediment load calculation.
author Tom Gottfried <tom@intevation.de>
date Fri, 05 Sep 2014 20:57:31 +0200
parents 04d1d56d896b
children be3c11bef6e8
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java	Fri Sep 05 15:09:44 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java	Fri Sep 05 20:57:31 2014 +0200
@@ -213,21 +213,18 @@
         if ("off_epoch".equals(yearEpoch)) return calculateOffEpochs();
 
         // TODO: i18n
-        return error("minfo.sediment.load.unknown.calc.mode");
+        return error("minfo.sedimentload.unknown.calc.mode");
     }
 
     private CalculationResult calculateYears() {
         SedimentLoadData sld =
             SedimentLoadDataFactory.INSTANCE.getSedimentLoadData(river);
         if (sld == null) {
-            // TODO: i18n
-            return error("minfo.sediment.load.no.data");
+            return error("minfo.sedimentload.no.data");
         }
 
         SedimentLoadDataResult sldr = new SedimentLoadDataResult();
 
-        Set<Integer> missingFractions = new TreeSet<Integer>();
-
         Not notEpochs = new Not(IsEpoch.INSTANCE);
 
         Sum sum = new Sum();
@@ -246,12 +243,11 @@
 
                 double [][] result = sum(
                     sld, ls.getGrainFractions(), ls.getStationType(),
-                    filter, sum, missingFractions);
+                    filter, sum);
 
                 if (result[0].length == 0 || DoubleUtil.isNaN(result[1])) {
-                    // TODO: resolve i18n
-                    addProblem("minfo.sediment.load.no.fractions",
-                        ls.getDescription());
+                    addProblem("sedimentload.missing.fraction." +
+                               ls.getDescription(), period);
                     continue;
                 }
 
@@ -262,9 +258,7 @@
 
                 sldr.addFraction(sldrf);
             }
-
         }
-        // TODO: Generate messages for missing fractions.
         return new CalculationResult(sldr, this);
     }
 
@@ -272,14 +266,11 @@
         SedimentLoadData sld =
             SedimentLoadDataFactory.INSTANCE.getSedimentLoadData(river);
         if (sld == null) {
-            // TODO: i18n
-            return error("minfo.sediment.load.no.data");
+            return error("minfo.sedimentload.no.data");
         }
 
         SedimentLoadDataResult sldr = new SedimentLoadDataResult();
 
-        Set<Integer> missingFractions = new TreeSet<Integer>();
-
         Sum sum = new Sum();
 
         SedimentDensity sd = getSedimentDensity();
@@ -304,12 +295,9 @@
 
                     double [][] result = sum(
                         sld, ls.getGrainFractions(), ls.getStationType(),
-                        filter, sum, missingFractions);
+                        filter, sum);
 
                     if (result[0].length == 0 || DoubleUtil.isNaN(result[1])) {
-                        // TODO: resolve i18n
-                        addProblem("minfo.sediment.load.no.fractions",
-                            ls.getDescription());
                         continue;
                     }
 
@@ -318,6 +306,8 @@
                 }
 
                 if (results.size() == 0) {
+                    addProblem("sedimentload.missing.fraction." +
+                               ls.getDescription(), period);
                     continue;
                 }
 
@@ -329,10 +319,13 @@
                             ls.getDescription(), result, period);
                     sldr.addFraction(sldrf);
                 }
+                else {
+                    addProblem("sedimentload.missing.fraction." +
+                               ls.getDescription(), period);
+                }
             }
 
         }
-        // TODO: Generate messages for missing fractions.
         return new CalculationResult(sldr, this);
     }
 
@@ -340,8 +333,7 @@
         SedimentLoadData sld =
             SedimentLoadDataFactory.INSTANCE.getSedimentLoadData(river);
         if (sld == null) {
-            // TODO: i18n
-            return error("minfo.sediment.load.no.data");
+            return error("minfo.sedimentload.no.data");
         }
 
         SedimentLoadDataResult sldr = new SedimentLoadDataResult();
@@ -364,14 +356,14 @@
             for (LoadSum ls: LOAD_SUMS) {
                 double [][] result = sum(
                     sld, ls.getGrainFractions(), ls.getStationType(),
-                    filter, sum, missingFractions);
+                    filter, sum);
 
                 if (result[0].length == 0 || DoubleUtil.isNaN(result[1])) {
-                    // TODO: resolve i18n
-                    addProblem("minfo.sediment.load.no.fractions",
-                        ls.getDescription());
+                    addProblem("sedimentload.missing.fraction." +
+                               ls.getDescription(), period);
                     continue;
                 }
+
                 transformT2M3(sd, year, result);
                 SedimentLoadDataResult.Fraction sldrf =
                     new SedimentLoadDataResult.Fraction(ls.getDescription(), result, period);
@@ -412,8 +404,7 @@
         int []           grainFractions,
         int              lsSType,
         Value.Filter     filter,
-        Sum              sum,
-        Set<Integer>     missingFractions
+        Sum              sum
     ) {
         List<Station> stations = sld.findStations(from, to);
 
@@ -458,7 +449,6 @@
                 }
 
                 if (sum.getN() == 0) {
-                    missingFractions.add(gf);
                     values[i] = Double.NaN;
                 } else {
                     values[i] = sum.getSum();
@@ -468,8 +458,6 @@
             result[1][j] = DoubleUtil.sum(values);
         }
 
-        // TODO: Handle 'virtual' measument stations 'from' and 'to'.
-
         return result;
     }
 

http://dive4elements.wald.intevation.org