Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/TkhCalculation.java @ 8946:5d5d482da3e9
Implementing SINFO - FlowDepthMinMax calculation
author | gernotbelger |
---|---|
date | Tue, 13 Mar 2018 18:49:33 +0100 |
parents | 11bf13cf0463 |
children | a4f1ac81f26d |
comparison
equal
deleted
inserted
replaced
8945:4a6b6a3c279c | 8946:5d5d482da3e9 |
---|---|
29 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; | 29 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; |
30 import org.dive4elements.river.artifacts.sinfo.common.RiverInfoProvider; | 30 import org.dive4elements.river.artifacts.sinfo.common.RiverInfoProvider; |
31 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.DischargeValuesFinder; | 31 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.DischargeValuesFinder; |
32 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.Tkh; | 32 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.Tkh; |
33 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.TkhCalculator; | 33 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.TkhCalculator; |
34 import org.dive4elements.river.artifacts.sinfo.tkhcalculation.WaterlevelValuesFinder; | |
34 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; | 35 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; |
35 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils; | 36 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils; |
36 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; | 37 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; |
37 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; | 38 import org.dive4elements.river.artifacts.sinfo.util.WstInfo; |
38 import org.dive4elements.river.artifacts.states.WaterlevelData; | 39 import org.dive4elements.river.artifacts.states.WaterlevelData; |
141 | 142 |
142 final int size = wkms.size(); | 143 final int size = wkms.size(); |
143 for (int i = 0; i < size; i++) { | 144 for (int i = 0; i < size; i++) { |
144 | 145 |
145 final double station = wkms.getKm(i); | 146 final double station = wkms.getKm(i); |
146 final double wst = wkms.getW(i); | |
147 | 147 |
148 /* find the right calculator (i.e. bedheigh) depending on station, there should only be one maximal */ | 148 /* find the right calculator (i.e. bedheigh) depending on station, there should only be one maximal */ |
149 final TkhCalculator tkhCalculator = findCalculator(calculatorsByRanges, station); | 149 final TkhCalculator tkhCalculator = findCalculator(calculatorsByRanges, station); |
150 if (tkhCalculator == null) | 150 if (tkhCalculator == null) |
151 continue; | 151 continue; |
152 | 152 |
153 final Tkh tkh = tkhCalculator.getTkh(station, wst); | 153 final Tkh tkh = tkhCalculator.getTkh(station); |
154 | 154 |
155 final String description = descBuilder.getDesc(wkms); | 155 final String description = descBuilder.getDesc(wkms); |
156 final String gaugeLabel = riverInfoProvider.findGauge(station); | 156 final String gaugeLabel = riverInfoProvider.findGauge(station); |
157 final String location = riverInfoProvider.getLocation(station); | 157 final String location = riverInfoProvider.getLocation(station); |
158 | 158 |
183 | 183 |
184 final BedHeightInfo info = bedHeightsProvider.getInfo(); | 184 final BedHeightInfo info = bedHeightsProvider.getInfo(); |
185 | 185 |
186 final NumberRange range = new NumberRange(info.getFrom(), info.getTo()); | 186 final NumberRange range = new NumberRange(info.getFrom(), info.getTo()); |
187 | 187 |
188 final WaterlevelValuesFinder waterlevelProvider = WaterlevelValuesFinder.fromKms(wkms); | |
188 final DischargeValuesFinder dischargeProvider = DischargeValuesFinder.fromKms(wkms); | 189 final DischargeValuesFinder dischargeProvider = DischargeValuesFinder.fromKms(wkms); |
189 | 190 |
190 /* initialize tkh calculator */ | 191 /* initialize tkh calculator */ |
191 final TkhCalculator tkhCalculator = TkhCalculator.buildTkhCalculator(true, this.context, problems, wstLabel, riverInfoProvider.getRiver(), | 192 final TkhCalculator tkhCalculator = TkhCalculator.buildTkhCalculator(true, this.context, problems, wstLabel, riverInfoProvider.getRiver(), |
192 calcRange, dischargeProvider, bedHeightsProvider); | 193 calcRange, waterlevelProvider, dischargeProvider, bedHeightsProvider); |
193 | 194 |
194 if (tkhCalculator != null) { | 195 if (tkhCalculator != null) { |
195 /* just ignore null ones, problems have already been updated by buildTkhCalculator() */ | 196 /* just ignore null ones, problems have already been updated by buildTkhCalculator() */ |
196 calculatorByRanges.put(range, tkhCalculator); | 197 calculatorByRanges.put(range, tkhCalculator); |
197 } | 198 } |