Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedQualityCalculation.java @ 3784:9f9d5ada96ca
Merged revisions 5498-5499 via svnmerge from
file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk
........
r5498 | rrenkert | 2012-09-17 16:38:47 +0200 (Mo, 17 Sep 2012) | 3 lines
Refactor MINFO bed quality resultsets and facets.
........
r5499 | rrenkert | 2012-09-17 16:47:05 +0200 (Mo, 17 Sep 2012) | 2 lines
Fixed date range in minfo bed quality result.
........
flys-artifacts/tags/2.9.1@5530 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 19 Sep 2012 14:56:13 +0000 |
parents | 7fa38f8bcd8d |
children | a5f65e8983be |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedQualityCalculation.java Mon Sep 17 10:12:32 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedQualityCalculation.java Wed Sep 19 14:56:13 2012 +0000 @@ -99,55 +99,50 @@ to, dr.getFrom(), dr.getTo()); + BedQualityResult result = new BedQualityResult(); + result.setDateRange(dr); if (bedDiameter != null) { + result.add(calculateBedParameter(bedMeasurements, dr)); for (String bd : bedDiameter) { - BedQualityResult bedResult = + BedDiameterResult bedResult = calculateBed(bedMeasurements, bd, dr); // Avoid adding empty result sets. if (!bedResult.isEmpty()) { - results.add(bedResult); + result.add(bedResult); } } } if (bedloadDiameter != null) { for (String bld : bedloadDiameter) { - BedQualityResult loadResult = + BedloadDiameterResult loadResult = calculateBedload(loadMeasurements, bld, dr); - results.add(loadResult); + result.add(loadResult); } } + results.add(result); } return new CalculationResult( results.toArray(new BedQualityResult[results.size()]), this); } - protected BedQualityResult calculateBed( + private BedParametersResult calculateBedParameter( QualityMeasurements qm, - String diameter, - DateRange range + DateRange dr ) { List<Double> kms = qm.getKms(); + QualityMeasurements capFiltered = filterCapMeasurements(qm); + QualityMeasurements subFiltered = filterSubMeasurements(qm); TDoubleArrayList location = new TDoubleArrayList(); - TDoubleArrayList avDiameterCap = new TDoubleArrayList(); - TDoubleArrayList avDiameterSub = new TDoubleArrayList(); TDoubleArrayList porosityCap = new TDoubleArrayList(); TDoubleArrayList porositySub = new TDoubleArrayList(); TDoubleArrayList densityCap = new TDoubleArrayList(); TDoubleArrayList densitySub = new TDoubleArrayList(); - for (double km : kms) { - //Filter cap and sub measurements. - QualityMeasurements capFiltered = filterCapMeasurements(qm); - QualityMeasurements subFiltered = filterSubMeasurements(qm); - - List<QualityMeasurement> cm = capFiltered.getMeasurements(km); - List<QualityMeasurement> sm = subFiltered.getMeasurements(km); - - double avCap = calculateAverage(cm, diameter); - double avSub = calculateAverage(sm, diameter); - double[] pCap = calculatePorosity(capFiltered, km, diameter); - double[] pSub = calculatePorosity(subFiltered, km, diameter); + + for(double km : kms) { + double[] pCap = calculatePorosity(capFiltered, km); + double[] pSub = calculatePorosity(subFiltered, km); double[] dCap = calculateDensity(capFiltered, pCap); double[] dSub = calculateDensity(subFiltered, pSub); @@ -164,25 +159,51 @@ dSubRes += dSub[i]; } location.add(km); - avDiameterCap.add(avCap); - avDiameterSub.add(avSub); porosityCap.add((pCapRes / pCap.length) * 100 ); porositySub.add((pSubRes / pSub.length) * 100); densityCap.add((dCapRes / dCap.length) / 1000); densitySub.add((dSubRes / dSub.length) / 1000); + } - return new BedBedQualityResult( - diameter, - avDiameterCap, - avDiameterSub, + + return new BedParametersResult( location, - range, porosityCap, porositySub, densityCap, densitySub); } + protected BedDiameterResult calculateBed( + QualityMeasurements qm, + String diameter, + DateRange range + ) { + List<Double> kms = qm.getKms(); + TDoubleArrayList location = new TDoubleArrayList(); + TDoubleArrayList avDiameterCap = new TDoubleArrayList(); + TDoubleArrayList avDiameterSub = new TDoubleArrayList(); + for (double km : kms) { + //Filter cap and sub measurements. + QualityMeasurements capFiltered = filterCapMeasurements(qm); + QualityMeasurements subFiltered = filterSubMeasurements(qm); + + List<QualityMeasurement> cm = capFiltered.getMeasurements(km); + List<QualityMeasurement> sm = subFiltered.getMeasurements(km); + + double avCap = calculateAverage(cm, diameter); + double avSub = calculateAverage(sm, diameter); + location.add(km); + avDiameterCap.add(avCap); + avDiameterSub.add(avSub); + } + return new BedDiameterResult( + diameter, + avDiameterCap, + avDiameterSub, + location); + } + private double[] calculateDensity( QualityMeasurements capFiltered, double[] porosity @@ -196,8 +217,7 @@ private double[] calculatePorosity( QualityMeasurements capFiltered, - double km, - String diameter + double km ) { List<QualityMeasurement> list = capFiltered.getMeasurements(km); double[] results = new double[list.size()]; @@ -213,7 +233,7 @@ return results; } - protected BedQualityResult calculateBedload( + protected BedloadDiameterResult calculateBedload( QualityMeasurements qm, String diameter, DateRange range @@ -227,7 +247,7 @@ location.add(km); avDiameter.add(mid); } - return new BedLoadBedQualityResult( + return new BedloadDiameterResult( diameter, avDiameter, location,