comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelFetcher.java @ 8883:a536e1aacf0f

Further work on SINFO-FlowDepth
author gernotbelger
date Fri, 09 Feb 2018 18:07:22 +0100
parents 6b93a2498e06
children 5d5d482da3e9
comparison
equal deleted inserted replaced
8882:f762fadc5313 8883:a536e1aacf0f
21 import org.dive4elements.river.artifacts.access.FixRealizingAccess; 21 import org.dive4elements.river.artifacts.access.FixRealizingAccess;
22 import org.dive4elements.river.artifacts.model.CalculationResult; 22 import org.dive4elements.river.artifacts.model.CalculationResult;
23 import org.dive4elements.river.artifacts.model.Segment; 23 import org.dive4elements.river.artifacts.model.Segment;
24 import org.dive4elements.river.artifacts.model.WKms; 24 import org.dive4elements.river.artifacts.model.WKms;
25 import org.dive4elements.river.artifacts.model.WQKms; 25 import org.dive4elements.river.artifacts.model.WQKms;
26 import org.dive4elements.river.artifacts.model.fixings.FixRealizingCalculationExtended;
26 import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult; 27 import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult;
27 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; 28 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
28 import org.dive4elements.river.utils.RiverUtils; 29 import org.dive4elements.river.utils.RiverUtils;
29 30
30 /** 31 /**
84 log.debug("WDifferencesState obtain data from StaticWKms"); 85 log.debug("WDifferencesState obtain data from StaticWKms");
85 86
86 final WKms wkms = staticWKms.getWKms(idx, from, to); 87 final WKms wkms = staticWKms.getWKms(idx, from, to);
87 88
88 if (wkms != null) 89 if (wkms != null)
89 return new WaterlevelData(wkms); 90 {
91 // FIXME: woher bekommen?: eventuell zusammenhang mit tabelle 'time_intervals'
92 final int year = -1;
93 return new WaterlevelData(wkms, year);
94 }
90 95
91 log.error("No WKms from Static artifact for this range."); 96 log.error("No WKms from Static artifact for this range.");
92 return null; 97 return null;
93 } 98 }
94 99
98 log.debug("WDifferencesState obtain data from StaticWQKms"); 103 log.debug("WDifferencesState obtain data from StaticWQKms");
99 104
100 final WQKms wkms = staticWKms.getWQKms(from, to); 105 final WQKms wkms = staticWKms.getWQKms(from, to);
101 106
102 if (wkms != null) 107 if (wkms != null)
103 return new WaterlevelData(wkms); 108 {
109 // FIXME: woher bekommen?: eventuell zusammenhang mit tabelle 'time_intervals'
110 final int year = -1;
111 return new WaterlevelData(wkms, year);
112 }
104 113
105 log.error("No WKms from Static artifact for this range."); 114 log.error("No WKms from Static artifact for this range.");
106 return null; 115 return null;
107 } 116 }
108 117
120 if (wkms.length < idx + 1) { 129 if (wkms.length < idx + 1) {
121 log.warn("Not enough waterlevels in artifact."); 130 log.warn("Not enough waterlevels in artifact.");
122 return null; 131 return null;
123 } 132 }
124 133
125 return new WaterlevelData(wkms[idx]).filterByRange(from, to); 134 // REAMRK: W_INFO results does not know any 'year'
135 final int year = -1;
136 return new WaterlevelData(wkms[idx], year).filterByRange(from, to);
126 } 137 }
127 138
128 private WaterlevelData fetchFixationArtifactWaterlevel(final CallContext context, 139 private WaterlevelData fetchFixationArtifactWaterlevel(final CallContext context,
129 final FixationArtifact fixation, final int idx, final double from, final double to) { 140 final FixationArtifact fixation, final int idx, final double from, final double to) {
130 141
136 // Get W/Q input per gauge for this case. 147 // Get W/Q input per gauge for this case.
137 final FixRealizingAccess fixAccess = new FixRealizingAccess(fixation); 148 final FixRealizingAccess fixAccess = new FixRealizingAccess(fixation);
138 final List<Segment> segments = fixAccess.getSegments(); 149 final List<Segment> segments = fixAccess.getSegments();
139 final boolean isFixRealize = (segments != null && !segments.isEmpty()); 150 final boolean isFixRealize = (segments != null && !segments.isEmpty());
140 151
152 /* ugly but necessary to keep this logic at least a bit inside the FixRealizing stuff */
153 final FixRealizingCalculationExtended calculation = new FixRealizingCalculationExtended(fixAccess);
154 final int year = calculation.determineMeanYear();
155
141 // REMARK: same logic as in WaterlevelExporter 156 // REMARK: same logic as in WaterlevelExporter
142 final boolean showAllGauges = isFixRealize; 157 final boolean showAllGauges = isFixRealize;
143 158
144 return new WaterlevelData(frR.getWQKms()[idx], showAllGauges).filterByRange(from, to); 159 return new WaterlevelData(frR.getWQKms()[idx], year, showAllGauges).filterByRange(from, to);
145 } 160 }
146 } 161 }

http://dive4elements.wald.intevation.org