Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixCalculation.java @ 3106:23de6d678fba
FixA: Store into QWs if they are interpolated.
flys-artifacts/trunk@4705 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 19 Jun 2012 14:01:47 +0000 |
parents | d7b0f52d6d04 |
children | cbf308f5c41b |
comparison
equal
deleted
inserted
replaced
3105:9592b7d76633 | 3106:23de6d678fba |
---|---|
164 return new CalculationResult(this); | 164 return new CalculationResult(this); |
165 } | 165 } |
166 | 166 |
167 double [] kms = DoubleUtil.explode(from, to, step / 1000.0); | 167 double [] kms = DoubleUtil.explode(from, to, step / 1000.0); |
168 | 168 |
169 final double [] qs = new double[eventColumns.size()]; | 169 final double [] qs = new double[eventColumns.size()]; |
170 final double [] ws = new double[qs.length]; | 170 final double [] ws = new double[qs.length]; |
171 final boolean [] interpolated = new boolean[ws.length]; | |
171 | 172 |
172 Fitting.QWDFactory qwdFactory = new Fitting.QWDFactory() { | 173 Fitting.QWDFactory qwdFactory = new Fitting.QWDFactory() { |
173 @Override | 174 @Override |
174 public QWD create(double q, double w) { | 175 public QWD create(double q, double w) { |
175 // Check all the event columns for close match | 176 // Check all the event columns for close match |
180 Column column = eventColumns.get(i); | 181 Column column = eventColumns.get(i); |
181 return new QWD( | 182 return new QWD( |
182 q, w, | 183 q, w, |
183 column.getDescription(), | 184 column.getDescription(), |
184 column.getDate(), | 185 column.getDate(), |
186 interpolated[i], | |
185 0d); | 187 0d); |
186 } | 188 } |
187 } | 189 } |
188 log.warn("cannot find column for (" + q + ", " + w + ")"); | 190 log.warn("cannot find column for (" + q + ", " + w + ")"); |
189 return new QWD(q, w); | 191 return new QWD(q, w); |
216 for (int i = 0; i < kms.length; ++i) { | 218 for (int i = 0; i < kms.length; ++i) { |
217 double km = kms[i]; | 219 double km = kms[i]; |
218 | 220 |
219 // Fill Qs and Ws from event columns. | 221 // Fill Qs and Ws from event columns. |
220 for (int j = 0; j < ws.length; ++j) { | 222 for (int j = 0; j < ws.length; ++j) { |
221 boolean interpolated = | 223 interpolated[j] = eventColumns.get(j).getQW(km, qs, ws, j); |
222 eventColumns.get(j).getQW(km, qs, ws, j); | |
223 // TODO: mark as interpolated. | 224 // TODO: mark as interpolated. |
224 } | 225 } |
225 | 226 |
226 fitting.reset(); | 227 fitting.reset(); |
227 | 228 |
390 double dw = (wq[0] - fw)*100.0; | 391 double dw = (wq[0] - fw)*100.0; |
391 | 392 |
392 Date date = column.getDate(); | 393 Date date = column.getDate(); |
393 String description = column.getDescription(); | 394 String description = column.getDescription(); |
394 | 395 |
395 QWD qwd = new QWD(wq[1], wq[0], description, date, dw); | 396 QWD qwd = new QWD( |
397 wq[1], wq[0], description, date, true, dw); | |
396 | 398 |
397 qwds.add(qwd); | 399 qwds.add(qwd); |
398 | 400 |
399 sumW += wq[0]; | 401 sumW += wq[0]; |
400 sumQ += wq[1]; | 402 sumQ += wq[1]; |
415 Date avgDate = dateAverager.getAverage(); | 417 Date avgDate = dateAverager.getAverage(); |
416 | 418 |
417 String avgDescription = "avg.deltawt." + qSector; | 419 String avgDescription = "avg.deltawt." + qSector; |
418 | 420 |
419 QWD avgQWD = new QWD( | 421 QWD avgQWD = new QWD( |
420 avgQ, avgW, avgDescription, avgDate, avgDw); | 422 avgQ, avgW, avgDescription, avgDate, true, avgDw); |
421 | 423 |
422 qSectorAverages[qSector] = avgQWD; | 424 qSectorAverages[qSector] = avgQWD; |
423 } | 425 } |
424 } | 426 } |
425 } // for all Q sectors | 427 } // for all Q sectors |