Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java @ 3014:e341606faeb4
FixA: Use KMIndex for outliers.
flys-artifacts/trunk@4579 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 05 Jun 2012 09:11:24 +0000 |
parents | ab81ffd1343e |
children | ce796f1db30e |
comparison
equal
deleted
inserted
replaced
3013:ba62c1751f07 | 3014:e341606faeb4 |
---|---|
23 import de.intevation.flys.artifacts.model.FixingsOverviewFactory; | 23 import de.intevation.flys.artifacts.model.FixingsOverviewFactory; |
24 import de.intevation.flys.artifacts.model.Parameters; | 24 import de.intevation.flys.artifacts.model.Parameters; |
25 | 25 |
26 import de.intevation.flys.utils.DateAverager; | 26 import de.intevation.flys.utils.DateAverager; |
27 import de.intevation.flys.utils.DoubleUtil; | 27 import de.intevation.flys.utils.DoubleUtil; |
28 import de.intevation.flys.utils.EpsilonComparator; | 28 import de.intevation.flys.utils.KMIndex; |
29 | 29 |
30 import java.util.ArrayList; | 30 import java.util.ArrayList; |
31 import java.util.Date; | 31 import java.util.Date; |
32 import java.util.HashMap; | 32 import java.util.HashMap; |
33 import java.util.List; | 33 import java.util.List; |
34 import java.util.Map; | 34 import java.util.Map; |
35 import java.util.TreeMap; | |
36 | 35 |
37 import org.apache.log4j.Logger; | 36 import org.apache.log4j.Logger; |
38 | 37 |
39 public class FixCalculation | 38 public class FixCalculation |
40 extends Calculation | 39 extends Calculation |
204 | 203 |
205 if (debug) { | 204 if (debug) { |
206 log.debug("number of kms: " + kms.length); | 205 log.debug("number of kms: " + kms.length); |
207 } | 206 } |
208 | 207 |
209 TreeMap<Double, QW []> outliers = | 208 KMIndex<QW []> outliers = new KMIndex<QW []>(); |
210 new TreeMap<Double, QW []>(EpsilonComparator.INSTANCE); | |
211 | 209 |
212 int kmIndex = results.columnIndex("km"); | 210 int kmIndex = results.columnIndex("km"); |
213 int chiSqrIndex = results.columnIndex("chi_sqr"); | 211 int chiSqrIndex = results.columnIndex("chi_sqr"); |
214 int [] parameterIndices = results.columnIndices(parameterNames); | 212 int [] parameterIndices = results.columnIndices(parameterNames); |
215 | 213 |
233 addProblem(km, "fix.fitting.failed"); | 231 addProblem(km, "fix.fitting.failed"); |
234 continue; | 232 continue; |
235 } | 233 } |
236 | 234 |
237 if (fitting.hasOutliers()) { | 235 if (fitting.hasOutliers()) { |
238 outliers.put(Double.valueOf(km), fitting.outliersToArray()); | 236 outliers.add(km, fitting.outliersToArray()); |
239 } | 237 } |
240 | 238 |
241 int row = results.newRow(); | 239 int row = results.newRow(); |
242 | 240 |
243 results.set(row, kmIndex, km); | 241 results.set(row, kmIndex, km); |
260 // Calculate Delta W/t | 258 // Calculate Delta W/t |
261 DeltaWTsKM deltaWTsKM = calculateDeltaWTs( | 259 DeltaWTsKM deltaWTsKM = calculateDeltaWTs( |
262 func, | 260 func, |
263 overview, | 261 overview, |
264 results); | 262 results); |
263 | |
264 outliers.sort(); | |
265 | 265 |
266 FixResult fr = new FixResult(results, deltaWTsKM, outliers); | 266 FixResult fr = new FixResult(results, deltaWTsKM, outliers); |
267 | 267 |
268 return new CalculationResult(fr, this); | 268 return new CalculationResult(fr, this); |
269 } | 269 } |