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

http://dive4elements.wald.intevation.org