Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java @ 637:f0c1250d1e7b
Make "Berechnungsart 4" work independent of flow direction. Commented out back jump correction temporarily.
flys-artifacts/trunk@2013 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 26 May 2011 16:54:16 +0000 |
parents | 58276db49b16 |
children | 2dbbb5be30a1 |
comparison
equal
deleted
inserted
replaced
636:58276db49b16 | 637:f0c1250d1e7b |
---|---|
519 if (wst == null) { | 519 if (wst == null) { |
520 logger.error("No wst found for selected river."); | 520 logger.error("No wst found for selected river."); |
521 return new WQKms[0]; | 521 return new WQKms[0]; |
522 } | 522 } |
523 | 523 |
524 double [][] segments = getSplittedDistance(); | 524 double [][] segments = getRanges(); |
525 | |
526 if (logger.isDebugEnabled()) { | |
527 logger.debug("segments ----------------- enter"); | |
528 for (double [] segment: segments) { | |
529 logger.debug(" " + joinDoubles(segment)); | |
530 } | |
531 logger.debug("segments ----------------- leave"); | |
532 } | |
525 | 533 |
526 if (segments.length < 1) { | 534 if (segments.length < 1) { |
527 logger.warn("no segments given"); | 535 logger.warn("no segments given"); |
528 return new WQKms[0]; | 536 return new WQKms[0]; |
529 } | 537 } |
615 double [] okms = getKms(new double [] { | 623 double [] okms = getKms(new double [] { |
616 boundKms[0], boundKms[boundKms.length-1] }); | 624 boundKms[0], boundKms[boundKms.length-1] }); |
617 | 625 |
618 ArrayList<WQKms> results = new ArrayList<WQKms>(); | 626 ArrayList<WQKms> results = new ArrayList<WQKms>(); |
619 | 627 |
628 int referenceIndex = kmUp ? 0 : boundKms.length-1; | |
629 | |
620 for (int i = 0; i < iqs.length; ++i) { | 630 for (int i = 0; i < iqs.length; ++i) { |
621 double [] iqsi = iqs[i]; | 631 double [] iqsi = iqs[i]; |
622 | 632 |
623 QPosition qPosition = wst.interpolate( | 633 QPosition qPosition = wst.interpolate( |
624 iqsi[0], | 634 iqsi[0], |
625 kmUp ? 0 : boundKms.length-1, | 635 referenceIndex, |
626 boundKms, boundWs, boundQs); | 636 boundKms, boundWs, boundQs); |
627 | 637 |
628 if (qPosition == null) { | 638 if (qPosition == null) { |
629 logger.warn("interpolation failed for " + iqsi[i]); | 639 logger.warn("interpolation failed for " + iqsi[i]); |
630 continue; | 640 continue; |
642 double [] oqs = new double[okms.length]; | 652 double [] oqs = new double[okms.length]; |
643 double [] ows = new double[okms.length]; | 653 double [] ows = new double[okms.length]; |
644 | 654 |
645 wst.interpolate(okms, ows, oqs, qPosition, remap); | 655 wst.interpolate(okms, ows, oqs, qPosition, remap); |
646 | 656 |
657 /* | |
647 BackJumpCorrector bjc = new BackJumpCorrector(); | 658 BackJumpCorrector bjc = new BackJumpCorrector(); |
648 if (bjc.doCorrection(okms, ows)) { | 659 if (bjc.doCorrection(okms, ows)) { |
649 logger.debug("Discharge longitudinal section has backjumps."); | 660 logger.debug("Discharge longitudinal section has backjumps."); |
650 results.add(new WQCKms(okms, oqs, ows, bjc.getCorrected())); | 661 results.add(new WQCKms(okms, oqs, ows, bjc.getCorrected())); |
651 } | 662 } |
652 else { | 663 else { |
664 */ | |
653 results.add(new WQKms(okms, oqs, ows)); | 665 results.add(new WQKms(okms, oqs, ows)); |
654 } | 666 //} |
655 } | 667 } |
656 | 668 |
657 WQKms [] wqkms = results.toArray(new WQKms[results.size()]); | 669 WQKms [] wqkms = results.toArray(new WQKms[results.size()]); |
658 | 670 |
659 setDischargeLongitudinalSectionNames(wqkms, iqs, isQ() ? "Q" : "W"); | 671 setDischargeLongitudinalSectionNames(wqkms, iqs, isQ() ? "Q" : "W"); |