Mercurial > dive4elements > river
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 }); |