diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java @ 708:757ff56b43b3

Added calculation "am Pegel" version to the "Wasserspiegellage" calculation. flys-artifacts/trunk@2161 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sat, 18 Jun 2011 20:20:34 +0000
parents ddd8b37d5cd3
children 3b7e9ddf6bb1
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java	Sat Jun 18 18:38:04 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java	Sat Jun 18 20:20:34 2011 +0000
@@ -328,8 +328,21 @@
             throw new NullPointerException("No Wst found for selected river.");
         }
 
+        double refKm = Double.NaN;
+
+        if (!isFreeQ()) {
+            double pos = kms[river.getKmUp() ? 0 : kms.length-1];
+            Gauge gauge = river.determineGaugeByPosition(pos);
+            if (gauge == null) {
+                logger.warn("no gauge found at km " + pos);
+            }
+            else {
+                refKm = gauge.getStation().doubleValue();
+            }
+        }
+
         WQKms[] results = computeWaterlevelData(
-            kms, qs, ws, wst, river.getKmUp());
+            kms, qs, ws, wst, refKm, river.getKmUp());
 
         return results;
     }
@@ -349,11 +362,12 @@
         double []     qs,
         double []     ws,
         WstValueTable wst,
+        double        refKm,
         boolean       up
     ) {
         logger.info("WINFOArtifact.computeWaterlevelData");
 
-        Calculation1 calculation = new Calculation1(kms, qs, ws, up);
+        Calculation1 calculation = new Calculation1(kms, qs, ws, refKm, up);
 
         WQKms[] wqkms = calculation.calculate(wst);
 

http://dive4elements.wald.intevation.org