comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java @ 3811:1558ef7b0e7b

Picked rev3357, rev3359 and rev3360 from trunk. flys-artifacts/tags/pre2.6-2011-12-05@3362 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 07 Dec 2011 13:36:36 +0000
parents 7e7522c9e663
children 024d986b4f5b
comparison
equal deleted inserted replaced
3810:b6431052a694 3811:1558ef7b0e7b
81 Facet qfacet1 = new MainValuesQFacet( 81 Facet qfacet1 = new MainValuesQFacet(
82 COMPUTED_DISCHARGE_MAINVALUES_Q, 82 COMPUTED_DISCHARGE_MAINVALUES_Q,
83 Resources.getMsg( 83 Resources.getMsg(
84 callMeta, 84 callMeta,
85 "facet.discharge_curves.mainvalues.q", 85 "facet.discharge_curves.mainvalues.q",
86 "facet.discharge_curves.mainvalues.q")); 86 "facet.discharge_curves.mainvalues.q"),
87 false);
87 Facet qfacet2 = new MainValuesQFacet( 88 Facet qfacet2 = new MainValuesQFacet(
88 MAINVALUES_Q, 89 MAINVALUES_Q,
89 Resources.getMsg( 90 Resources.getMsg(
90 callMeta, 91 callMeta,
91 "facet.discharge_curves.mainvalues.q", 92 "facet.discharge_curves.mainvalues.q",
92 "facet.discharge_curves.mainvalues.q")); 93 "facet.discharge_curves.mainvalues.q"),
94 true);
93 Facet wfacet1 = new MainValuesWFacet( 95 Facet wfacet1 = new MainValuesWFacet(
94 COMPUTED_DISCHARGE_MAINVALUES_W, 96 COMPUTED_DISCHARGE_MAINVALUES_W,
95 Resources.getMsg( 97 Resources.getMsg(
96 callMeta, 98 callMeta,
97 "facet.discharge_curves.mainvalues.w", 99 "facet.discharge_curves.mainvalues.w",
98 "facet.discharge_curves.mainvalues.w")); 100 "facet.discharge_curves.mainvalues.w"),
101 false);
99 Facet wfacet2 = new MainValuesWFacet( 102 Facet wfacet2 = new MainValuesWFacet(
100 MAINVALUES_W, 103 MAINVALUES_W,
101 Resources.getMsg( 104 Resources.getMsg(
102 callMeta, 105 callMeta,
103 "facet.discharge_curves.mainvalues.w", 106 "facet.discharge_curves.mainvalues.w",
104 "facet.discharge_curves.mainvalues.w")); 107 "facet.discharge_curves.mainvalues.w"),
108 true);
105 109
106 List<Facet> fs = new ArrayList<Facet>(); 110 List<Facet> fs = new ArrayList<Facet>();
107 fs.add(qfacet1); 111 fs.add(qfacet1);
108 fs.add(qfacet2); 112 fs.add(qfacet2);
109 fs.add(wfacet1); 113 fs.add(wfacet1);
231 235
232 /** 236 /**
233 * Get a list of "Q" main values. 237 * Get a list of "Q" main values.
234 * @return list of Q main values. 238 * @return list of Q main values.
235 */ 239 */
236 public List<NamedDouble> getMainValuesQ() { 240 public List<NamedDouble> getMainValuesQ(boolean atGauge) {
237 List<NamedDouble> filteredList = new ArrayList<NamedDouble>(); 241 List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
238 Gauge gauge = getGauge(); 242 Gauge gauge = getGauge();
239 WstValueTable interpolator = WstValueTableFactory.getTable(FLYSUtils.getRiver(this)); 243 WstValueTable interpolator = WstValueTableFactory.getTable(FLYSUtils.getRiver(this));
240 Calculation c = new Calculation(); 244 Calculation c = new Calculation();
241 double w_out[] = {0.0f}; 245 double w_out[] = {0.0f};
244 double gaugeStation = gauge.getStation().doubleValue(); 248 double gaugeStation = gauge.getStation().doubleValue();
245 if (gauge != null) { 249 if (gauge != null) {
246 List<MainValue> orig = gauge.getMainValues(); 250 List<MainValue> orig = gauge.getMainValues();
247 for (MainValue mv : orig) { 251 for (MainValue mv : orig) {
248 if (mv.getMainValue().getType().getName().equals("Q")) { 252 if (mv.getMainValue().getType().getName().equals("Q")) {
249 interpolator.interpolate(mv.getValue().doubleValue(), 253 if (atGauge) {
254 q_out[0] = mv.getValue().doubleValue();
255 }
256 else {
257 interpolator.interpolate(mv.getValue().doubleValue(),
250 gaugeStation, kms, w_out, q_out, c); 258 gaugeStation, kms, w_out, q_out, c);
259 }
251 filteredList.add(new NamedDouble( 260 filteredList.add(new NamedDouble(
252 mv.getMainValue().getName(), 261 mv.getMainValue().getName(),
253 q_out[0] 262 q_out[0]
254 )); 263 ));
255 } 264 }
259 } 268 }
260 269
261 270
262 /** 271 /**
263 * Get a list of "W" main values. 272 * Get a list of "W" main values.
273 * @param atGauge if true, do not interpolate
264 * @return list of W main values. 274 * @return list of W main values.
265 */ 275 */
266 public List<NamedDouble> getMainValuesW() { 276 public List<NamedDouble> getMainValuesW(boolean atGauge) {
267 List<NamedDouble> filteredList = new ArrayList<NamedDouble>(); 277 List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
268 Gauge gauge = getGauge(); 278 Gauge gauge = getGauge();
269 WstValueTable interpolator = WstValueTableFactory.getTable(FLYSUtils.getRiver(this)); 279 WstValueTable interpolator = WstValueTableFactory.getTable(FLYSUtils.getRiver(this));
270 Calculation c = new Calculation(); 280 Calculation c = new Calculation();
271 281
274 double q_out[] = {0.0f}; 284 double q_out[] = {0.0f};
275 double kms[] = {getLocation()}; 285 double kms[] = {getLocation()};
276 if (gauge != null) { 286 if (gauge != null) {
277 List<MainValue> orig = gauge.getMainValues(); 287 List<MainValue> orig = gauge.getMainValues();
278 for (MainValue mv : orig) { 288 for (MainValue mv : orig) {
289 if (atGauge) {
290 if (mv.getMainValue().getType().getName().equals("W")) {
291 filteredList.add(new NamedDouble(mv.getMainValue().getName(),
292 mv.getValue().doubleValue()));
293
294 }
295 } else
279 // We cannot interpolate the W values, so derive them 296 // We cannot interpolate the W values, so derive them
280 // from given Q values. 297 // from given Q values.
281 if (mv.getMainValue().getType().getName().equals("Q")) { 298 if (mv.getMainValue().getType().getName().equals("Q")) {
282 interpolator.interpolate(mv.getValue().doubleValue(), 299 interpolator.interpolate(mv.getValue().doubleValue(),
283 gaugeStation, kms, w_out, q_out, c); 300 gaugeStation, kms, w_out, q_out, c);

http://dive4elements.wald.intevation.org