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.

http://dive4elements.wald.intevation.org