Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java @ 449:9814d4808410
flys/issue69: Connected calculation with the UI
flys-artifacts/trunk@1941 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 18 May 2011 09:11:10 +0000 |
parents | 5606ba4139e0 |
children | c8bb38115290 |
comparison
equal
deleted
inserted
replaced
448:88d9e1d75d64 | 449:9814d4808410 |
---|---|
1 package de.intevation.flys.artifacts; | 1 package de.intevation.flys.artifacts; |
2 | 2 |
3 import java.util.List; | 3 import java.util.List; |
4 import java.util.Vector; | 4 import java.util.Vector; |
5 import java.util.ArrayList; | |
5 | 6 |
6 import org.w3c.dom.Document; | 7 import org.w3c.dom.Document; |
7 import org.w3c.dom.Element; | 8 import org.w3c.dom.Element; |
8 import org.w3c.dom.Node; | 9 import org.w3c.dom.Node; |
9 | 10 |
309 WstValueTable wst) | 310 WstValueTable wst) |
310 { | 311 { |
311 logger.info("WINFOArtifact.computeWaterlevelData"); | 312 logger.info("WINFOArtifact.computeWaterlevelData"); |
312 | 313 |
313 WQKms[] wqkms = new WQKms[qs.length]; | 314 WQKms[] wqkms = new WQKms[qs.length]; |
314 for (int i = 0; i < wqkms.length; i++) { | 315 |
315 wqkms[i] = new WQKms(kms.length); | 316 ArrayList<WQKms> results = new ArrayList<WQKms>(); |
316 } | 317 |
317 | 318 for (int i = 0; i < qs.length; i++) { |
318 double [] interpolatedW = new double[qs.length]; | 319 double [] oqs = new double[kms.length]; |
319 | 320 double [] ows = new double[kms.length]; |
320 for (double km: kms) { | 321 int referenceIndex = 0; // TODO: Make depend on the flow direction |
321 wst.interpolateW(km, qs, interpolatedW); | 322 WstValueTable.QPosition qPosition = |
322 | 323 wst.interpolate(qs[i], referenceIndex, kms, ows, oqs); |
323 // TODO Modify the interpolation to return a better formed data | 324 if (qPosition != null) { |
324 // structure. | 325 results.add(new WQKms(kms, oqs, ows)); |
325 for (int i = 0; i < interpolatedW.length; i++) { | |
326 wqkms[i].add(interpolatedW[i], qs[i], km); | |
327 } | 326 } |
328 } | 327 else { |
329 | 328 logger.warn("interpolation failed for q = " + qs[i]); |
330 return wqkms; | 329 } |
330 } | |
331 | |
332 return results.toArray(new WQKms[results.size()]); | |
331 } | 333 } |
332 | 334 |
333 | 335 |
334 /** | 336 /** |
335 * Returns the data that is computed by a duration curve computation. | 337 * Returns the data that is computed by a duration curve computation. |