Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java @ 1860:ddd425858169
Improved logging to include exception in fail case of spline interpolation of wst.
flys-artifacts/trunk@3209 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 10 Nov 2011 10:13:57 +0000 |
parents | 853cd2120d69 |
children | d2e217f438bc |
comparison
equal
deleted
inserted
replaced
1859:755d9763928f | 1860:ddd425858169 |
---|---|
215 catch (MathIllegalArgumentException miae) { | 215 catch (MathIllegalArgumentException miae) { |
216 if (errors != null) { | 216 if (errors != null) { |
217 // TODO: I18N | 217 // TODO: I18N |
218 errors.addProblem(km, "spline creation failed"); | 218 errors.addProblem(km, "spline creation failed"); |
219 } | 219 } |
220 log.error("spline creation failed"); | 220 log.error("spline creation failed", miae); |
221 return new double[2][0]; | 221 return new double[2][0]; |
222 } | 222 } |
223 | 223 |
224 double [] outWs = new double[steps]; | 224 double [] outWs = new double[steps]; |
225 double [] outQs = new double[steps]; | 225 double [] outQs = new double[steps]; |
293 catch (MathIllegalArgumentException miae) { | 293 catch (MathIllegalArgumentException miae) { |
294 if (errors != null) { | 294 if (errors != null) { |
295 // TODO: I18N | 295 // TODO: I18N |
296 errors.addProblem(km, "spline creation failed"); | 296 errors.addProblem(km, "spline creation failed"); |
297 } | 297 } |
298 log.error("spline creation failed"); | 298 log.error("spline creation failed", miae); |
299 return new double[2][0]; | 299 return new double[2][0]; |
300 } | 300 } |
301 | 301 |
302 double [] outWs = new double[steps]; | 302 double [] outWs = new double[steps]; |
303 double [] outQs = new double[steps]; | 303 double [] outQs = new double[steps]; |
454 */ | 454 */ |
455 public double [][] interpolateWQ(double km, Calculation errors) { | 455 public double [][] interpolateWQ(double km, Calculation errors) { |
456 return interpolateWQ(km, DEFAULT_Q_STEPS, errors); | 456 return interpolateWQ(km, DEFAULT_Q_STEPS, errors); |
457 } | 457 } |
458 | 458 |
459 /** | |
460 * Interpolate W and Q values at a given km. | |
461 */ | |
459 public double [][] interpolateWQ(double km, int steps, Calculation errors) { | 462 public double [][] interpolateWQ(double km, int steps, Calculation errors) { |
460 | 463 |
461 int rowIndex = Collections.binarySearch(rows, new Row(km)); | 464 int rowIndex = Collections.binarySearch(rows, new Row(km)); |
462 | 465 |
463 if (rowIndex >= 0) { // direct row match | 466 if (rowIndex >= 0) { // direct row match |
665 } | 668 } |
666 double q1 = columns[index-1].getQRangeTree().findQ(km); | 669 double q1 = columns[index-1].getQRangeTree().findQ(km); |
667 double q2 = columns[index ].getQRangeTree().findQ(km); | 670 double q2 = columns[index ].getQRangeTree().findQ(km); |
668 return Linear.weight(weight, q1, q2); | 671 return Linear.weight(weight, q1, q2); |
669 } | 672 } |
670 | |
671 } | 673 } |
672 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 674 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |