Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/Calculation4.java @ 8202:e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 05 Sep 2014 12:58:17 +0200 |
parents | a56fe3bc6700 |
children | 5e38e2924c07 |
comparison
equal
deleted
inserted
replaced
8201:4b8c5a08de04 | 8202:e4606eae8ea5 |
---|---|
28 import org.apache.log4j.Logger; | 28 import org.apache.log4j.Logger; |
29 | 29 |
30 public class Calculation4 | 30 public class Calculation4 |
31 extends Calculation | 31 extends Calculation |
32 { | 32 { |
33 private static Logger logger = Logger.getLogger(Calculation4.class); | 33 private static Logger log = Logger.getLogger(Calculation4.class); |
34 | 34 |
35 public static final double MINIMAL_STEP_WIDTH = 1e-5; | 35 public static final double MINIMAL_STEP_WIDTH = 1e-5; |
36 | 36 |
37 protected List<Segment> segments; | 37 protected List<Segment> segments; |
38 | 38 |
44 | 44 |
45 public Calculation4() { | 45 public Calculation4() { |
46 } | 46 } |
47 | 47 |
48 public Calculation4(Calculation4Access access) { | 48 public Calculation4(Calculation4Access access) { |
49 logger.debug("Calculation4Access.cnst"); | 49 log.debug("Calculation4Access.cnst"); |
50 String river = access.getRiverName(); | 50 String river = access.getRiverName(); |
51 List<Segment> segments = access.getSegments(); | 51 List<Segment> segments = access.getSegments(); |
52 double [] range = access.getFromToStep(); | 52 double [] range = access.getFromToStep(); |
53 boolean isQ = access.isQ(); | 53 boolean isQ = access.isQ(); |
54 | 54 |
98 ? new CalculationResult(new WQKms[0], this) | 98 ? new CalculationResult(new WQKms[0], this) |
99 : innerCalculate(table); | 99 : innerCalculate(table); |
100 } | 100 } |
101 | 101 |
102 protected CalculationResult innerCalculate(WstValueTable table) { | 102 protected CalculationResult innerCalculate(WstValueTable table) { |
103 boolean debug = logger.isDebugEnabled(); | 103 boolean debug = log.isDebugEnabled(); |
104 | 104 |
105 if (debug) { | 105 if (debug) { |
106 logger.debug( | 106 log.debug( |
107 "calculate from " + from + " to " + to + " step " + step); | 107 "calculate from " + from + " to " + to + " step " + step); |
108 logger.debug("# segments: " + segments.size()); | 108 log.debug("# segments: " + segments.size()); |
109 for (Segment segment: segments) { | 109 for (Segment segment: segments) { |
110 logger.debug(" " + segment); | 110 log.debug(" " + segment); |
111 } | 111 } |
112 } | 112 } |
113 | 113 |
114 int numResults = segments.get(0).values.length; | 114 int numResults = segments.get(0).values.length; |
115 | 115 |
116 if (numResults < 1) { | 116 if (numResults < 1) { |
117 logger.debug("no values given"); | 117 log.debug("no values given"); |
118 addProblem("no.values.given"); | 118 addProblem("no.values.given"); |
119 return new CalculationResult(new WQKms[0], this); | 119 return new CalculationResult(new WQKms[0], this); |
120 } | 120 } |
121 | 121 |
122 | 122 |
146 from < to ? pos <= to : pos >= to; | 146 from < to ? pos <= to : pos >= to; |
147 pos = DoubleUtil.round(pos + step) | 147 pos = DoubleUtil.round(pos + step) |
148 ) { | 148 ) { |
149 if (pos < s1.referencePoint || pos > s2.referencePoint) { | 149 if (pos < s1.referencePoint || pos > s2.referencePoint) { |
150 if (debug) { | 150 if (debug) { |
151 logger.debug("need to find new interval for " + pos); | 151 log.debug("need to find new interval for " + pos); |
152 } | 152 } |
153 // find new interval | 153 // find new interval |
154 if (pos <= segments.get(0).referencePoint) { | 154 if (pos <= segments.get(0).referencePoint) { |
155 // before first segment -> "gleichwertig" | 155 // before first segment -> "gleichwertig" |
156 if (debug) { | 156 if (debug) { |
157 logger.debug("before first segment -> gleichwertig"); | 157 log.debug("before first segment -> gleichwertig"); |
158 } | 158 } |
159 Segment first = segments.get(0); | 159 Segment first = segments.get(0); |
160 double [] values = first.values; | 160 double [] values = first.values; |
161 double refPos = first.referencePoint; | 161 double refPos = first.referencePoint; |
162 for (int i = 0; i < qPositions.length; ++i) { | 162 for (int i = 0; i < qPositions.length; ++i) { |
169 Arrays.fill(functions, Identity.IDENTITY); | 169 Arrays.fill(functions, Identity.IDENTITY); |
170 } | 170 } |
171 else if (pos >= segments.get(segments.size()-1).referencePoint) { | 171 else if (pos >= segments.get(segments.size()-1).referencePoint) { |
172 // after last segment -> "gleichwertig" | 172 // after last segment -> "gleichwertig" |
173 if (debug) { | 173 if (debug) { |
174 logger.debug("after last segment -> gleichwertig"); | 174 log.debug("after last segment -> gleichwertig"); |
175 } | 175 } |
176 Segment last = segments.get(segments.size()-1); | 176 Segment last = segments.get(segments.size()-1); |
177 double [] values = last.values; | 177 double [] values = last.values; |
178 double refPos = last.referencePoint; | 178 double refPos = last.referencePoint; |
179 for (int i = 0; i < qPositions.length; ++i) { | 179 for (int i = 0; i < qPositions.length; ++i) { |
186 Arrays.fill(functions, Identity.IDENTITY); | 186 Arrays.fill(functions, Identity.IDENTITY); |
187 } | 187 } |
188 else { // "ungleichwertig" | 188 else { // "ungleichwertig" |
189 // find matching interval | 189 // find matching interval |
190 if (debug) { | 190 if (debug) { |
191 logger.debug("in segments -> ungleichwertig"); | 191 log.debug("in segments -> ungleichwertig"); |
192 } | 192 } |
193 s1 = s2 = null; | 193 s1 = s2 = null; |
194 for (int i = 1, N = segments.size(); i < N; ++i) { | 194 for (int i = 1, N = segments.size(); i < N; ++i) { |
195 Segment si1 = segments.get(i-1); | 195 Segment si1 = segments.get(i-1); |
196 Segment si = segments.get(i); | 196 Segment si = segments.get(i); |
197 if (debug) { | 197 if (debug) { |
198 logger.debug("check " + pos + " in " + | 198 log.debug("check " + pos + " in " + |
199 si1.referencePoint + " - " + si.referencePoint); | 199 si1.referencePoint + " - " + si.referencePoint); |
200 } | 200 } |
201 if (pos >= si1.referencePoint | 201 if (pos >= si1.referencePoint |
202 && pos <= si. referencePoint) { | 202 && pos <= si. referencePoint) { |
203 s1 = si1; | 203 s1 = si1; |
234 : new Linear( | 234 : new Linear( |
235 qA, qF, | 235 qA, qF, |
236 anchor.values[i], free.values[i]); | 236 anchor.values[i], free.values[i]); |
237 | 237 |
238 if (debug) { | 238 if (debug) { |
239 logger.debug( | 239 log.debug( |
240 anchor.referencePoint + ": " + | 240 anchor.referencePoint + ": " + |
241 qA + " -> " + functions[i].value(qA) + | 241 qA + " -> " + functions[i].value(qA) + |
242 " / " + free.referencePoint + ": " + | 242 " / " + free.referencePoint + ": " + |
243 qF + " -> " + functions[i].value(qF)); | 243 qF + " -> " + functions[i].value(qF)); |
244 } | 244 } |