Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java @ 3065:ee653971fa84
FixA: Figure out max Q during fitting.
flys-artifacts/trunk@4649 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 13 Jun 2012 10:19:44 +0000 |
parents | fa5d5b48028a |
children | 5642a83420f2 |
comparison
equal
deleted
inserted
replaced
3064:478e8d9d88ba | 3065:ee653971fa84 |
---|---|
205 KMIndex<QW []> outliers = new KMIndex<QW []>(); | 205 KMIndex<QW []> outliers = new KMIndex<QW []>(); |
206 KMIndex<QW []> referenced = new KMIndex<QW []>(kms.length); | 206 KMIndex<QW []> referenced = new KMIndex<QW []>(kms.length); |
207 | 207 |
208 int kmIndex = results.columnIndex("km"); | 208 int kmIndex = results.columnIndex("km"); |
209 int chiSqrIndex = results.columnIndex("chi_sqr"); | 209 int chiSqrIndex = results.columnIndex("chi_sqr"); |
210 int maxQIndex = results.columnIndex("max_q"); | |
210 int [] parameterIndices = results.columnIndices(parameterNames); | 211 int [] parameterIndices = results.columnIndices(parameterNames); |
211 | 212 |
212 int numFailed = 0; | 213 int numFailed = 0; |
213 | 214 |
214 for (int i = 0; i < kms.length; ++i) { | 215 for (int i = 0; i < kms.length; ++i) { |
238 | 239 |
239 int row = results.newRow(); | 240 int row = results.newRow(); |
240 | 241 |
241 results.set(row, kmIndex, km); | 242 results.set(row, kmIndex, km); |
242 results.set(row, chiSqrIndex, fitting.getChiSquare()); | 243 results.set(row, chiSqrIndex, fitting.getChiSquare()); |
244 results.set(row, maxQIndex, fitting.getMaxQ()); | |
243 invalid |= results.set( | 245 invalid |= results.set( |
244 row, parameterIndices, fitting.getParameters()); | 246 row, parameterIndices, fitting.getParameters()); |
245 } | 247 } |
246 | 248 |
247 if (debug) { | 249 if (debug) { |
307 FixingsOverview overview | 309 FixingsOverview overview |
308 ) { | 310 ) { |
309 Range range = new Range(from, to); | 311 Range range = new Range(from, to); |
310 | 312 |
311 int kmIndex = parameters.columnIndex("km"); | 313 int kmIndex = parameters.columnIndex("km"); |
314 int maxQIndex = parameters.columnIndex("max_q"); | |
312 | 315 |
313 ColumnCache cc = new ColumnCache(); | 316 ColumnCache cc = new ColumnCache(); |
314 | 317 |
315 double [] wq = new double[2]; | 318 double [] wq = new double[2]; |
316 | 319 |
423 QWD [] aqwds = allQWDs.toArray(new QWD[allQWDs.size()]); | 426 QWD [] aqwds = allQWDs.toArray(new QWD[allQWDs.size()]); |
424 | 427 |
425 AnalysisPeriod periodResult = new AnalysisPeriod( | 428 AnalysisPeriod periodResult = new AnalysisPeriod( |
426 analysisPeriod, aqwds, qSectorAverages); | 429 analysisPeriod, aqwds, qSectorAverages); |
427 periodResults.add(periodResult); | 430 periodResults.add(periodResult); |
431 } | |
432 | |
433 double maxQ = -Double.MAX_VALUE; | |
434 for (AnalysisPeriod ap: periodResults) { | |
435 double q = ap.getMaxQ(); | |
436 if (q > maxQ) { | |
437 maxQ = q; | |
438 } | |
439 } | |
440 | |
441 double oldMaxQ = parameters.get(row, maxQIndex); | |
442 if (oldMaxQ < maxQ) { | |
443 parameters.set(row, maxQIndex, maxQ); | |
428 } | 444 } |
429 | 445 |
430 results.add(km, periodResults.toArray( | 446 results.add(km, periodResults.toArray( |
431 new AnalysisPeriod[periodResults.size()])); | 447 new AnalysisPeriod[periodResults.size()])); |
432 } | 448 } |
557 | 573 |
558 return columns; | 574 return columns; |
559 } | 575 } |
560 | 576 |
561 protected static String [] createColumnNames(String [] parameters) { | 577 protected static String [] createColumnNames(String [] parameters) { |
562 String [] result = new String[parameters.length + 2]; | 578 String [] result = new String[parameters.length + 3]; |
563 result[0] = "km"; | 579 result[0] = "km"; |
564 result[1] = "chi_sqr"; | 580 result[1] = "chi_sqr"; |
565 System.arraycopy(parameters, 0, result, 2, parameters.length); | 581 result[2] = "max_q"; |
582 System.arraycopy(parameters, 0, result, 3, parameters.length); | |
566 return result; | 583 return result; |
567 } | 584 } |
568 } | 585 } |
569 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 586 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |