Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java @ 2993:70469e3d34b9
FixA: Made Delta W/t calculation finally work
flys-artifacts/trunk@4545 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 28 May 2012 20:59:27 +0000 |
parents | 0abdede5a0b8 |
children | a2b265b9b2f7 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Mon May 28 18:35:01 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java Mon May 28 20:59:27 2012 +0000 @@ -251,6 +251,8 @@ FixingsOverview overview, Parameters results ) { + boolean debug = log.isDebugEnabled(); + DeltaWTsKM deltaWTsKM = new DeltaWTsKM(results.size()); Column [][] analysisColumns = getAnalysisColumns(overview); @@ -263,8 +265,10 @@ double [] ow = new double[1]; + int kmIdx = results.columnIndex("km"); + for (int i = 0, N = results.size(); i < N; ++i) { - double km = results.get(i, "km"); + double km = results.get(i, kmIdx); results.get(i, parameterIndices, parameterValues); DeltaWTsKM.KM dwtkm = new DeltaWTsKM.KM(km); @@ -278,18 +282,24 @@ for (int j = 0; j < analysisColumns.length; ++j) { Column [] periodColumns = analysisColumns[j]; + int failedQ = 0; + int failedW = 0; + int failedC = 0; + for (int k = 0; k < periodColumns.length; ++k) { Column pc = periodColumns[k]; // Q from real data. double q = pc.data.getQ(km); if (Double.isNaN(q)) { + ++failedQ; continue; } // Calculate W from function. double nw = instance.value(q); if (Double.isNaN(nw)) { + ++failedC; continue; } @@ -297,6 +307,7 @@ pc.data.getW(km, ow); if (Double.isNaN(ow[0])) { + ++failedW; continue; } @@ -309,6 +320,13 @@ dwtkm.add(deltaWT); } + if (debug) { + log.debug("failed W: " + failedW); + log.debug("failed Q: " + failedQ); + log.debug("failed C: " + failedC); + log.debug("input size: " + periodColumns.length); + log.debug("outpt size: " + dwtkm.size()); + } } } @@ -335,6 +353,11 @@ /** Fetch meta and data columns for analysis periods. */ protected Column [][] getAnalysisColumns(FixingsOverview overview) { + boolean debug = log.isDebugEnabled(); + if (debug) { + log.debug("number analysis periods: " + analysisPeriods.length); + } + Column columns [][] = new Column[analysisPeriods.length][]; Range range = new Range(from, to); @@ -360,6 +383,10 @@ List<Fixing.Column> metaCols = overview.filter(range, filter); + if (debug) { + log.debug("number of filtered columns: " + metaCols.size()); + } + ArrayList<Column> cols = new ArrayList<Column>(metaCols.size()); // Only use columns which have data. @@ -369,6 +396,10 @@ cols.add(new Column(meta, data)); } } + + if (debug) { + log.debug("failed loading: " + (metaCols.size()-cols.size())); + } columns[i] = cols.toArray(new Column[cols.size()]); }