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