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]);

http://dive4elements.wald.intevation.org