annotate flys-artifacts/src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java @ 416:340dc41a7ea3

The CSV exports will now have headers. flys-artifacts/trunk@1880 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 10 May 2011 13:18:03 +0000
parents 9eb5f0c8fe7f
children e0fec407a280
rev   line source
407
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import org.apache.log4j.Logger;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import au.com.bytecode.opencsv.CSVWriter;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import de.intevation.artifacts.Artifact;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import de.intevation.flys.artifacts.WINFOArtifact;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import de.intevation.flys.artifacts.model.WQCKms;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import de.intevation.flys.artifacts.model.WQKms;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 /**
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 */
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 public class DischargeLongitudinalSectionExporter extends WaterlevelExporter {
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 /** The logger used in this exporter.*/
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 private static Logger logger =
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 Logger.getLogger(DischargeLongitudinalSectionExporter.class);
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
23 public static final String CSV_KM_HEADER =
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
24 "export.discharge.longitudinal.section.csv.header.km";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
25
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
26 public static final String CSV_W_HEADER =
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
27 "export.discharge.longitudinal.section.csv.header.w";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
28
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
29 public static final String CSV_CW_HEADER =
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
30 "export.discharge.longitudinal.section.csv.header.cw";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
31
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
32 public static final String CSV_Q_HEADER =
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
33 "export.discharge.longitudinal.section.csv.header.q";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
34
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
35 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
36 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
37 public static final String DEFAULT_CSV_CW_HEADER = "W korr.";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
38 public static final String DEFAULT_CSV_Q_HEADER = "Q [m³/s]";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
39
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
40
407
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 @Override
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 protected void addData(Artifact artifact) {
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 WINFOArtifact winfo = (WINFOArtifact) artifact;
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 WQKms[] wqkms = winfo.getDischargeLongitudinalSectionData();
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 logger.debug("Got " + wqkms != null ? wqkms.length : 0 + " WQKms obj.");
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 data.add(wqkms);
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 }
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 @Override
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
53 protected void writeCSVHeader(CSVWriter writer) {
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
54 logger.info("WaterlevelExporter.writeCSVHeader");
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
55
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
56 writer.writeNext(new String[] {
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
57 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER),
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
58 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER),
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
59 msg(CSV_CW_HEADER, DEFAULT_CSV_CW_HEADER),
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
60 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER)
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
61 });
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
62 }
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
63
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 407
diff changeset
64 @Override
407
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 protected void wQKms2CSV(CSVWriter writer, WQKms wqkms) {
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 logger.debug("WaterlevelExporter.wQKms2CSV");
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 int size = wqkms.size();
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 double[] result = new double[4];
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 for (int i = 0; i < size; i ++) {
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 result = wqkms.get(i, result);
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 String wc = "";
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 if (wqkms instanceof WQCKms) {
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 wc = Double.toString(result[3]);
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 }
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 writer.writeNext(new String[] {
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 Double.toString(result[2]),
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 Double.toString(result[0]),
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 wc,
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 Double.toString(result[1])
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 });
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 }
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 }
9eb5f0c8fe7f Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org