[PATCH 1 of 2] (issue1666) Calculate wRow after rounding the first value

Wald Commits scm-commit at wald.intevation.org
Thu Dec 12 16:26:24 CET 2013


# HG changeset patch
# User Andre Heinecke <aheinecke at intevation.de>
# Date 1386860500 -3600
# Node ID f4b3861712a4bef8d82017ad7efe1480d855ab4e
# Parent  7484132b2fbb1380f9f66eac4f683197dd7f7a0f
(issue1666) Calculate wRow after rounding the first value.

    This also fixes negative waterlevels in the export.

diff -r 7484132b2fbb -r f4b3861712a4 artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixATWriter.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixATWriter.java	Thu Dec 12 07:57:13 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixATWriter.java	Thu Dec 12 16:01:40 2013 +0100
@@ -26,6 +26,7 @@
 import java.io.Writer;
 
 import java.util.Locale;
+import java.util.Arrays;
 
 import org.apache.log4j.Logger;
 
@@ -118,21 +119,24 @@
         double wMinCM = wMin * 100d - subtractPNP;
         double wMaxCM = wMax * 100d;
 
-        int wRow = ((int)wMinCM / 10) * 10;
-
         if ((wMinCM - (int)wMinCM) > 0d) {
             wMinCM = (int)wMinCM + 1d;
         }
 
+        int wRow = ((int)wMinCM / 10) * 10;
+
         double w = (wMinCM + subtractPNP) / 100.0;
 
         int wcm = ((int)wMinCM) % 10;
 
         if (log.isDebugEnabled()) {
+            log.debug("km: " + km);
             log.debug("wMinCM: " + wMinCM);
             log.debug("wMaxCM: " + wMaxCM);
             log.debug("wcm: " + wcm);
             log.debug("subtractPNP: " + subtractPNP);
+            log.debug("coeffs: " + Arrays.toString(coeffs));
+            log.debug("function description: " + inverse.getDescription());
         }
 
         out.printf(Locale.US, "%8d", wRow);
@@ -205,6 +209,11 @@
 
         for (int i = 0; i < MAX_ITERATIONS; ++i) {
             double w = lastW - stepWidth;
+
+            if (w <= 0) {
+                return 0;
+            }
+
             double q = function.value(w);
 
             if (Double.isNaN(q) || q > lastQ || q < MIN_Q) {


More information about the Dive4elements-commits mailing list