Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Fitting.java @ 3566:8d0f06b76e09
S/Q relation: Fixed flys/issue748
flys-artifacts/trunk@5164 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 01 Aug 2012 10:19:45 +0000 |
parents | 1df6984628c3 |
children | b8b1280606c2 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Fitting.java Tue Jul 31 16:46:36 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Fitting.java Wed Aug 01 10:19:45 2012 +0000 @@ -35,18 +35,12 @@ protected de.intevation.flys.artifacts.math.Function instance; - protected List<SQ> remainings; - protected List<SQ> outliers; - - protected double standardDeviation; protected double stdDevFactor; protected double chiSqr; protected Callback callback; public Fitting() { - remainings = new ArrayList<SQ>(); - outliers = new ArrayList<SQ>(); } public Fitting(Function function, double stdDevFactor) { @@ -72,14 +66,13 @@ } @Override - public void initialize(Iterator<SQ> good) throws MathException { + public void initialize(List<SQ> sqs) throws MathException { LevenbergMarquardtOptimizer lmo = new LevenbergMarquardtOptimizer(); CurveFitter cf = new CurveFitter(lmo); - while (good.hasNext()) { - SQ sq = good.next(); + for (SQ sq: sqs) { cf.addObservedPoint(sq.getQ(), sq.getS()); } @@ -89,7 +82,6 @@ instance = function.instantiate(coeffs); chiSqr = lmo.getChiSquare(); - } @Override @@ -99,26 +91,15 @@ } @Override - public void outlier(SQ sq) { - outliers.add(sq); - } - - @Override - public void remaining(SQ sq) { - remainings.add(sq); - } - - @Override - public void standardDeviation(double standardDeviation) { - this.standardDeviation = standardDeviation; - } - - @Override - public void iterationFinished() { + public void iterationFinished( + double standardDeviation, + SQ outlier, + List<SQ> remainings + ) { if (log.isDebugEnabled()) { log.debug("iterationFinished ----"); log.debug(" num remainings: " + remainings.size()); - log.debug(" num outliers: " + outliers.size()); + log.debug(" has outlier: " + outlier != null); log.debug(" standardDeviation: " + standardDeviation); log.debug(" Chi^2: " + chiSqr); log.debug("---- iterationFinished"); @@ -126,11 +107,9 @@ callback.afterIteration( coeffs, remainings.toArray(new SQ[remainings.size()]), - outliers.toArray(new SQ[outliers.size()]), + outlier != null ? new SQ [] { outlier} : new SQ [] {}, standardDeviation, chiSqr); - remainings.clear(); - outliers.clear(); } protected static final List<SQ> onlyValid(List<SQ> sqs) {