Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 2068:0cf60d64895c
#370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
flys-artifacts/trunk@3563 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 02 Jan 2012 13:30:44 +0000 |
parents | 2b6a0de47379 |
children | bda04ae1154f |
comparison
equal
deleted
inserted
replaced
2067:40624968c7f4 | 2068:0cf60d64895c |
---|---|
56 "export.waterlevel.csv.header.q"; | 56 "export.waterlevel.csv.header.q"; |
57 | 57 |
58 public static final String CSV_Q_DESC_HEADER = | 58 public static final String CSV_Q_DESC_HEADER = |
59 "export.waterlevel.csv.header.q.desc"; | 59 "export.waterlevel.csv.header.q.desc"; |
60 | 60 |
61 public static final String CSV_W_DESC_HEADER = | |
62 "export.waterlevel.csv.header.w.desc"; | |
63 | |
61 public static final String CSV_LOCATION_HEADER = | 64 public static final String CSV_LOCATION_HEADER = |
62 "export.waterlevel.csv.header.location"; | 65 "export.waterlevel.csv.header.location"; |
63 | 66 |
64 public static final String CSV_GAUGE_HEADER = | 67 public static final String CSV_GAUGE_HEADER = |
65 "export.waterlevel.csv.header.gauge"; | 68 "export.waterlevel.csv.header.gauge"; |
97 | 100 |
98 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km"; | 101 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km"; |
99 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]"; | 102 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]"; |
100 public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]"; | 103 public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]"; |
101 public static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung"; | 104 public static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung"; |
105 public static final String DEFAULT_CSV_W_DESC_HEADER = "W/Pegel [cm]"; | |
102 public static final String DEFAULT_CSV_LOCATION_HEADER = "Lage"; | 106 public static final String DEFAULT_CSV_LOCATION_HEADER = "Lage"; |
103 public static final String DEFAULT_CSV_GAUGE_HEADER = "Bezugspegel"; | 107 public static final String DEFAULT_CSV_GAUGE_HEADER = "Bezugspegel"; |
104 public static final String DEFAULT_CSV_NOT_IN_GAUGE_RANGE = | 108 public static final String DEFAULT_CSV_NOT_IN_GAUGE_RANGE = |
105 "außerhalb des gewählten Bezugspegels"; | 109 "außerhalb des gewählten Bezugspegels"; |
106 | 110 |
198 protected void writeCSVData(CSVWriter writer) { | 202 protected void writeCSVData(CSVWriter writer) { |
199 logger.info("WaterlevelExporter.writeData"); | 203 logger.info("WaterlevelExporter.writeData"); |
200 | 204 |
201 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master); | 205 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master); |
202 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE; | 206 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE; |
207 boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE; | |
203 | 208 |
204 writeCSVMeta(writer); | 209 writeCSVMeta(writer); |
205 writeCSVHeader(writer, atGauge); | 210 writeCSVHeader(writer, atGauge, isQ); |
206 | 211 |
207 for (WQKms[] tmp: data) { | 212 for (WQKms[] tmp: data) { |
208 for (WQKms wqkms: tmp) { | 213 for (WQKms wqkms: tmp) { |
209 wQKms2CSV(writer, wqkms, atGauge); | 214 wQKms2CSV(writer, wqkms, atGauge, isQ); |
210 } | 215 } |
211 } | 216 } |
212 } | 217 } |
213 | 218 |
214 | 219 |
319 | 324 |
320 writer.writeNext(new String[] { "" }); | 325 writer.writeNext(new String[] { "" }); |
321 } | 326 } |
322 | 327 |
323 | 328 |
324 protected void writeCSVHeader(CSVWriter writer, boolean atGauge) { | 329 protected void writeCSVHeader( |
330 CSVWriter writer, | |
331 boolean atGauge, | |
332 boolean isQ | |
333 ) { | |
325 logger.info("WaterlevelExporter.writeCSVHeader"); | 334 logger.info("WaterlevelExporter.writeCSVHeader"); |
326 | 335 |
327 if (atGauge) { | 336 if (atGauge) { |
328 writer.writeNext(new String[] { | 337 writer.writeNext(new String[] { |
329 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), | 338 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), |
330 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), | 339 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), |
331 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), | 340 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), |
332 msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER), | 341 (isQ |
342 ? msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER) | |
343 : msg(CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER)), | |
333 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), | 344 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), |
334 msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) | 345 msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) |
335 }); | 346 }); |
336 } | 347 } |
337 else { | 348 else { |
343 }); | 354 }); |
344 } | 355 } |
345 } | 356 } |
346 | 357 |
347 | 358 |
348 protected void wQKms2CSV(CSVWriter writer, WQKms wqkms, boolean atGauge) { | 359 protected void wQKms2CSV( |
360 CSVWriter writer, | |
361 WQKms wqkms, | |
362 boolean atGauge, | |
363 boolean isQ | |
364 ) { | |
349 logger.debug("WaterlevelExporter.wQKms2CSV"); | 365 logger.debug("WaterlevelExporter.wQKms2CSV"); |
350 | 366 |
351 NumberFormat kmf = getKmFormatter(); | 367 NumberFormat kmf = getKmFormatter(); |
352 NumberFormat wf = getWFormatter(); | 368 NumberFormat wf = getWFormatter(); |
353 NumberFormat qf = getQFormatter(); | 369 NumberFormat qf = getQFormatter(); |
364 DEFAULT_CSV_NOT_IN_GAUGE_RANGE); | 380 DEFAULT_CSV_NOT_IN_GAUGE_RANGE); |
365 | 381 |
366 double a = gauge.getRange().getA().doubleValue(); | 382 double a = gauge.getRange().getA().doubleValue(); |
367 double b = gauge.getRange().getB().doubleValue(); | 383 double b = gauge.getRange().getB().doubleValue(); |
368 | 384 |
369 if (flys instanceof WINFOArtifact) { | 385 if (flys instanceof WINFOArtifact && isQ) { |
370 desc = getColumnTitle((WINFOArtifact)flys, wqkms); | 386 desc = getColumnTitle((WINFOArtifact)flys, wqkms); |
387 } | |
388 else if (!isQ) { | |
389 Double value = FLYSUtils.getValueFromWQ(wqkms); | |
390 desc = value != null | |
391 ? Formatter.getWaterlevelW(context).format(value) : null; | |
371 } | 392 } |
372 | 393 |
373 for (int i = 0; i < size; i ++) { | 394 for (int i = 0; i < size; i ++) { |
374 result = wqkms.get(i, result); | 395 result = wqkms.get(i, result); |
375 | 396 |