comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/TkhCalculator.java @ 9532:8e6b9cb9486a

Fixed BedQuality finder
author gernotbelger
date Tue, 02 Oct 2018 18:19:44 +0200
parents 144a184a414d
children
comparison
equal deleted inserted replaced
9531:267ac3012150 9532:8e6b9cb9486a
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the 7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
8 * documentation coming with Dive4Elements River for details. 8 * documentation coming with Dive4Elements River for details.
9 */ 9 */
10 package org.dive4elements.river.artifacts.sinfo.tkhcalculation; 10 package org.dive4elements.river.artifacts.sinfo.tkhcalculation;
11 11
12 import java.io.IOException;
13
14 import org.apache.commons.lang.math.DoubleRange; 12 import org.apache.commons.lang.math.DoubleRange;
15 import org.dive4elements.river.artifacts.common.GeneralResultType; 13 import org.dive4elements.river.artifacts.common.GeneralResultType;
16 import org.dive4elements.river.artifacts.common.ResultRow; 14 import org.dive4elements.river.artifacts.common.ResultRow;
17 import org.dive4elements.river.artifacts.model.Calculation; 15 import org.dive4elements.river.artifacts.model.Calculation;
18 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; 16 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
19 import org.dive4elements.river.artifacts.sinfo.tkhstate.BedHeightsFinder; 17 import org.dive4elements.river.artifacts.sinfo.tkhstate.BedHeightsFinder;
20 import org.dive4elements.river.artifacts.sinfo.tkhstate.BedQualityD50TimeRangeConfig.BedQualityParseException;
21 import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException;
22 import org.dive4elements.river.model.River; 18 import org.dive4elements.river.model.River;
23 19
24 /** 20 /**
25 * @author Gernot Belger 21 * @author Gernot Belger
26 */ 22 */
58 return new TkhCalculator(null, waterlevelProvider, dischargeProvider, bedHeightsProvider, null, null); 54 return new TkhCalculator(null, waterlevelProvider, dischargeProvider, bedHeightsProvider, null, null);
59 } 55 }
60 56
61 /* access bed quality data */ 57 /* access bed quality data */
62 final int soundingYear = bedHeightsProvider.getInfo().getYear(); 58 final int soundingYear = bedHeightsProvider.getInfo().getYear();
63 final BedQualityD50KmValueFinder bedMeasurementsFinder = loadBedMeasurementsFinder(problems, river, calcRange, soundingYear); 59 final BedQualityD50KmValueFinder bedMeasurementsFinder = BedQualityD50KmValueFinder.loadBedMeasurements(problems, river, calcRange, soundingYear);
64 if (bedMeasurementsFinder == null) 60 if (bedMeasurementsFinder == null)
65 return new TkhCalculator(null, waterlevelProvider, dischargeProvider, bedHeightsProvider, null, null); 61 return new TkhCalculator(null, waterlevelProvider, dischargeProvider, bedHeightsProvider, null, null);
66 62
67 /* access bed soil kind data */ 63 /* access bed soil kind data */
68 final SoilKindKmValueFinder soilKindFinder = SoilKindKmValueFinder.loadValues(problems, river, calcRange); 64 final SoilKindKmValueFinder soilKindFinder = SoilKindKmValueFinder.loadValues(problems, river, calcRange);
73 final FlowVelocityModelKmValueFinder flowVelocitiesFinder = FlowVelocityModelKmValueFinder.loadValues(problems, river, calcRange, qRange); 69 final FlowVelocityModelKmValueFinder flowVelocitiesFinder = FlowVelocityModelKmValueFinder.loadValues(problems, river, calcRange, qRange);
74 if (flowVelocitiesFinder == null) 70 if (flowVelocitiesFinder == null)
75 return new TkhCalculator(null, waterlevelProvider, dischargeProvider, bedHeightsProvider, null, null); 71 return new TkhCalculator(null, waterlevelProvider, dischargeProvider, bedHeightsProvider, null, null);
76 72
77 return new TkhCalculator(bedMeasurementsFinder, waterlevelProvider, dischargeProvider, bedHeightsProvider, soilKindFinder, flowVelocitiesFinder); 73 return new TkhCalculator(bedMeasurementsFinder, waterlevelProvider, dischargeProvider, bedHeightsProvider, soilKindFinder, flowVelocitiesFinder);
78 }
79
80 private static BedQualityD50KmValueFinder loadBedMeasurementsFinder(final Calculation problems, final River river, final DoubleRange calcRange,
81 final int soundingYear) {
82
83 try {
84 return BedQualityD50KmValueFinder.loadBedMeasurements(problems, river, calcRange, soundingYear);
85 }
86 catch (final BedQualityParseException | IOException | TsvReaderException e) {
87 e.printStackTrace();
88 return null;
89 }
90 } 74 }
91 75
92 private TkhCalculator(final BedQualityD50KmValueFinder bedMeasurementsFinder, final WaterlevelValuesFinder waterlevelProvider, 76 private TkhCalculator(final BedQualityD50KmValueFinder bedMeasurementsFinder, final WaterlevelValuesFinder waterlevelProvider,
93 final DischargeValuesFinder dischargeProvider, final BedHeightsFinder bedHeightsProvider, final SoilKindKmValueFinder soilKindFinder, 77 final DischargeValuesFinder dischargeProvider, final BedHeightsFinder bedHeightsProvider, final SoilKindKmValueFinder soilKindFinder,
94 final FlowVelocityModelKmValueFinder flowVelocitiesFinder) { 78 final FlowVelocityModelKmValueFinder flowVelocitiesFinder) {

http://dive4elements.wald.intevation.org