Mercurial > dive4elements > river
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]);