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 }

http://dive4elements.wald.intevation.org