diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation4.java @ 686:3dc61e00385e facets-slt

Merged with trunk and introduced hashing of computed values. flys-artifacts/branches/facets-slt@2126 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 15 Jun 2011 15:28:54 +0000
parents baea7981477a
children eab5e5089d77
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation4.java	Wed Jun 08 13:03:21 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation4.java	Wed Jun 15 15:28:54 2011 +0000
@@ -20,6 +20,7 @@
 import org.apache.log4j.Logger;
 
 public class Calculation4
+extends      Calculation
 {
     private static Logger logger = Logger.getLogger(Calculation4.class);
 
@@ -50,7 +51,7 @@
 
         // assign reference points
         for (Segment segment: segments) {
-            Gauge gauge = river.determineGauge(
+            Gauge gauge = river.determineGaugeByStation(
                 segment.getFrom(), segment.getTo());
 
             segment.setReferencePoint(gauge != null
@@ -93,10 +94,15 @@
             logger.debug(
                 "calculate from " + from + " to " + to + " step " + step);
             logger.debug("# segments: " + segments.size());
+            for (Segment segment: segments) {
+                logger.debug("  " + segment);
+            }
         }
 
         if (segments.isEmpty()) {
             logger.debug("no segments found");
+            // TODO: I18N
+            addProblem("no segments found");
             return new WQKms[0];
         }
 
@@ -104,14 +110,13 @@
 
         if (numResults < 1) {
             logger.debug("no values given");
+            // TODO: I18N
+            addProblem("no values given");
             return new WQKms[0];
         }
 
 
         WQKms [] results = new WQKms[numResults];
-                    if (debug) {
-                        logger.debug("after last segment -> gleichwertig");
-                    }
         for (int i = 0; i < results.length; ++i) {
             results[i] = new WQKms();
         }
@@ -213,7 +218,8 @@
                             anchor.values[i]);
 
                         if ((qPositions[i] = qi) == null) {
-                            // TODO: error report
+                            // TODO: I18N
+                            addProblem(pos, "cannot find q = " + anchor.values[i]);
                             functions[i] = Identity.IDENTITY;
                         }
                         else {
@@ -225,6 +231,14 @@
                                 : new Linear(
                                     qA, qF,
                                     anchor.values[i], free.values[i]);
+
+                            if (debug) {
+                                logger.debug(
+                                    anchor.referencePoint + ": " + 
+                                    qA + " -> " + functions[i].value(qA) +
+                                    " / " + free.referencePoint + ": " +
+                                    qF + " -> " + functions[i].value(qF));
+                            }
                         }
                     } // build transforms
                 } // "ungleichwertiges" interval
@@ -241,7 +255,8 @@
                     results[i].add(out[0], out[1], pos);
                 }
                 else {
-                    // TODO: error report
+                    // TODO: I18N
+                    addProblem(pos, "cannot interpolate w/q");
                 }
             }
         }
@@ -253,10 +268,9 @@
             double [] ws  = results[i].getWs();
             double [] kms = results[i].getKms();
 
-            if (bjc.doCorrection(kms, ws)) {
+            if (bjc.doCorrection(kms, ws, this)) {
                 results[i] = new WQCKms(results[i], bjc.getCorrected());
             }
-            // TODO: error report
         }
 
         // name the curves
@@ -268,7 +282,7 @@
     }
 
     protected String createName(int index) {
-        // TODO: i18n
+        // TODO: I18N
         StringBuilder sb = new StringBuilder(isQ ? "Q" : "W");
         sb.append(" benutzerdefiniert (");
         for (int i = 0, N = segments.size(); i < N; ++i) {

http://dive4elements.wald.intevation.org