Mercurial > dive4elements > river
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 } |