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.

http://dive4elements.wald.intevation.org