Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixAnalysisCalculation.java @ 6999:3e93f29281bc
Fix for flys/issue1479: The indices of the dates of the analysis periods where re-mapped wrong.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 12 Sep 2013 16:35:07 +0200 |
parents | 8efef772a488 |
children | 6650485c2c9b |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixAnalysisCalculation.java Thu Sep 12 11:50:39 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixAnalysisCalculation.java Thu Sep 12 16:35:07 2013 +0200 @@ -126,7 +126,7 @@ Function function, Parameters parameters, FixingsOverview overview, - ColumnCache cc + ColumnCache cc ) { Range range = new Range(from, to); @@ -150,15 +150,28 @@ TIntIntHashMap [] col2indices = new TIntIntHashMap[analysisPeriods.length]; + DateRangeFilter [] drfs = new DateRangeFilter[analysisPeriods.length]; + + boolean debug = log.isDebugEnabled(); + for (int i = 0; i < analysisPeriods.length; ++i) { col2indices[i] = new TIntIntHashMap(); + drfs[i] = new DateRangeFilter( + analysisPeriods[i].getFrom(), + analysisPeriods[i].getTo()); + + if (debug) { + log.debug("Analysis period " + (i+1) + " date range: " + + analysisPeriods[i].getFrom() + " - " + + analysisPeriods[i].getTo()); + } } for (int row = 0, R = parameters.size(); row < R; ++row) { double km = parameters.get(row, kmIndex); parameters.get(row, parameterIndices, parameterValues); - // This is the paraterized function for a given km. + // This is the parameterized function for a given km. org.dive4elements.river.artifacts.math.Function instance = function.instantiate(parameterValues); @@ -171,9 +184,7 @@ DateRange analysisPeriod = analysisPeriods[ap]; TIntIntHashMap col2index = col2indices[ap]; - DateRangeFilter drf = new DateRangeFilter( - analysisPeriod.getFrom(), - analysisPeriod.getTo()); + DateRangeFilter drf = drfs[ap]; QWD [] qSectorAverages = new QWD[4]; double [] qSectorStdDevs = new double[4]; @@ -291,8 +302,9 @@ parameters.set(row, maxQIndex, maxQ); } - results.add(km, periodResults.toArray( - new AnalysisPeriod[periodResults.size()])); + AnalysisPeriod [] rap = new AnalysisPeriod[periodResults.size()]; + periodResults.toArray(rap); + results.add(km, rap); } return results;