Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation1.java @ 738:5abdb2fa8eb1
Fix for flys/issue147
flys-artifacts/trunk@2234 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 26 Jun 2011 14:46:48 +0000 |
parents | 3b7e9ddf6bb1 |
children | c09c9e05ecfa |
comparison
equal
deleted
inserted
replaced
737:6b38b8488401 | 738:5abdb2fa8eb1 |
---|---|
10 private static Logger logger = Logger.getLogger(Calculation1.class); | 10 private static Logger logger = Logger.getLogger(Calculation1.class); |
11 | 11 |
12 protected double [] kms; | 12 protected double [] kms; |
13 protected double [] qs; | 13 protected double [] qs; |
14 protected double [] ws; | 14 protected double [] ws; |
15 protected boolean up; | |
16 protected double refKm; | 15 protected double refKm; |
17 | 16 |
18 public Calculation1() { | 17 public Calculation1() { |
19 } | 18 } |
20 | 19 |
21 public Calculation1( | 20 public Calculation1( |
22 double [] kms, | 21 double [] kms, |
23 double [] qs, | 22 double [] qs, |
24 double [] ws, | 23 double [] ws, |
25 double refKm, | 24 double refKm |
26 boolean up | |
27 ) { | 25 ) { |
28 this.kms = kms; | 26 this.kms = kms; |
29 this.qs = qs; | 27 this.qs = qs; |
30 this.ws = ws; | 28 this.ws = ws; |
31 this.refKm = refKm; | 29 this.refKm = refKm; |
32 this.up = up; | |
33 } | 30 } |
34 | 31 |
35 public CalculationResult calculate(WstValueTable wst) { | 32 public CalculationResult calculate(WstValueTable wst) { |
36 | 33 |
37 ArrayList<WQKms> results = new ArrayList<WQKms>(); | 34 ArrayList<WQKms> results = new ArrayList<WQKms>(); |
38 | |
39 double ref = Double.isNaN(refKm) | |
40 ? kms[up ? 0 : kms.length-1] | |
41 : refKm; | |
42 | 35 |
43 String prefix; | 36 String prefix; |
44 double [] origData; | 37 double [] origData; |
45 | 38 |
46 if (ws != null) { prefix = "W="; origData = ws; } | 39 if (ws != null) { prefix = "W="; origData = ws; } |
52 | 45 |
53 double [] oqs = new double[kms.length]; | 46 double [] oqs = new double[kms.length]; |
54 double [] ows = new double[kms.length]; | 47 double [] ows = new double[kms.length]; |
55 | 48 |
56 boolean success = | 49 boolean success = |
57 wst.interpolate(qs[i], ref, kms, ows, oqs, this) != null; | 50 wst.interpolate(qs[i], refKm, kms, ows, oqs, this) != null; |
58 | 51 |
59 int newNumProblems = numProblems(); | 52 int newNumProblems = numProblems(); |
60 | 53 |
61 if (success) { | 54 if (success) { |
62 WQKms result = new WQKms(kms, oqs, ows, prefix + origData[i]); | 55 WQKms result = new WQKms(kms, oqs, ows, prefix + origData[i]); |