Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java @ 8053:72760ca2fc2b
Sediment load: dispatch calculation modes.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 18 Jul 2014 11:58:59 +0200 |
parents | 1dae69eff79d |
children | cd35b76f1ef8 |
comparison
equal
deleted
inserted
replaced
8052:1dae69eff79d | 8053:72760ca2fc2b |
---|---|
11 import java.util.Set; | 11 import java.util.Set; |
12 | 12 |
13 import org.dive4elements.river.artifacts.access.SedimentLoadAccess; | 13 import org.dive4elements.river.artifacts.access.SedimentLoadAccess; |
14 import org.dive4elements.river.artifacts.model.Calculation; | 14 import org.dive4elements.river.artifacts.model.Calculation; |
15 import org.dive4elements.river.artifacts.model.CalculationResult; | 15 import org.dive4elements.river.artifacts.model.CalculationResult; |
16 import org.dive4elements.river.artifacts.model.RiverFactory; | |
16 import org.apache.log4j.Logger; | 17 import org.apache.log4j.Logger; |
17 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData; | 18 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData; |
18 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Value; | 19 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Value; |
19 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Station; | 20 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Station; |
21 import org.dive4elements.river.model.River; | |
22 import org.dive4elements.river.utils.DoubleUtil; | |
20 | 23 |
21 public class SedimentLoadDataCalculation | 24 public class SedimentLoadDataCalculation |
22 extends Calculation | 25 extends Calculation |
23 { | 26 { |
24 private static final Logger log = Logger | 27 private static final Logger log = Logger |
171 this.from = from; | 174 this.from = from; |
172 this.to = to; | 175 this.to = to; |
173 return internalCalculate(); | 176 return internalCalculate(); |
174 } | 177 } |
175 | 178 |
176 return new CalculationResult(); | 179 return new CalculationResult(this); |
177 } | 180 } |
178 | 181 |
179 private CalculationResult internalCalculate() { | 182 private CalculationResult internalCalculate() { |
183 if ("year".equals(yearEpoch)) return calculateYears(); | |
184 if ("epoch".equals(yearEpoch)) return calculateEpochs(); | |
185 if ("off_epoch".equals(yearEpoch)) return calculateOffEpochs(); | |
186 | |
187 // TODO: i18n | |
188 addProblem("minfo.sediment.load.unknown.calc.mode"); | |
189 | |
190 return new CalculationResult(this); | |
191 } | |
192 | |
193 private CalculationResult calculateYears() { | |
180 // TODO: Implement me! | 194 // TODO: Implement me! |
181 return null; | 195 return null; |
182 } | 196 } |
183 | 197 |
184 private static final double sum(double [] values) { | 198 private CalculationResult calculateEpochs() { |
185 double sum = 0.0; | 199 // TODO: Implement me! |
186 for (double value: values) { | 200 return null; |
187 sum += value; | 201 } |
188 } | 202 |
189 return sum; | 203 private CalculationResult calculateOffEpochs() { |
204 // TODO: Implement me! | |
205 return null; | |
206 } | |
207 | |
208 /** Figure out flow direction of river. */ | |
209 private boolean isKmUp() { | |
210 River r = RiverFactory.getRiver(river); | |
211 if (r == null) { | |
212 addProblem("minfo.missing.river"); | |
213 return true; | |
214 } | |
215 return r.getKmUp(); | |
190 } | 216 } |
191 | 217 |
192 public double[][] sum( | 218 public double[][] sum( |
193 SedimentLoadData sld, | 219 SedimentLoadData sld, |
194 int [] grainFractions, | 220 int [] grainFractions, |
226 } else { | 252 } else { |
227 values[i] = sum.getSum(); | 253 values[i] = sum.getSum(); |
228 } | 254 } |
229 } | 255 } |
230 result[0][j] = station.getStation(); | 256 result[0][j] = station.getStation(); |
231 result[1][j] = sum(values); | 257 result[1][j] = DoubleUtil.sum(values); |
232 } | 258 } |
233 | 259 |
234 // TODO: Handle 'virtual' measument stations 'from' and 'to'. | 260 // TODO: Handle 'virtual' measument stations 'from' and 'to'. |
235 | 261 |
236 return result; | 262 return result; |