comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java @ 2994:a2b265b9b2f7

FixA: corrected fitting (Q->W instead W->Q). flys-artifacts/trunk@4546 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 28 May 2012 21:34:24 +0000
parents 70469e3d34b9
children e5e6363e6cba
comparison
equal deleted inserted replaced
2993:70469e3d34b9 2994:a2b265b9b2f7
309 if (Double.isNaN(ow[0])) { 309 if (Double.isNaN(ow[0])) {
310 ++failedW; 310 ++failedW;
311 continue; 311 continue;
312 } 312 }
313 313
314 double deltaW = ow[0] - nw; 314 double deltaW = (ow[0] - nw)*100.0; // in cm
315 315
316 DeltaWT deltaWT = new DeltaWT( 316 DeltaWT deltaWT = new DeltaWT(
317 deltaW, 317 deltaW,
318 pc.meta.getStartTime(), 318 pc.meta.getStartTime(),
319 pc.meta.getDescription()); 319 pc.meta.getDescription());
421 double [] qs 421 double [] qs
422 ) { 422 ) {
423 LevenbergMarquardtOptimizer lmo = new LevenbergMarquardtOptimizer(); 423 LevenbergMarquardtOptimizer lmo = new LevenbergMarquardtOptimizer();
424 CurveFitter cf = new CurveFitter(lmo); 424 CurveFitter cf = new CurveFitter(lmo);
425 425
426 boolean missingWs = false;
427 boolean missingQs = false;
428
429 for (int i = 0; i < ws.length; ++i) { 426 for (int i = 0; i < ws.length; ++i) {
430 boolean ignore = false; 427 if (!Double.isNaN(ws[i]) && !Double.isNaN(qs[i])) {
431 if (Double.isNaN(ws[i])) { 428 cf.addObservedPoint(qs[i], ws[i]);
432 ignore = true;
433 if (!missingWs) {
434 missingWs = true;
435 // TODO: i18n
436 addProblem(km, "fix.missing.w");
437 }
438 }
439 if (Double.isNaN(qs[i])) {
440 ignore = true;
441 if (!missingQs) {
442 missingQs = true;
443 // TODO: i18n
444 addProblem(km, "fix.missing.q");
445 }
446 }
447 if (!ignore) {
448 cf.addObservedPoint(ws[i], qs[i]);
449 } 429 }
450 } 430 }
451 431
452 try { 432 try {
453 return cf.fit(function, function.getInitialGuess()); 433 return cf.fit(function, function.getInitialGuess());

http://dive4elements.wald.intevation.org