comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculation.java @ 9398:929d645691ae

Fixed: sinfo flood duration: no w/q problem report with unchecked wspl option
author mschaefer
date Mon, 13 Aug 2018 17:27:52 +0200
parents f318359b81a2
children 853f2dafc16e
comparison
equal deleted inserted replaced
9397:6e7094368e97 9398:929d645691ae
18 import org.dive4elements.river.artifacts.model.CalculationResult; 18 import org.dive4elements.river.artifacts.model.CalculationResult;
19 import org.dive4elements.river.artifacts.model.WQDay; 19 import org.dive4elements.river.artifacts.model.WQDay;
20 import org.dive4elements.river.artifacts.resources.Resources; 20 import org.dive4elements.river.artifacts.resources.Resources;
21 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; 21 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact;
22 import org.dive4elements.river.artifacts.sinfo.common.RiverInfoProvider; 22 import org.dive4elements.river.artifacts.sinfo.common.RiverInfoProvider;
23 import org.dive4elements.river.artifacts.sinfo.flood_duration.RiversideRadioChoice.RiversideChoiceKey;
24 import org.dive4elements.river.artifacts.sinfo.tkhstate.WinfoArtifactWrapper; 23 import org.dive4elements.river.artifacts.sinfo.tkhstate.WinfoArtifactWrapper;
25 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils; 24 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils;
26 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; 25 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
27 import org.dive4elements.river.jfree.StickyAxisAnnotation; 26 import org.dive4elements.river.jfree.StickyAxisAnnotation;
28 import org.dive4elements.river.model.Attribute.AttributeKey; 27 import org.dive4elements.river.model.Attribute.AttributeKey;
49 final FloodDurationAccess access = new FloodDurationAccess(sinfo); 48 final FloodDurationAccess access = new FloodDurationAccess(sinfo);
50 final River river = access.getRiver(); 49 final River river = access.getRiver();
51 final RiverInfo riverInfo = new RiverInfo(river); 50 final RiverInfo riverInfo = new RiverInfo(river);
52 final DoubleRange calcRange = access.getRange(); 51 final DoubleRange calcRange = access.getRange();
53 52
54 final RiverInfoProvider infoProvider = RiverInfoProvider.forRange(this.context, river, calcRange); 53 final RiverInfoProvider infoProvider = RiverInfoProvider.forRange(this.context, river, calcRange, true);
55 final String calcModeLabel = Resources.getMsg(this.context.getMeta(), sinfo.getCalculationMode().name()); 54 final String calcModeLabel = Resources.getMsg(this.context.getMeta(), sinfo.getCalculationMode().name());
56 final String label = Resources.getMsg(this.context.getMeta(), access.getRiverside().getKey()); 55 final String label = Resources.getMsg(this.context.getMeta(), access.getRiverside().getKey());
57 56
58 final Calculation problems = new Calculation(); 57 final Calculation problems = new Calculation();
59 58
63 winfo.addStringData("ld_mode", "distance"); 62 winfo.addStringData("ld_mode", "distance");
64 winfo.addStringData("ld_step", "100"); 63 winfo.addStringData("ld_step", "100");
65 64
66 final FloodDurationCalculationResults results = new FloodDurationCalculationResults(calcModeLabel, user, riverInfo, calcRange); 65 final FloodDurationCalculationResults results = new FloodDurationCalculationResults(calcModeLabel, user, riverInfo, calcRange);
67 66
68 calculateResult(label, calcRange, infoProvider, access.getRiverside(), problems, winfo, results); 67 calculateResult(label, calcRange, infoProvider, access, problems, winfo, results);
69 68
70 return new CalculationResult(results, problems); 69 return new CalculationResult(results, problems);
71 } 70 }
72 71
73 /** 72 /**
74 * Calculates the flood durations of the infrastructures of a km range of a river 73 * Calculates the flood durations of the infrastructures of a km range of a river
75 */ 74 */
76 private void calculateResult(final String label, final DoubleRange calcRange, final RiverInfoProvider riverInfoProvider, 75 private void calculateResult(final String label, final DoubleRange calcRange, final RiverInfoProvider riverInfoProvider,
77 final RiversideChoiceKey riverside, final Calculation problems, final WINFOArtifact winfo, final FloodDurationCalculationResults results) { 76 final FloodDurationAccess access, final Calculation problems, final WINFOArtifact winfo, final FloodDurationCalculationResults results) {
78 77
79 final FloodDurationCalculator calculator = new FloodDurationCalculator(this.context, riverInfoProvider); 78 final FloodDurationCalculator calculator = new FloodDurationCalculator(this.context, riverInfoProvider);
80 calculator.execute(problems, label, calcRange, riverside, winfo, results); 79 calculator.execute(problems, label, calcRange, access.getRiverside(), access.getIsWspl(), winfo, results);
81 } 80 }
82 81
83 /** 82 /**
84 * Calculates the flood duration curve of a station 83 * Calculates the flood duration curve of a station
85 */ 84 */
87 86
88 /* access input data */ 87 /* access input data */
89 final FloodDurationAccess access = new FloodDurationAccess(sinfo); 88 final FloodDurationAccess access = new FloodDurationAccess(sinfo);
90 final River river = access.getRiver(); 89 final River river = access.getRiver();
91 final DoubleRange calcRange = access.getRange(); 90 final DoubleRange calcRange = access.getRange();
92 final RiverInfoProvider infoProvider = RiverInfoProvider.forRange(this.context, river, calcRange); 91 final RiverInfoProvider infoProvider = RiverInfoProvider.forRange(this.context, river, calcRange, true);
93 92
94 final Calculation problems = new Calculation(); 93 final Calculation problems = new Calculation();
95 94
96 // Calculate the selected main values, if any 95 // Calculate the selected main values, if any
97 /* misuse winfo-artifact to calculate waterlevels in the same way */ 96 /* misuse winfo-artifact to calculate waterlevels in the same way */

http://dive4elements.wald.intevation.org