Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/TkhCalculator.java @ 9522:23d97d60b889
Selection range of D50 values for tkh calculation can now be configured with a river specific table.
author | gernotbelger |
---|---|
date | Mon, 01 Oct 2018 16:37:12 +0200 |
parents | 83e6acdf8fc6 |
children | 144a184a414d |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/TkhCalculator.java Mon Oct 01 16:35:03 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhcalculation/TkhCalculator.java Mon Oct 01 16:37:12 2018 +0200 @@ -9,12 +9,16 @@ */ package org.dive4elements.river.artifacts.sinfo.tkhcalculation; +import java.io.IOException; + import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.artifacts.common.GeneralResultType; import org.dive4elements.river.artifacts.common.ResultRow; import org.dive4elements.river.artifacts.model.Calculation; import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; import org.dive4elements.river.artifacts.sinfo.tkhstate.BedHeightsFinder; +import org.dive4elements.river.artifacts.sinfo.tkhstate.BedQualityD50TimeRangeConfig.BedQualityParseException; +import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException; import org.dive4elements.river.model.River; /** @@ -30,8 +34,6 @@ SUCCESS, NO_W, NO_BED_HEIGHT, NO_DISCHARGE, NO_SOILKIND, NO_D50, NO_VELOCITY, NO_TKH } - private static final int VALID_BED_MEASUREMENT_YEARS = 20; - private final BedQualityD50KmValueFinder bedMeasurementsFinder; private final SoilKindKmValueFinder soilKindFinder; @@ -58,14 +60,7 @@ /* access bed quality data */ final int soundingYear = bedHeightsProvider.getInfo().getYear(); - BedQualityD50KmValueFinder bedMeasurementsFinder = null; - // try { - bedMeasurementsFinder = BedQualityD50KmValueFinder.loadBedMeasurements(problems, river, calcRange, soundingYear, VALID_BED_MEASUREMENT_YEARS); - // } - // catch (final BedQualityParseException | IOException | TsvReaderException e) { - // e.printStackTrace(); - // } - + final BedQualityD50KmValueFinder bedMeasurementsFinder = loadBedMeasurementsFinder(problems, river, calcRange, soundingYear); if (bedMeasurementsFinder == null) return new TkhCalculator(null, waterlevelProvider, dischargeProvider, bedHeightsProvider, null, null); @@ -82,6 +77,18 @@ return new TkhCalculator(bedMeasurementsFinder, waterlevelProvider, dischargeProvider, bedHeightsProvider, soilKindFinder, flowVelocitiesFinder); } + private static BedQualityD50KmValueFinder loadBedMeasurementsFinder(final Calculation problems, final River river, final DoubleRange calcRange, + final int soundingYear) { + + try { + return BedQualityD50KmValueFinder.loadBedMeasurements(problems, river, calcRange, soundingYear); + } + catch (final BedQualityParseException | IOException | TsvReaderException e) { + e.printStackTrace(); + return null; + } + } + private TkhCalculator(final BedQualityD50KmValueFinder bedMeasurementsFinder, final WaterlevelValuesFinder waterlevelProvider, final DischargeValuesFinder dischargeProvider, final BedHeightsFinder bedHeightsProvider, final SoilKindKmValueFinder soilKindFinder, final FlowVelocityModelKmValueFinder flowVelocitiesFinder) {