Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/WINFOArtifact.java @ 6301:20a32dbdbb59
Remove discharge table scaling but add reference system to W
- Discharge_Tables are now always W[cm] Q[m³] no need for
special case handling depending on historical / master tables
- W now has a referenceSystem value that can be CENTIMETER_AT_GAUGE or
METER_OVER_REFPOINT. The default is METER_OVER_REFPOINT as this is
the case for everything except the objects created from discharge tables
Known issue: WINFO input validation is currently broken as it still scales
the user input.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 12 Jun 2013 10:54:27 +0200 |
parents | a0078e5e3b39 |
children | 5c880567a020 |
comparison
equal
deleted
inserted
replaced
6300:0711ce5ca701 | 6301:20a32dbdbb59 |
---|---|
743 logger.warn("No master discharge table found for gauge '" | 743 logger.warn("No master discharge table found for gauge '" |
744 + g.getName() + "'"); | 744 + g.getName() + "'"); |
745 return null; | 745 return null; |
746 } | 746 } |
747 | 747 |
748 double [][] values = DischargeTables.loadDischargeTableValues(dt, 1); | 748 double [][] values = DischargeTables.loadDischargeTableValues(dt); |
749 | 749 |
750 TDoubleArrayList wsOut = new TDoubleArrayList(ws.length); | 750 TDoubleArrayList wsOut = new TDoubleArrayList(ws.length); |
751 TDoubleArrayList qsOut = new TDoubleArrayList(ws.length); | 751 TDoubleArrayList qsOut = new TDoubleArrayList(ws.length); |
752 | 752 |
753 boolean generatedWs = false; | 753 boolean generatedWs = false; |
755 for (int i = 0; i < ws.length; i++) { | 755 for (int i = 0; i < ws.length; i++) { |
756 if (Double.isNaN(ws[i])) { | 756 if (Double.isNaN(ws[i])) { |
757 logger.warn("W is NaN: ignored"); | 757 logger.warn("W is NaN: ignored"); |
758 continue; | 758 continue; |
759 } | 759 } |
760 double w = ws[i] / 100d; | 760 double [] qs = DischargeTables.getQsForW(values, ws[i]); |
761 double [] qs = DischargeTables.getQsForW(values, w); | |
762 | 761 |
763 if (qs.length == 0) { | 762 if (qs.length == 0) { |
764 logger.warn("No Qs found for W = " + ws[i]); | 763 logger.warn("No Qs found for W = " + ws[i]); |
765 } | 764 } |
766 else { | 765 else { |
767 for (double q: qs) { | 766 for (double q: qs) { |
768 wsOut.add(ws[i]); | 767 wsOut.add(ws[i]); |
769 qsOut.add(q * 100d); | 768 qsOut.add(q); |
770 } | 769 } |
771 } | 770 } |
772 generatedWs |= qs.length != 1; | 771 generatedWs |= qs.length != 1; |
773 } | 772 } |
774 | 773 |