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

http://dive4elements.wald.intevation.org