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;
     }
 }

http://dive4elements.wald.intevation.org