Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation6.java @ 2230:59af81364eb1
Improved the 'historical discharge' calculation: implemented findValueForW().
flys-artifacts/trunk@3872 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 01 Feb 2012 15:41:11 +0000 |
parents | 4db19a88bddb |
children | 7335c526befd |
comparison
equal
deleted
inserted
replaced
2229:9dc81827b187 | 2230:59af81364eb1 |
---|---|
23 private double[] values; | 23 private double[] values; |
24 | 24 |
25 | 25 |
26 public static final int MODE_W = 0; | 26 public static final int MODE_W = 0; |
27 public static final int MODE_Q = 1; | 27 public static final int MODE_Q = 1; |
28 | |
29 public static final double SCALE = 100d; | |
28 | 30 |
29 | 31 |
30 public Calculation6(int mode, long[] timerange, double[] values) { | 32 public Calculation6(int mode, long[] timerange, double[] values) { |
31 this.mode = mode; | 33 this.mode = mode; |
32 this.timerange = timerange; | 34 this.timerange = timerange; |
113 | 115 |
114 | 116 |
115 protected WQTimerange[] prepareCalculationData(List<DischargeTable> dts) { | 117 protected WQTimerange[] prepareCalculationData(List<DischargeTable> dts) { |
116 List<WQTimerange> wqts = new ArrayList<WQTimerange>(values.length); | 118 List<WQTimerange> wqts = new ArrayList<WQTimerange>(values.length); |
117 | 119 |
120 boolean debug = logger.isDebugEnabled(); | |
121 | |
118 for (double value: values) { | 122 for (double value: values) { |
119 logger.debug("Prepare data for value: " + value); | 123 logger.debug("Prepare data for value: " + value); |
120 | 124 |
121 String name = mode == MODE_W ? "W=" + value : "Q=" + value; | 125 String name = mode == MODE_W ? "W=" + value : "Q=" + value; |
122 WQTimerange wqt = new WQTimerange(name); | 126 WQTimerange wqt = new WQTimerange(name); |
135 else { | 139 else { |
136 q = value; | 140 q = value; |
137 w = findValueForQ(dt, q); | 141 w = findValueForQ(dt, q); |
138 } | 142 } |
139 | 143 |
144 if (debug) { | |
145 logger.debug("Q=" + q + " | W=" + w); | |
146 } | |
147 | |
140 wqt.add(w, q, t); | 148 wqt.add(w, q, t); |
141 } | 149 } |
142 | 150 |
143 wqts.add(wqt); | 151 wqts.add(wqt); |
144 } | 152 } |
146 return (WQTimerange[]) wqts.toArray(new WQTimerange[wqts.size()]); | 154 return (WQTimerange[]) wqts.toArray(new WQTimerange[wqts.size()]); |
147 } | 155 } |
148 | 156 |
149 | 157 |
150 protected double findValueForW(DischargeTable dt, double w) { | 158 protected double findValueForW(DischargeTable dt, double w) { |
151 logger.warn("TODO: IMPLEMENT ME!"); | 159 double[][] vs = DischargeTables.loadDischargeTableValues(dt,SCALE,true); |
152 return 5; | 160 return DischargeTables.getQForW(vs, w); |
153 } | 161 } |
154 | 162 |
155 | 163 |
156 protected double findValueForQ(DischargeTable dt, double q) { | 164 protected double findValueForQ(DischargeTable dt, double q) { |
165 double[][] vs = DischargeTables.loadDischargeTableValues(dt,SCALE,true); | |
157 logger.warn("TODO: IMPLEMENT ME!"); | 166 logger.warn("TODO: IMPLEMENT ME!"); |
167 | |
158 return 10; | 168 return 10; |
159 } | 169 } |
160 | 170 |
161 | 171 |
162 /** | 172 /** |