comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation6.java @ 2230:59af81364eb1

Improved the 'historical discharge' calculation: implemented findValueForW(). flys-artifacts/trunk@3872 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 01 Feb 2012 15:41:11 +0000
parents 4db19a88bddb
children 7335c526befd
comparison
equal deleted inserted replaced
2229:9dc81827b187 2230:59af81364eb1
23 private double[] values; 23 private double[] values;
24 24
25 25
26 public static final int MODE_W = 0; 26 public static final int MODE_W = 0;
27 public static final int MODE_Q = 1; 27 public static final int MODE_Q = 1;
28
29 public static final double SCALE = 100d;
28 30
29 31
30 public Calculation6(int mode, long[] timerange, double[] values) { 32 public Calculation6(int mode, long[] timerange, double[] values) {
31 this.mode = mode; 33 this.mode = mode;
32 this.timerange = timerange; 34 this.timerange = timerange;
113 115
114 116
115 protected WQTimerange[] prepareCalculationData(List<DischargeTable> dts) { 117 protected WQTimerange[] prepareCalculationData(List<DischargeTable> dts) {
116 List<WQTimerange> wqts = new ArrayList<WQTimerange>(values.length); 118 List<WQTimerange> wqts = new ArrayList<WQTimerange>(values.length);
117 119
120 boolean debug = logger.isDebugEnabled();
121
118 for (double value: values) { 122 for (double value: values) {
119 logger.debug("Prepare data for value: " + value); 123 logger.debug("Prepare data for value: " + value);
120 124
121 String name = mode == MODE_W ? "W=" + value : "Q=" + value; 125 String name = mode == MODE_W ? "W=" + value : "Q=" + value;
122 WQTimerange wqt = new WQTimerange(name); 126 WQTimerange wqt = new WQTimerange(name);
135 else { 139 else {
136 q = value; 140 q = value;
137 w = findValueForQ(dt, q); 141 w = findValueForQ(dt, q);
138 } 142 }
139 143
144 if (debug) {
145 logger.debug("Q=" + q + " | W=" + w);
146 }
147
140 wqt.add(w, q, t); 148 wqt.add(w, q, t);
141 } 149 }
142 150
143 wqts.add(wqt); 151 wqts.add(wqt);
144 } 152 }
146 return (WQTimerange[]) wqts.toArray(new WQTimerange[wqts.size()]); 154 return (WQTimerange[]) wqts.toArray(new WQTimerange[wqts.size()]);
147 } 155 }
148 156
149 157
150 protected double findValueForW(DischargeTable dt, double w) { 158 protected double findValueForW(DischargeTable dt, double w) {
151 logger.warn("TODO: IMPLEMENT ME!"); 159 double[][] vs = DischargeTables.loadDischargeTableValues(dt,SCALE,true);
152 return 5; 160 return DischargeTables.getQForW(vs, w);
153 } 161 }
154 162
155 163
156 protected double findValueForQ(DischargeTable dt, double q) { 164 protected double findValueForQ(DischargeTable dt, double q) {
165 double[][] vs = DischargeTables.loadDischargeTableValues(dt,SCALE,true);
157 logger.warn("TODO: IMPLEMENT ME!"); 166 logger.warn("TODO: IMPLEMENT ME!");
167
158 return 10; 168 return 10;
159 } 169 }
160 170
161 171
162 /** 172 /**

http://dive4elements.wald.intevation.org