Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFactory.java @ 6964:5a348e3df0f8
SedimentLoadFactory: Extracted method to find range of matching
measurement station.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 05 Sep 2013 15:23:54 +0200 |
parents | d4108d6c4000 |
children | 69bf96202df4 |
comparison
equal
deleted
inserted
replaced
6963:aa1d681ee6eb | 6964:5a348e3df0f8 |
---|---|
484 return load; | 484 return load; |
485 } | 485 } |
486 return new SedimentLoad(); | 486 return new SedimentLoad(); |
487 } | 487 } |
488 | 488 |
489 protected static Range findMeasurementStationRange( | |
490 TreeMap<Double, MeasurementStation> stations, | |
491 double km | |
492 ) { | |
493 MeasurementStation station = stations.get(km); | |
494 MeasurementStation nextStation = null; | |
495 if (stations.ceilingEntry(km + 0.1d) != null) { | |
496 nextStation = stations.ceilingEntry(km + 0.1d).getValue(); | |
497 } | |
498 Range range = null; | |
499 if (station == null) { | |
500 return null; | |
501 } | |
502 else { | |
503 if (nextStation != null) | |
504 range = new Range(station.getRange().getA().doubleValue(), | |
505 nextStation.getRange().getA().doubleValue()); | |
506 else { | |
507 // TODO end-of-river instead of B. | |
508 range = new Range(station.getRange().getA().doubleValue(), | |
509 station.getRange().getB().doubleValue()); | |
510 } | |
511 } | |
512 return range; | |
513 } | |
489 | 514 |
490 /** | 515 /** |
491 * Run query with grain parameter set to fraction, feed result into | 516 * Run query with grain parameter set to fraction, feed result into |
492 * load. Create load if null. | 517 * load. Create load if null. |
493 * | 518 * |
518 } | 543 } |
519 | 544 |
520 for (int i = 0; i < results.size(); i++) { | 545 for (int i = 0; i < results.size(); i++) { |
521 Object[] row = results.get(i); | 546 Object[] row = results.get(i); |
522 double km = (Double)row[3]; | 547 double km = (Double)row[3]; |
523 MeasurementStation station = stations.get(km); | 548 Range range = findMeasurementStationRange(stations, km); |
524 MeasurementStation nextStation = null; | 549 if (range == null) { |
525 if (stations.ceilingEntry(km + 0.1d) != null) { | |
526 nextStation = stations.ceilingEntry(km + 0.1d).getValue(); | |
527 } | |
528 Range range = null; | |
529 if (station == null) { | |
530 log.warn("No measurement station for " + fraction + " km " + km); | 550 log.warn("No measurement station for " + fraction + " km " + km); |
531 continue; | 551 continue; |
532 } | |
533 else { | |
534 if (nextStation != null) | |
535 range = new Range(station.getRange().getA().doubleValue(), | |
536 nextStation.getRange().getA().doubleValue()); | |
537 else { | |
538 // TODO end-of-river instead of B. | |
539 range = new Range(station.getRange().getA().doubleValue(), | |
540 station.getRange().getB().doubleValue()); | |
541 } | |
542 } | 552 } |
543 double v = -1; | 553 double v = -1; |
544 if (row[2] != null) { | 554 if (row[2] != null) { |
545 v = ((Double)row[2]).doubleValue(); | 555 v = ((Double)row[2]).doubleValue(); |
546 } | 556 } |