comparison artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculation.java @ 9499:853f2dafc16e

VegetationZones in CrossSectionsDiagram
author gernotbelger
date Thu, 27 Sep 2018 18:06:26 +0200
parents 53e26734e4d2
children 76c0665888a3
comparison
equal deleted inserted replaced
9496:d8e753d0fdb9 9499:853f2dafc16e
20 import org.dive4elements.river.artifacts.access.RangeAccess; 20 import org.dive4elements.river.artifacts.access.RangeAccess;
21 import org.dive4elements.river.artifacts.common.AbstractResultType; 21 import org.dive4elements.river.artifacts.common.AbstractResultType;
22 import org.dive4elements.river.artifacts.common.GeneralResultType; 22 import org.dive4elements.river.artifacts.common.GeneralResultType;
23 import org.dive4elements.river.artifacts.model.Calculation; 23 import org.dive4elements.river.artifacts.model.Calculation;
24 import org.dive4elements.river.artifacts.model.CalculationResult; 24 import org.dive4elements.river.artifacts.model.CalculationResult;
25 import org.dive4elements.river.artifacts.model.river.RiverInfoProvider;
25 import org.dive4elements.river.artifacts.resources.Resources; 26 import org.dive4elements.river.artifacts.resources.Resources;
26 import org.dive4elements.river.artifacts.sinfo.common.RiverInfoProvider;
27 import org.dive4elements.river.artifacts.sinfo.tkhstate.BedHeightsFinder; 27 import org.dive4elements.river.artifacts.sinfo.tkhstate.BedHeightsFinder;
28 import org.dive4elements.river.artifacts.sinfo.tkhstate.BedHeightsUtils; 28 import org.dive4elements.river.artifacts.sinfo.tkhstate.BedHeightsUtils;
29 import org.dive4elements.river.artifacts.sinfo.tkhstate.DefaultBedHeights; 29 import org.dive4elements.river.artifacts.sinfo.tkhstate.DefaultBedHeights;
30 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils; 30 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils;
31 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; 31 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
111 } 111 }
112 112
113 /** 113 /**
114 * Fills a map of delta-Ws by km-range from the regional scenario input data 114 * Fills a map of delta-Ws by km-range from the regional scenario input data
115 */ 115 */
116 private void fillRangeScenarios(final NavigableMap<Double, List<Double>> rangeScenarios, final RangeAccess calcRange, 116 private void fillRangeScenarios(final NavigableMap<Double, List<Double>> rangeScenarios, final RangeAccess calcRange, final double partFrom,
117 final double partFrom, final double partTo, final int[] deltaWs) { 117 final double partTo, final int[] deltaWs) {
118 final List<Double> nulls = new ArrayList<>(); 118 final List<Double> nulls = new ArrayList<>();
119 final List<Double> dwsm = new ArrayList<>(); 119 final List<Double> dwsm = new ArrayList<>();
120 for (int i = 0; i <= deltaWs.length - 1; i++) { 120 for (int i = 0; i <= deltaWs.length - 1; i++) {
121 nulls.add(null); 121 nulls.add(null);
122 dwsm.add(deltaWs[i] / 100.0); 122 dwsm.add(deltaWs[i] / 100.0);
143 } 143 }
144 144
145 /** 145 /**
146 * Fetches historical and reference bed heights and fills a map of delta-MSHs for all fetched stations in the calc range 146 * Fetches historical and reference bed heights and fills a map of delta-MSHs for all fetched stations in the calc range
147 */ 147 */
148 private void fillRangeScenarios(final NavigableMap<Double, List<Double>> rangeScenarios, final RangeAccess calcRange, 148 private void fillRangeScenarios(final NavigableMap<Double, List<Double>> rangeScenarios, final RangeAccess calcRange, final double partFrom,
149 final double partFrom, final double partTo, final int historicalBedHeightId) { 149 final double partTo, final int historicalBedHeightId) {
150 150
151 // Find relevant default bed-heights 151 // Find relevant default bed-heights
152 final River river = calcRange.getRiver(); 152 final River river = calcRange.getRiver();
153 final List<BedHeight> defaultBedHeights = new DefaultBedHeights(river).getBedHeights(this.problems); 153 final List<BedHeight> defaultBedHeights = new DefaultBedHeights(river).getBedHeights(this.problems);
154 if (defaultBedHeights.isEmpty()) 154 if (defaultBedHeights.isEmpty())
171 rangeScenarios.get(station).add(null); 171 rangeScenarios.get(station).add(null);
172 if (!this.problems.hasProblems()) { 172 if (!this.problems.hasProblems()) {
173 final String msg = Resources.getMsg(this.context.getMeta(), "uinfo_salix_calc.warning.missing_bedheights"); 173 final String msg = Resources.getMsg(this.context.getMeta(), "uinfo_salix_calc.warning.missing_bedheights");
174 this.problems.addProblem(station, msg); 174 this.problems.addProblem(station, msg);
175 } 175 }
176 } 176 } else
177 else
178 rangeScenarios.get(station).add(Double.valueOf(delta)); 177 rangeScenarios.get(station).add(Double.valueOf(delta));
179 } 178 }
180 rangeScenarios.put(Double.valueOf(partTo + 0.0001), nulls); 179 rangeScenarios.put(Double.valueOf(partTo + 0.0001), nulls);
181 } 180 }
182 181
268 return deltas; 267 return deltas;
269 } 268 }
270 return ""; 269 return "";
271 } 270 }
272 271
272 // FIXME: check if needed
273 /** 273 /**
274 * Fetches a iota or waterlevel height of a station from a salix calculation result 274 * Fetches a iota or waterlevel height of a station from a salix calculation result
275 */ 275 */
276 public double fetchStationHeight(final double station, final AbstractResultType resultType, final SalixLineCalculationResult result) { 276 public double fetchStationHeight(final double station, final AbstractResultType resultType, final SalixLineCalculationResult result) {
277 277

http://dive4elements.wald.intevation.org