diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation6.java @ 2244:7335c526befd

Added an error report for historical discharge curves. flys-artifacts/trunk@3893 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 03 Feb 2012 11:45:22 +0000
parents 59af81364eb1
children 40608c82e9cb
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation6.java	Fri Feb 03 10:45:12 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation6.java	Fri Feb 03 11:45:22 2012 +0000
@@ -122,12 +122,15 @@
         for (double value: values) {
             logger.debug("Prepare data for value: " + value);
 
-            String name = mode == MODE_W ? "W=" + value : "Q=" + value;
-            WQTimerange wqt = new WQTimerange(name);
+            String      name = mode == MODE_W ? "W=" + value : "Q=" + value;
+            WQTimerange wqt  = null;
 
             for (DischargeTable dt: dts) {
                 TimeInterval ti = dt.getTimeInterval();
 
+                Date start = ti.getStartTime();
+                Date end   = ti.getStopTime();
+
                 Timerange t = new Timerange(ti.getStartTime(),ti.getStopTime());
                 double    w;
                 double    q;
@@ -135,6 +138,12 @@
                 if (mode == MODE_W) {
                     w = value;
                     q = findValueForW(dt, w);
+
+                    if (Double.isNaN(q)) {
+                        logger.warn("Cannot find Q for W: " + w);
+                        addProblem("cannot.find.hist.q.for.w", w, start, end);
+                        continue;
+                    }
                 }
                 else {
                     q = value;
@@ -145,10 +154,16 @@
                     logger.debug("Q=" + q + " | W=" + w);
                 }
 
+                if (wqt == null) {
+                    wqt = new WQTimerange(name);
+                }
+
                 wqt.add(w, q, t);
             }
 
-            wqts.add(wqt);
+            if (wqt != null) {
+                wqts.add(wqt);
+            }
         }
 
         return (WQTimerange[]) wqts.toArray(new WQTimerange[wqts.size()]);

http://dive4elements.wald.intevation.org