Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Wed Jun 13 09:28:39 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Wed Jun 13 10:19:44 2012 +0000 @@ -207,6 +207,7 @@ int kmIndex = results.columnIndex("km"); int chiSqrIndex = results.columnIndex("chi_sqr"); + int maxQIndex = results.columnIndex("max_q"); int [] parameterIndices = results.columnIndices(parameterNames); int numFailed = 0; @@ -240,6 +241,7 @@ results.set(row, kmIndex, km); results.set(row, chiSqrIndex, fitting.getChiSquare()); + results.set(row, maxQIndex, fitting.getMaxQ()); invalid |= results.set( row, parameterIndices, fitting.getParameters()); } @@ -309,6 +311,7 @@ Range range = new Range(from, to); int kmIndex = parameters.columnIndex("km"); + int maxQIndex = parameters.columnIndex("max_q"); ColumnCache cc = new ColumnCache(); @@ -427,6 +430,19 @@ periodResults.add(periodResult); } + double maxQ = -Double.MAX_VALUE; + for (AnalysisPeriod ap: periodResults) { + double q = ap.getMaxQ(); + if (q > maxQ) { + maxQ = q; + } + } + + double oldMaxQ = parameters.get(row, maxQIndex); + if (oldMaxQ < maxQ) { + parameters.set(row, maxQIndex, maxQ); + } + results.add(km, periodResults.toArray( new AnalysisPeriod[periodResults.size()])); } @@ -559,10 +575,11 @@ } protected static String [] createColumnNames(String [] parameters) { - String [] result = new String[parameters.length + 2]; + String [] result = new String[parameters.length + 3]; result[0] = "km"; result[1] = "chi_sqr"; - System.arraycopy(parameters, 0, result, 2, parameters.length); + result[2] = "max_q"; + System.arraycopy(parameters, 0, result, 3, parameters.length); return result; } }