Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeCalculation.java @ 3962:d609fd83310a
merged flys-backend
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:15:04 +0200 |
parents | 00abcd3737f9 |
children | 363445873737 |
rev | line source |
---|---|
3775
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.model.extreme; |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.flys.artifacts.access.ExtremeAccess; |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 |
3877
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
5 import de.intevation.flys.artifacts.math.fitting.Function; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
6 import de.intevation.flys.artifacts.math.fitting.FunctionFactory; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
7 |
3775
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 import de.intevation.flys.artifacts.model.Calculation; |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 import de.intevation.flys.artifacts.model.CalculationResult; |
3877
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
10 import de.intevation.flys.artifacts.model.RangeWithValues; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
11 import de.intevation.flys.artifacts.model.RiverFactory; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
12 import de.intevation.flys.artifacts.model.WstValueTable; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
13 import de.intevation.flys.artifacts.model.WstValueTableFactory; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
14 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
15 import de.intevation.flys.model.River; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
16 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
17 import de.intevation.flys.utils.DoubleUtil; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
18 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
19 import java.util.List; |
3775
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 public class ExtremeCalculation |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 extends Calculation |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 { |
3877
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
24 protected String river; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
25 protected String function; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
26 protected double from; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
27 protected double to; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
28 protected double step; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
29 protected double percent; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
30 protected List<RangeWithValues> ranges; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
31 |
3775
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 public ExtremeCalculation() { |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 } |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 public ExtremeCalculation(ExtremeAccess access) { |
3877
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
36 String river = access.getRiver(); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
37 String function = access.getFunction(); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
38 Double from = access.getFrom(); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
39 Double to = access.getTo(); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
40 Double step = access.getStep(); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
41 Double percent = access.getPercent(); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
42 List<RangeWithValues> ranges = access.getRanges(); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
43 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
44 if (river == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
45 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
46 addProblem("extreme.no.river"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
47 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
48 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
49 if (function == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
50 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
51 addProblem("extreme.no.function"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
52 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
53 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
54 if (from == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
55 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
56 addProblem("extreme.no.from"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
57 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
58 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
59 if (to == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
60 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
61 addProblem("extreme.no.to"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
62 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
63 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
64 if (step == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
65 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
66 addProblem("extreme.no.step"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
67 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
68 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
69 if (percent == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
70 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
71 addProblem("extreme.no.percent"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
72 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
73 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
74 if (ranges == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
75 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
76 addProblem("extreme.no.ranges"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
77 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
78 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
79 if (!hasProblems()) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
80 this.river = river; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
81 this.function = function; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
82 this.from = Math.min(from, to); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
83 this.to = Math.max(from, to); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
84 this.step = Math.max(0.001d, Math.abs(step)/1000d); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
85 this.percent = Math.max(0d, Math.min(100d, percent)); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
86 this.ranges = ranges; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
87 } |
3775
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 } |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
89 |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 public CalculationResult calculate() { |
3877
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
91 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
92 WstValueTable wst = null; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
93 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
94 River river = RiverFactory.getRiver(this.river); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
95 if (river == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
96 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
97 addProblem("extreme.no.such.river", this.river); |
3775
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 } |
3877
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
99 else { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
100 wst = WstValueTableFactory.getTable(river); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
101 if (wst == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
102 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
103 addProblem("extreme.no.wst.table"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
104 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
105 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
106 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
107 Function function = |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
108 FunctionFactory.getInstance().getFunction(this.function); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
109 if (function == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
110 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
111 addProblem("extreme.no.such.function", this.function); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
112 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
113 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
114 return hasProblems() |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
115 ? new CalculationResult(this) |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
116 : innerCalculate(wst, function); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
117 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
118 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
119 protected CalculationResult innerCalculate( |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
120 WstValueTable wst, |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
121 Function function |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
122 ) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
123 RangeWithValues range = null; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
124 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
125 KMs: for (double km = from; km <= to; km += step) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
126 double currentKm = DoubleUtil.round(km); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
127 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
128 if (range == null || !range.inside(currentKm)) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
129 for (RangeWithValues r: ranges) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
130 if (r.inside(currentKm)) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
131 range = r; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
132 break; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
133 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
134 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
135 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
136 addProblem(currentKm, "extreme.no.range"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
137 continue KMs; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
138 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
139 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
140 double [][] wqs = wst.interpolateTabulated(currentKm); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
141 if (wqs == null) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
142 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
143 addProblem(currentKm, "extreme.no.raw.data"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
144 continue; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
145 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
146 |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
147 // XXX: This should not be necessary for model data. |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
148 if (!DoubleUtil.isValid(wqs)) { |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
149 // TODO: i18n |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
150 addProblem(currentKm, "extreme.invalid.data"); |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
151 continue; |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
152 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
153 // TODO: Implement extraction of points for curve fitting. |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
154 // TODO: Implement curve fitting. |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
155 // TODO: Implement generating Curve object per km. |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
156 } |
00abcd3737f9
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3775
diff
changeset
|
157 |
3775
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
158 ExtremeResult result = new ExtremeResult(); |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
159 return new CalculationResult(result, this); |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
160 } |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
161 } |
d52c4ca93ffb
More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
162 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |