Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java @ 706:ddd8b37d5cd3
Removed dead code.
flys-artifacts/trunk@2158 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sat, 18 Jun 2011 18:19:34 +0000 |
parents | 853dceead0f4 |
children | 757ff56b43b3 |
comparison
equal
deleted
inserted
replaced
705:853dceead0f4 | 706:ddd8b37d5cd3 |
---|---|
41 import de.intevation.flys.artifacts.model.Calculation2; | 41 import de.intevation.flys.artifacts.model.Calculation2; |
42 import de.intevation.flys.artifacts.model.Calculation3; | 42 import de.intevation.flys.artifacts.model.Calculation3; |
43 import de.intevation.flys.artifacts.model.Calculation4; | 43 import de.intevation.flys.artifacts.model.Calculation4; |
44 import de.intevation.flys.artifacts.model.Segment; | 44 import de.intevation.flys.artifacts.model.Segment; |
45 | 45 |
46 import gnu.trove.TDoubleArrayList; | |
47 | 46 |
48 /** | 47 /** |
49 * The default WINFO artifact. | 48 * The default WINFO artifact. |
50 * | 49 * |
51 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 50 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
83 | 82 |
84 if (logger.isDebugEnabled()) { | 83 if (logger.isDebugEnabled()) { |
85 dumpArtifact(); | 84 dumpArtifact(); |
86 } | 85 } |
87 | 86 |
88 FLYSContext flysContext = null; | 87 FLYSContext flysContext = getFlysContext(context); |
89 if (context instanceof FLYSContext) { | |
90 flysContext = (FLYSContext) context; | |
91 } | |
92 else { | |
93 flysContext = (FLYSContext) context.globalContext(); | |
94 } | |
95 | 88 |
96 StateEngine stateEngine = (StateEngine) flysContext.get( | 89 StateEngine stateEngine = (StateEngine) flysContext.get( |
97 FLYSContext.STATE_ENGINE_KEY); | 90 FLYSContext.STATE_ENGINE_KEY); |
98 | 91 |
99 TransitionEngine transitionEngine = (TransitionEngine) flysContext.get( | 92 TransitionEngine transitionEngine = (TransitionEngine) flysContext.get( |
335 throw new NullPointerException("No Wst found for selected river."); | 328 throw new NullPointerException("No Wst found for selected river."); |
336 } | 329 } |
337 | 330 |
338 WQKms[] results = computeWaterlevelData( | 331 WQKms[] results = computeWaterlevelData( |
339 kms, qs, ws, wst, river.getKmUp()); | 332 kms, qs, ws, wst, river.getKmUp()); |
340 | |
341 // TODO Introduce a caching mechanism here! | |
342 | 333 |
343 return results; | 334 return results; |
344 } | 335 } |
345 | 336 |
346 /** | 337 /** |
403 WstValueTable wst = WstValueTableFactory.getTable(r); | 394 WstValueTable wst = WstValueTableFactory.getTable(r); |
404 if (wst == null) { | 395 if (wst == null) { |
405 throw new NullPointerException("No Wst found for selected river."); | 396 throw new NullPointerException("No Wst found for selected river."); |
406 } | 397 } |
407 | 398 |
408 // TODO Introduce a caching mechanism here! | |
409 | |
410 return computeDurationCurveData(g, wst, locations[0]); | 399 return computeDurationCurveData(g, wst, locations[0]); |
411 } | 400 } |
412 | 401 |
413 | 402 |
414 /** | 403 /** |
496 throw new NullPointerException("No Wst found for selected river."); | 485 throw new NullPointerException("No Wst found for selected river."); |
497 } | 486 } |
498 | 487 |
499 WQKms wqkms = computeDischargeCurveData(wst, locations[0]); | 488 WQKms wqkms = computeDischargeCurveData(wst, locations[0]); |
500 | 489 |
501 // TODO Introduce a caching mechanism here! | |
502 | |
503 return wqkms; | 490 return wqkms; |
504 } | 491 } |
505 | 492 |
506 | 493 |
507 /** | 494 /** |
524 WQKms wqkms = calculation.calculate(wst); | 511 WQKms wqkms = calculation.calculate(wst); |
525 | 512 |
526 // TODO: Report errors to the user | 513 // TODO: Report errors to the user |
527 | 514 |
528 return wqkms; | 515 return wqkms; |
529 } | |
530 | |
531 private static final double [] getBounds(double [][] segments) { | |
532 boolean down = true; | |
533 double min = Double.MAX_VALUE; | |
534 double max = -Double.MAX_VALUE; | |
535 | |
536 for (double [] segment: segments) { | |
537 if (down = segment[0] > segment[1]) { | |
538 if (segment[1] < min) min = segment[1]; | |
539 if (segment[0] > max) max = segment[0]; | |
540 } | |
541 else { | |
542 if (segment[0] < min) min = segment[0]; | |
543 if (segment[1] > max) max = segment[1]; | |
544 } | |
545 } | |
546 | |
547 return down | |
548 ? new double [] { max, min } | |
549 : new double [] { min, max }; | |
550 | |
551 } | |
552 | |
553 protected static double [] extractBoundsKm(River river, double [][] segments) { | |
554 | |
555 if (segments.length == 2) { | |
556 return getBounds(segments); | |
557 } | |
558 | |
559 TDoubleArrayList bounds = new TDoubleArrayList(); | |
560 | |
561 bounds.add(Math.min(segments[0][0], segments[0][1])); | |
562 | |
563 for (int i = 1; i < segments.length-1; ++i) { | |
564 double [] segment = segments[i]; | |
565 | |
566 Gauge gauge = river.determineGauge(segment[0], segment[1]); | |
567 | |
568 if (gauge == null) { | |
569 logger.warn("no gauge found between " + | |
570 segment[0] + " and " + segment[1]); | |
571 bounds.add(0.5*(segment[0] + segment[1])); | |
572 } | |
573 else { | |
574 bounds.add(gauge.getStation().doubleValue()); | |
575 } | |
576 } | |
577 | |
578 bounds.add(Math.max( | |
579 segments[segments.length-1][0], | |
580 segments[segments.length-1][1])); | |
581 | |
582 return bounds.toNativeArray(); | |
583 } | 516 } |
584 | 517 |
585 /** | 518 /** |
586 * Returns the data computed by the discharge longitudinal section | 519 * Returns the data computed by the discharge longitudinal section |
587 * computation. | 520 * computation. |