comparison flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 2555:ba46af45b6e4

Write the gauge description instead of the Q value to CSV file. flys-artifacts/trunk@4070 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 17 Feb 2012 09:20:02 +0000
parents 6f4a1f513e89
children 00cf69edfcc0
comparison
equal deleted inserted replaced
2554:ee5eca3871cb 2555:ba46af45b6e4
259 259
260 @Override 260 @Override
261 protected void writeCSVData(CSVWriter writer) { 261 protected void writeCSVData(CSVWriter writer) {
262 logger.info("WaterlevelExporter.writeData"); 262 logger.info("WaterlevelExporter.writeData");
263 263
264 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master); 264 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master);
265 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE; 265 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE;
266 boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE; 266 boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE;
267 FLYSUtils.WQ_INPUT input
268 = FLYSUtils.getWQInputMode((FLYSArtifact)master);
269 boolean isRange = input == FLYSUtils.WQ_INPUT.RANGE;
267 270
268 writeCSVMeta(writer); 271 writeCSVMeta(writer);
269 writeCSVHeader(writer, atGauge, isQ); 272 writeCSVHeader(writer, atGauge, isQ);
270 273
271 for (WQKms[] tmp: data) { 274 for (WQKms[] tmp: data) {
272 for (WQKms wqkms: tmp) { 275 for (WQKms wqkms: tmp) {
273 wQKms2CSV(writer, wqkms, atGauge, isQ); 276 wQKms2CSV(writer, wqkms, atGauge, isQ, isRange);
274 } 277 }
275 } 278 }
276 } 279 }
277 280
278 281
336 }); 339 });
337 340
338 FLYSUtils.WQ_MODE wq = FLYSUtils.getWQMode(flys); 341 FLYSUtils.WQ_MODE wq = FLYSUtils.getWQMode(flys);
339 if (wq == FLYSUtils.WQ_MODE.QFREE || wq == FLYSUtils.WQ_MODE.QGAUGE) { 342 if (wq == FLYSUtils.WQ_MODE.QFREE || wq == FLYSUtils.WQ_MODE.QGAUGE) {
340 double[] qs = FLYSUtils.getQs(flys); 343 double[] qs = FLYSUtils.getQs(flys);
341 344 FLYSUtils.WQ_INPUT input = FLYSUtils.getWQInputMode(flys);
342 String lower = ""; 345
343 String upper = ""; 346 String data = "";
344 347
345 if (qs != null && qs.length > 0) { 348 if ((input == FLYSUtils.WQ_INPUT.ADAPTED ||
346 lower = String.valueOf(qs[0]); 349 input == FLYSUtils.WQ_INPUT.RANGE) &&
347 upper = String.valueOf(qs[qs.length-1]); 350 qs != null && qs.length > 0)
351 {
352 data = String.valueOf(qs[0]);
353 data += " - " + String.valueOf(qs[qs.length-1]);
354 }
355 else if (input == FLYSUtils.WQ_INPUT.SINGLE && qs != null){
356 data = String.valueOf(qs[0]);
357 for (int i = 1; i < qs.length; i++) {
358 data += ", " + String.valueOf(qs[i]);
359 }
348 } 360 }
349 else { 361 else {
350 logger.warn("Could not determine Q range!"); 362 logger.warn("Could not determine Q range!");
351 } 363 }
352 364
353 writer.writeNext(new String[] { 365 writer.writeNext(new String[] {
354 Resources.getMsg( 366 Resources.getMsg(
355 meta, 367 meta,
356 CSV_META_Q, 368 CSV_META_Q,
357 CSV_META_Q, 369 CSV_META_Q,
358 new Object[] { lower, upper }) 370 new Object[] {data})
359 }); 371 });
360 } 372 }
361 else { 373 else {
362 double[] ws = FLYSUtils.getWs(flys); 374 double[] ws = FLYSUtils.getWs(flys);
363 375
417 429
418 protected void wQKms2CSV( 430 protected void wQKms2CSV(
419 CSVWriter writer, 431 CSVWriter writer,
420 WQKms wqkms, 432 WQKms wqkms,
421 boolean atGauge, 433 boolean atGauge,
422 boolean isQ 434 boolean isQ,
435 boolean isRange
423 ) { 436 ) {
424 logger.debug("WaterlevelExporter.wQKms2CSV"); 437 logger.debug("WaterlevelExporter.wQKms2CSV");
425 438
426 NumberFormat kmf = getKmFormatter(); 439 NumberFormat kmf = getKmFormatter();
427 NumberFormat wf = getWFormatter(); 440 NumberFormat wf = getWFormatter();
454 467
455 for (int i = 0; i < size; i ++) { 468 for (int i = 0; i < size; i ++) {
456 result = wqkms.get(i, result); 469 result = wqkms.get(i, result);
457 470
458 if (atGauge) { 471 if (atGauge) {
472 String tmp = desc;
473 if (!isRange) {
474 tmp = FLYSUtils.getNamedMainValue((WINFOArtifact)flys, wqkms.getRawValue());
475 }
459 writer.writeNext(new String[] { 476 writer.writeNext(new String[] {
460 kmf.format(result[2]), 477 kmf.format(result[2]),
461 wf.format(result[0]), 478 wf.format(result[0]),
462 qf.format(result[1]), 479 qf.format(result[1]),
463 desc, 480 tmp,
464 FLYSUtils.getLocationDescription(flys, result[2]), 481 FLYSUtils.getLocationDescription(flys, result[2]),
465 result[2] >= a && result[2] <= b 482 result[2] >= a && result[2] <= b
466 ? gaugeName 483 ? gaugeName
467 : notinrange 484 : notinrange
468 }); 485 });

http://dive4elements.wald.intevation.org