diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java @ 645:433f67a076aa

Use an explicit reference km for interpolation now. flys-artifacts/trunk@2029 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 31 May 2011 09:35:19 +0000
parents d08f77e7f7e8
children 44175d4720f8
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java	Mon May 30 11:34:06 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java	Tue May 31 09:35:19 2011 +0000
@@ -384,28 +384,26 @@
 
     public QPosition interpolate(
         double    q,
-        int       referenceIndex,
+        double    referenceKm,
         double [] kms,
         double [] ws,
         double [] qs
     ) {
-        Row kmKey = new Row(kms[referenceIndex]);
-
-        int rowIndex = Collections.binarySearch(rows, kmKey);
-
-        int R1 = rows.size()-1;
-
-        QPosition qPosition = getQPosition(kms[referenceIndex], q);
+        QPosition qPosition = getQPosition(referenceKm, q);
 
         if (qPosition == null) {
             // we cannot locate q at km
             return null;
         }
 
+        Row kmKey = new Row();
+
+        int R1 = rows.size()-1;
+
         for (int i = 0; i < kms.length; ++i) {
             kmKey.km = kms[i];
 
-            rowIndex = Collections.binarySearch(rows, kmKey);
+            int rowIndex = Collections.binarySearch(rows, kmKey);
 
             qs[i] = getQ(qPosition, kms[i]);
 

http://dive4elements.wald.intevation.org