annotate flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 4282:8b4988815974

Added marker for Ws and Qs in Historical Discharge WQ charts. Therefore, the XYChartGenerator got two new methods addDomainMarker(Marker, boolean) and addValueMarker(Marker, boolean). The boolean parameters determine, if the marker should be visible or not. This is analogous to addAxisSeries(XYSeries, int, boolean).
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 29 Oct 2012 05:59:27 +0100
parents 13855a555d3b
children 7e7587c905ab
rev   line source
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports;
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
3 import java.io.IOException;
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.io.OutputStream;
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
5 import java.text.DateFormat;
418
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
6 import java.text.NumberFormat;
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import java.util.ArrayList;
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
8 import java.util.Map;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
9 import java.util.HashMap;
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
10 import java.util.Date;
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.util.List;
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
12 import java.util.Locale;
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
13 import java.util.regex.Matcher;
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
14 import java.util.regex.Pattern;
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import org.w3c.dom.Document;
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import org.apache.log4j.Logger;
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import au.com.bytecode.opencsv.CSVWriter;
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
22 import net.sf.jasperreports.engine.JasperExportManager;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
23 import net.sf.jasperreports.engine.JasperFillManager;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
24 import net.sf.jasperreports.engine.JasperPrint;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
25 import net.sf.jasperreports.engine.JRException;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
26
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 import de.intevation.artifacts.CallContext;
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
28 import de.intevation.artifacts.CallMeta;
2185
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
29 import de.intevation.artifacts.common.utils.Config;
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
2066
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
31 import de.intevation.flys.model.Gauge;
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
32
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
33 import de.intevation.flys.artifacts.FLYSArtifact;
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
34 import de.intevation.flys.artifacts.WINFOArtifact;
709
3b7e9ddf6bb1 New model to transport data and error reports of calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 707
diff changeset
35 import de.intevation.flys.artifacts.model.CalculationResult;
749
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
36 import de.intevation.flys.artifacts.model.WQCKms;
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 import de.intevation.flys.artifacts.model.WQKms;
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
38 import de.intevation.flys.artifacts.model.WKmsJRDataSource;
3462
13855a555d3b Added new Output WaterlevelExport (CSV, WST and PDF) to FixRealizingCompute State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3313
diff changeset
39 import de.intevation.flys.artifacts.model.fixings.FixRealizingResult;
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
40 import de.intevation.flys.artifacts.resources.Resources;
706
ddd8b37d5cd3 Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 701
diff changeset
41
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
42 import de.intevation.flys.utils.FLYSUtils;
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
43 import de.intevation.flys.utils.FLYSUtils.WQ_MODE;
445
a7947972fdeb Added a new class that supports formatters for different types of data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 418
diff changeset
44 import de.intevation.flys.utils.Formatter;
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 /**
3252
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
48 * Generates different output formats (wst, csv, pdf) of data that resulted from
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
49 * a waterlevel computation.
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
50 *
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 */
391
5d6988836f01 Added an exporter to export the computed data of a duration curve.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 389
diff changeset
53 public class WaterlevelExporter extends AbstractExporter {
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 /** The logger used in this exporter.*/
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 private static Logger logger = Logger.getLogger(WaterlevelExporter.class);
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
58 public static final String FACET_WST = "wst";
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
59
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
60 public static final String CSV_KM_HEADER =
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
61 "export.waterlevel.csv.header.km";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
62
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
63 public static final String CSV_W_HEADER =
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
64 "export.waterlevel.csv.header.w";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
65
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
66 public static final String CSV_Q_HEADER =
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
67 "export.waterlevel.csv.header.q";
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
68
2063
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
69 public static final String CSV_Q_DESC_HEADER =
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
70 "export.waterlevel.csv.header.q.desc";
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
71
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
72 public static final String CSV_W_DESC_HEADER =
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
73 "export.waterlevel.csv.header.w.desc";
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
74
2063
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
75 public static final String CSV_LOCATION_HEADER =
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
76 "export.waterlevel.csv.header.location";
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
77
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
78 public static final String CSV_GAUGE_HEADER =
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
79 "export.waterlevel.csv.header.gauge";
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
80
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
81 public static final String CSV_META_RESULT =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
82 "export.waterlevel.csv.meta.result";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
83
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
84 public static final String CSV_META_CREATION =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
85 "export.waterlevel.csv.meta.creation";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
86
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
87 public static final String CSV_META_CALCULATIONBASE =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
88 "export.waterlevel.csv.meta.calculationbase";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
89
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
90 public static final String CSV_META_RIVER =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
91 "export.waterlevel.csv.meta.river";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
92
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
93 public static final String CSV_META_RANGE =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
94 "export.waterlevel.csv.meta.range";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
95
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
96 public static final String CSV_META_GAUGE =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
97 "export.waterlevel.csv.meta.gauge";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
98
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
99 public static final String CSV_META_Q =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
100 "export.waterlevel.csv.meta.q";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
101
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
102 public static final String CSV_META_W =
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
103 "export.waterlevel.csv.meta.w";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
104
2066
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
105 public static final String CSV_NOT_IN_GAUGE_RANGE =
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
106 "export.waterlevel.csv.not.in.gauge.range";
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
107
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
108
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
109 public static final Pattern NUMBERS_PATTERN =
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
110 Pattern.compile("\\D*(\\d++.\\d*)\\D*");
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
111
2063
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
112 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km";
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
113 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]";
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
114 public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]";
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
115 public static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung";
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
116 public static final String DEFAULT_CSV_W_DESC_HEADER = "W/Pegel [cm]";
2063
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
117 public static final String DEFAULT_CSV_LOCATION_HEADER = "Lage";
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
118 public static final String DEFAULT_CSV_GAUGE_HEADER = "Bezugspegel";
2066
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
119 public static final String DEFAULT_CSV_NOT_IN_GAUGE_RANGE =
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
120 "außerhalb des gewählten Bezugspegels";
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
121
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
122 public static final String PDF_HEADER_MODE = "export.waterlevel.pdf.mode";
2284
5d1ba04d2f68 Refactored Formatter access to ease reuse.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2185
diff changeset
123 public static final String JASPER_FILE = "export.waterlevel.pdf.file";
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
124
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 /** The storage that contains all WQKms objects for the different facets.*/
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 protected List<WQKms[]> data;
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 public void init(Document request, OutputStream out, CallContext context) {
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 logger.debug("WaterlevelExporter.init");
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131
391
5d6988836f01 Added an exporter to export the computed data of a duration curve.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 389
diff changeset
132 super.init(request, out, context);
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133
391
5d6988836f01 Added an exporter to export the computed data of a duration curve.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 389
diff changeset
134 this.data = new ArrayList<WQKms[]>();
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 }
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
138 @Override
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
139 public void generate()
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
140 throws IOException
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
141 {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
142 logger.debug("WaterlevelExporter.generate");
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
143
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
144 if (facet != null && facet.equals(AbstractExporter.FACET_CSV)) {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
145 generateCSV();
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
146 }
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
147 else if (facet != null && facet.equals(FACET_WST)) {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
148 generateWST();
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
149 }
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
150 else if (facet != null && facet.equals(AbstractExporter.FACET_PDF)) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
151 generatePDF();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
152 }
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
153 else {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
154 throw new IOException("invalid facet for exporter");
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
155 }
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
156 }
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
157
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
158
701
dad1a2c88f9f Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 664
diff changeset
159 @Override
dad1a2c88f9f Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 664
diff changeset
160 protected void addData(Object d) {
709
3b7e9ddf6bb1 New model to transport data and error reports of calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 707
diff changeset
161 if (d instanceof CalculationResult) {
3b7e9ddf6bb1 New model to transport data and error reports of calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 707
diff changeset
162 d = ((CalculationResult)d).getData();
3b7e9ddf6bb1 New model to transport data and error reports of calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 707
diff changeset
163 if (d instanceof WQKms []) {
3b7e9ddf6bb1 New model to transport data and error reports of calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 707
diff changeset
164 data.add((WQKms [])d);
3b7e9ddf6bb1 New model to transport data and error reports of calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 707
diff changeset
165 }
3462
13855a555d3b Added new Output WaterlevelExport (CSV, WST and PDF) to FixRealizingCompute State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3313
diff changeset
166 else if (d instanceof FixRealizingResult) {
13855a555d3b Added new Output WaterlevelExport (CSV, WST and PDF) to FixRealizingCompute State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3313
diff changeset
167 data.add(((FixRealizingResult) d).getWQKms());
13855a555d3b Added new Output WaterlevelExport (CSV, WST and PDF) to FixRealizingCompute State.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3313
diff changeset
168 }
701
dad1a2c88f9f Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 664
diff changeset
169 }
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170 }
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
173 /**
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
174 * This method is used to prepare the column titles of waterlevel exports.
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
175 * Titles in this export include the Q value. If a Q value matches a named
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
176 * main value (as HQ100 or MNQ) this named main value should be used as
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
177 * title. This method resets the name of the <i>wqkms</i> object if such
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
178 * named main value fits to the chosen Q.
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
179 *
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
180 * @param winfo A WINFO Artifact.
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
181 * @param wqkms A WQKms object that should be prepared.
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
182 */
2038
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
183 protected String getColumnTitle(WINFOArtifact winfo, WQKms wqkms) {
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
184 logger.debug("WaterlevelExporter.prepareNamedValue");
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
185
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
186 String name = wqkms.getName();
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
187
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
188 logger.debug("Name of WQKms = '" + name + "'");
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
189
2038
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
190 if (name.indexOf("W=") >= 0) {
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
191 return name;
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
192 }
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
193
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
194 Matcher m = NUMBERS_PATTERN.matcher(name);
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
195
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
196 if (m.matches()) {
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
197 String raw = m.group(1);
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
198
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
199 try {
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
200 double v = Double.valueOf(raw);
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
201
2038
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
202 String nmv = FLYSUtils.getNamedMainValue(winfo, v);
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
203
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
204 if (nmv != null && nmv.length() > 0) {
2596
00cf69edfcc0 #252 Added numeric value of a named main value into the WST export.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2555
diff changeset
205 nmv = FLYSUtils.stripNamedMainValue(nmv);
00cf69edfcc0 #252 Added numeric value of a named main value into the WST export.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2555
diff changeset
206 nmv += "=" + String.valueOf(v);
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
207 logger.debug("Set named main value '" + nmv + "'");
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
208
2038
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
209 return nmv;
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
210 }
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
211 }
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
212 catch (NumberFormatException nfe) {
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
213 // do nothing here
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
214 }
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
215 }
2038
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
216
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
217 return name;
2035
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
218 }
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
219
3ebbe497d7f7 #252 Set titles in waterlevel exports to named main values if those are existing for given Q values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 749
diff changeset
220
2087
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
221 protected String getCSVRowTitle(WINFOArtifact winfo, WQKms wqkms) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
222 logger.debug("WaterlevelExporter.prepareNamedValue");
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
223
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
224 String name = wqkms.getName();
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
225
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
226 logger.debug("Name of WQKms = '" + name + "'");
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
227
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
228 WQ_MODE wqmode = FLYSUtils.getWQMode(winfo);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
229
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
230 if (wqmode == WQ_MODE.WFREE || wqmode == WQ_MODE.QGAUGE) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
231 return localizeWQKms(winfo, wqkms);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
232 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
233
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
234 Double v = wqkms.getRawValue();
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
235
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
236 String nmv = FLYSUtils.getNamedMainValue(winfo, v);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
237
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
238 if (nmv != null && nmv.length() > 0) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
239 nmv = FLYSUtils.stripNamedMainValue(nmv);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
240 logger.debug("Set named main value '" + nmv + "'");
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
241
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
242 return nmv;
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
243 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
244
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
245 return localizeWQKms(winfo, wqkms);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
246 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
247
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
248
3252
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
249 /**
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
250 * Get a string like 'W=' or 'Q=' with a number following in localized
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
251 * format.
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
252 */
2087
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
253 protected String localizeWQKms(WINFOArtifact winfo, WQKms wqkms) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
254 WQ_MODE wqmode = FLYSUtils.getWQMode(winfo);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
255 Double rawValue = wqkms.getRawValue();
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
256
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
257 if (rawValue == null) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
258 return wqkms.getName();
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
259 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
260
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
261 NumberFormat nf = Formatter.getRawFormatter(context);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
262
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
263 if (wqmode == WQ_MODE.WFREE || wqmode == WQ_MODE.WGAUGE) {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
264 return "W=" + nf.format(rawValue);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
265 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
266 else {
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
267 return "Q=" + nf.format(rawValue);
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
268 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
269 }
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
270
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
271
701
dad1a2c88f9f Base WST/CSV exports on facets. TODO: generate the facets.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 664
diff changeset
272 @Override
391
5d6988836f01 Added an exporter to export the computed data of a duration curve.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 389
diff changeset
273 protected void writeCSVData(CSVWriter writer) {
5d6988836f01 Added an exporter to export the computed data of a duration curve.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 389
diff changeset
274 logger.info("WaterlevelExporter.writeData");
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
275
3252
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
276 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master);
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
277 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE;
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
278 boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE;
2555
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
279 FLYSUtils.WQ_INPUT input
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
280 = FLYSUtils.getWQInputMode((FLYSArtifact)master);
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
281
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
282 writeCSVMeta(writer);
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
283 writeCSVHeader(writer, atGauge, isQ);
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
284
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
285 for (WQKms[] tmp: data) {
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
286 for (WQKms wqkms: tmp) {
3252
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
287 wQKms2CSV(writer, wqkms, atGauge, isQ);
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
288 }
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
289 }
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
290 }
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
291
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
292
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
293 protected void writeCSVMeta(CSVWriter writer) {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
294 logger.info("WaterlevelExporter.writeCSVMeta");
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
295
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
296 CallMeta meta = context.getMeta();
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
297
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
298 FLYSArtifact flys = (FLYSArtifact) master;
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
299
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
300 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
301 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
302 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
303 CSV_META_RESULT,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
304 CSV_META_RESULT,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
305 new Object[] { FLYSUtils.getRivername(flys) })
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
306 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
307
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
308 Locale locale = Resources.getLocale(meta);
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
309 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
310
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
311 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
312 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
313 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
314 CSV_META_CREATION,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
315 CSV_META_CREATION,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
316 new Object[] { df.format(new Date()) })
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
317 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
318
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
319 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
320 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
321 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
322 CSV_META_CALCULATIONBASE,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
323 CSV_META_CALCULATIONBASE,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
324 new Object[] { "" }) // TODO what is required at this place?
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
325 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
326
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
327 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
328 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
329 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
330 CSV_META_RIVER,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
331 CSV_META_RIVER,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
332 new Object[] { FLYSUtils.getRivername(flys) })
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
333 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
334
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
335 double[] kms = FLYSUtils.getKmRange(flys);
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
336 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
337 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
338 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
339 CSV_META_RANGE,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
340 CSV_META_RANGE,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
341 new Object[] { kms[0], kms[kms.length-1] })
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
342 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
343
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
344 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
345 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
346 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
347 CSV_META_GAUGE,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
348 CSV_META_GAUGE,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
349 new Object[] { FLYSUtils.getGaugename(flys) })
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
350 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
351
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
352 FLYSUtils.WQ_MODE wq = FLYSUtils.getWQMode(flys);
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
353 if (wq == FLYSUtils.WQ_MODE.QFREE || wq == FLYSUtils.WQ_MODE.QGAUGE) {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
354 double[] qs = FLYSUtils.getQs(flys);
2555
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
355 FLYSUtils.WQ_INPUT input = FLYSUtils.getWQInputMode(flys);
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
356
2555
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
357 String data = "";
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
358
2555
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
359 if ((input == FLYSUtils.WQ_INPUT.ADAPTED ||
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
360 input == FLYSUtils.WQ_INPUT.RANGE) &&
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
361 qs != null && qs.length > 0)
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
362 {
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
363 data = String.valueOf(qs[0]);
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
364 data += " - " + String.valueOf(qs[qs.length-1]);
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
365 }
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
366 else if (input == FLYSUtils.WQ_INPUT.SINGLE && qs != null){
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
367 data = String.valueOf(qs[0]);
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
368 for (int i = 1; i < qs.length; i++) {
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
369 data += ", " + String.valueOf(qs[i]);
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
370 }
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
371 }
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
372 else {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
373 logger.warn("Could not determine Q range!");
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
374 }
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
375
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
376 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
377 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
378 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
379 CSV_META_Q,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
380 CSV_META_Q,
2555
ba46af45b6e4 Write the gauge description instead of the Q value to CSV file.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2290
diff changeset
381 new Object[] {data})
2045
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
382 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
383 }
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
384 else {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
385 double[] ws = FLYSUtils.getWs(flys);
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
386
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
387 String lower = "";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
388 String upper = "";
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
389
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
390 if (ws != null && ws.length > 0) {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
391 lower = String.valueOf(ws[0]);
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
392 upper = String.valueOf(ws[ws.length-1]);
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
393 }
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
394 else {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
395 logger.warn("Could not determine W range!");
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
396 }
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
397
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
398 writer.writeNext(new String[] {
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
399 Resources.getMsg(
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
400 meta,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
401 CSV_META_W,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
402 CSV_META_W,
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
403 new Object[] { lower, upper })
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
404 });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
405 }
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
406
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
407 writer.writeNext(new String[] { "" });
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
408 }
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
409
d13be39cfd1d #242 Added header with meta information into CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2038
diff changeset
410
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
411 protected void writeCSVHeader(
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
412 CSVWriter writer,
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
413 boolean atGauge,
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
414 boolean isQ
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
415 ) {
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
416 logger.info("WaterlevelExporter.writeCSVHeader");
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
417
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
418 if (atGauge) {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
419 writer.writeNext(new String[] {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
420 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
421 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
422 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER),
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
423 (isQ
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
424 ? msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER)
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
425 : msg(CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER)),
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
426 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
427 msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER)
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
428 });
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
429 }
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
430 else {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
431 writer.writeNext(new String[] {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
432 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
433 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
434 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
435 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER)
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
436 });
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
437 }
416
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
438 }
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
439
340dc41a7ea3 The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 391
diff changeset
440
3252
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
441 /**
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
442 * Write "rows" of csv data from wqkms with writer.
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
443 */
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
444 protected void wQKms2CSV(
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
445 CSVWriter writer,
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
446 WQKms wqkms,
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
447 boolean atGauge,
3252
62c9bcef0680 Fix issue705 (maín value names also in w/q-range mode).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2764
diff changeset
448 boolean isQ
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
449 ) {
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
450 logger.debug("WaterlevelExporter.wQKms2CSV");
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
451
418
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
452 NumberFormat kmf = getKmFormatter();
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
453 NumberFormat wf = getWFormatter();
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
454 NumberFormat qf = getQFormatter();
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
455
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
456 int size = wqkms.size();
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
457 double[] result = new double[3];
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
458
2066
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
459 FLYSArtifact flys = (FLYSArtifact) master;
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
460 Gauge gauge = FLYSUtils.getGauge(flys);
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
461 String gaugeName = gauge.getName();
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
462 String desc = "";
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
463 String notinrange = msg(
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
464 CSV_NOT_IN_GAUGE_RANGE,
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
465 DEFAULT_CSV_NOT_IN_GAUGE_RANGE);
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
466
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
467 double a = gauge.getRange().getA().doubleValue();
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
468 double b = gauge.getRange().getB().doubleValue();
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
469
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
470 if (flys instanceof WINFOArtifact && isQ) {
2087
bda04ae1154f #196 Localized the WQ labels in CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2068
diff changeset
471 desc = getCSVRowTitle((WINFOArtifact)flys, wqkms);
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
472 }
2068
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
473 else if (!isQ) {
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
474 Double value = FLYSUtils.getValueFromWQ(wqkms);
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
475 desc = value != null
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
476 ? Formatter.getWaterlevelW(context).format(value) : null;
0cf60d64895c #370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2066
diff changeset
477 }
2063
97a25b54eea3 Part 1 of #125: added a description for a location to the WaterlevelExport.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2045
diff changeset
478
2144
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
479 long startTime = System.currentTimeMillis();
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
480
3313
1a9ab048573a Prevent nasty NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3252
diff changeset
481 String colDesc = desc;
1a9ab048573a Prevent nasty NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3252
diff changeset
482 if (flys instanceof WINFOArtifact) {
1a9ab048573a Prevent nasty NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3252
diff changeset
483 if (wqkms != null && wqkms.getRawValue() != null) {
1a9ab048573a Prevent nasty NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3252
diff changeset
484 WINFOArtifact winfo = (WINFOArtifact) flys;
1a9ab048573a Prevent nasty NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3252
diff changeset
485 colDesc = FLYSUtils.getNamedMainValue(winfo, wqkms.getRawValue());
1a9ab048573a Prevent nasty NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3252
diff changeset
486 }
1a9ab048573a Prevent nasty NPE.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3252
diff changeset
487 }
2612
49cfa5c66651 Squashed performance bug introduced in rev4070. Now CSV export is about 245 times faster.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2596
diff changeset
488
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
489 for (int i = 0; i < size; i ++) {
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
490 result = wqkms.get(i, result);
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
491
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
492 if (atGauge) {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
493 writer.writeNext(new String[] {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
494 kmf.format(result[2]),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
495 wf.format(result[0]),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
496 qf.format(result[1]),
2612
49cfa5c66651 Squashed performance bug introduced in rev4070. Now CSV export is about 245 times faster.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2596
diff changeset
497 colDesc,
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
498 FLYSUtils.getLocationDescription(flys, result[2]),
2066
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
499 result[2] >= a && result[2] <= b
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
500 ? gaugeName
2b6a0de47379 Improved the WaterlevelExporter: added range check for W/Q at gauge.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2065
diff changeset
501 : notinrange
2065
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
502 });
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
503 }
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
504 else {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
505 writer.writeNext(new String[] {
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
506 kmf.format(result[2]),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
507 wf.format(result[0]),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
508 qf.format(result[1]),
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
509 FLYSUtils.getLocationDescription(flys, result[2])
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
510 });
2f5628f0de0e Part 2 of #125: add gaugename and Q description based on the selected WQ mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2063
diff changeset
511 }
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
512 }
2144
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
513
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
514 long stopTime = System.currentTimeMillis();
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
515
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
516 if (logger.isDebugEnabled()) {
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
517 logger.debug("Writing CSV took " +
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
518 (float)(stopTime-startTime)/1000f + " secs.");
a4bdf7d8527e Use FastAnnotations for LocationProvider.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2087
diff changeset
519 }
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
520 }
418
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
521
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
522
e0fec407a280 ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 416
diff changeset
523 /**
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
524 * Generates the output in WST format.
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
525 */
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
526 protected void generateWST()
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
527 throws IOException
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
528 {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
529 logger.info("WaterlevelExporter.generateWST");
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
530
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
531 int cols = data.get(0).length;
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
532 WstWriter writer = new WstWriter(cols);
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
533
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
534 writeWSTData(writer);
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
535
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
536 writer.write(out);
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
537 }
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
538
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
539
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
540 protected void writeWSTData(WstWriter writer) {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
541 logger.debug("WaterlevelExporter.writeWSTData");
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
542
749
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
543 double[] result = new double[4];
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
544
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
545 for (WQKms[] tmp: data) {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
546 for (WQKms wqkms: tmp) {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
547 int size = wqkms != null ? wqkms.size() : 0;
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
548
450
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
549 addWSTColumn(writer, wqkms);
447
5606ba4139e0 WSTs will now have a header that contains the names of the Ws or Qs that had been defined for the computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 446
diff changeset
550
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
551 for (int i = 0; i < size; i++) {
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
552 result = wqkms.get(i, result);
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
553
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
554 writer.add(result);
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
555 }
749
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
556
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
557 if (wqkms instanceof WQCKms) {
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
558 addWSTColumn(writer, wqkms);
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
559
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
560 for (int c = 0; c < size; c++) {
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
561 result = wqkms.get(c, result);
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
562
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
563 writer.addCorrected(result);
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
564 }
72bcbc308501 The WST export contains the corrected W values now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 709
diff changeset
565 }
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
566 }
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
567 }
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
568 }
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
569
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
570
2038
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
571 /**
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
572 * This method is used to register a new column at <i>writer</i>. The name /
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
573 * title of the column depends on the Q or W value of <i>wqkms</i>. If a Q
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
574 * was selected and the Q fits to a named main value, the title is set to
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
575 * the named main value. Otherwise, the name returned by
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
576 * <i>WQKms.getName()</i> is set.
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
577 *
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
578 * @param writer The WstWriter.
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
579 * @param wqkms The new WST column.
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
580 */
450
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
581 protected void addWSTColumn(WstWriter writer, WQKms wqkms) {
2038
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
582 if (master instanceof WINFOArtifact) {
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
583 writer.addColumn(getColumnTitle((WINFOArtifact) master, wqkms));
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
584 }
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
585 else {
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
586 writer.addColumn(wqkms.getName());
f73036b991e2 Bugfix: repaired broken named values in exports - the last solution had bad side effects.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2035
diff changeset
587 }
450
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
588 }
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
589
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 447
diff changeset
590
446
c0bec245f608 Implemented writer that creates WSTs and enabled the WaterlevelExporter to create those.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 445
diff changeset
591 /**
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
592 *
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
593 */
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
594 @Override
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
595 protected void writePDF(OutputStream out) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
596 logger.debug("write PDF");
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
597 WKmsJRDataSource source = createJRData();
2185
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
598
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
599 String jasperFile = Resources.getMsg(
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
600 context.getMeta(),
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
601 JASPER_FILE,
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
602 "/jasper/waterlevel_en.jasper");
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
603 String confPath = Config.getConfigDirectory().toString();
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
604
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
605
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
606 Map parameters = new HashMap();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
607 parameters.put("ReportTitle", "Exported Data");
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
608 try {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
609 JasperPrint print = JasperFillManager.fillReport(
2185
a9a8df1473fd Added i18n support to PDF report export.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2182
diff changeset
610 confPath + jasperFile,
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
611 parameters,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
612 source);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
613 JasperExportManager.exportReportToPdfStream(print, out);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
614 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
615 catch(JRException je) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
616 logger.warn("Error generating PDF Report!");
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
617 je.printStackTrace();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
618 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
619 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
620
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
621 protected WKmsJRDataSource createJRData() {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
622 WKmsJRDataSource source = new WKmsJRDataSource();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
623
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
624 WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
625 boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
626 boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
627
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
628 addMetaData(source);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
629 for (WQKms[] tmp: data) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
630 for (WQKms wqkms: tmp) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
631 addWKmsData(wqkms, atGauge, isQ, source);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
632 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
633 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
634 return source;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
635 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
636
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
637 protected void addMetaData(WKmsJRDataSource source) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
638 CallMeta meta = context.getMeta();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
639
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
640 FLYSArtifact flys = (FLYSArtifact) master;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
641
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
642 source.addMetaData ("river", FLYSUtils.getRivername(flys));
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
643
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
644 Locale locale = Resources.getLocale(meta);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
645 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
646
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
647 source.addMetaData("date", df.format(new Date()));
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
648
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
649 double[] kms = FLYSUtils.getKmRange(flys);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
650 source.addMetaData("range", kms[0] + " - " + kms[kms.length-1]);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
651
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
652 source.addMetaData("gauge", FLYSUtils.getGaugename(flys));
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
653
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
654 source.addMetaData("calculation", Resources.getMsg(
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
655 locale,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
656 PDF_HEADER_MODE,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
657 "Waterlevel"));
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
658 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
659
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
660 protected void addWKmsData(
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
661 WQKms wqkms,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
662 boolean atGauge,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
663 boolean isQ,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
664 WKmsJRDataSource source)
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
665 {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
666 logger.debug("WaterlevelExporter.addWKmsData");
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
667
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
668 NumberFormat kmf = getKmFormatter();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
669 NumberFormat wf = getWFormatter();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
670 NumberFormat qf = getQFormatter();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
671
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
672 int size = wqkms.size();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
673 double[] result = new double[3];
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
674
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
675 FLYSArtifact flys = (FLYSArtifact) master;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
676 Gauge gauge = FLYSUtils.getGauge(flys);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
677 String gaugeName = gauge.getName();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
678 String desc = "";
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
679 String notinrange = msg(
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
680 CSV_NOT_IN_GAUGE_RANGE,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
681 DEFAULT_CSV_NOT_IN_GAUGE_RANGE);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
682
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
683 double a = gauge.getRange().getA().doubleValue();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
684 double b = gauge.getRange().getB().doubleValue();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
685
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
686 if (flys instanceof WINFOArtifact && isQ) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
687 desc = getCSVRowTitle((WINFOArtifact)flys, wqkms);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
688 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
689 else if (!isQ) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
690 Double value = FLYSUtils.getValueFromWQ(wqkms);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
691 desc = value != null
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
692 ? Formatter.getWaterlevelW(context).format(value) : null;
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
693 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
694
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
695 long startTime = System.currentTimeMillis();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
696
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
697 for (int i = 0; i < size; i ++) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
698 result = wqkms.get(i, result);
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
699
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
700 if (atGauge) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
701 source.addData(new String[] {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
702 kmf.format(result[2]),
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
703 wf.format(result[0]),
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
704 qf.format(result[1]),
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
705 desc,
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
706 FLYSUtils.getLocationDescription(flys, result[2]),
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
707 result[2] >= a && result[2] <= b
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
708 ? gaugeName
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
709 : notinrange
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
710 });
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
711 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
712 else {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
713 source.addData(new String[] {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
714 kmf.format(result[2]),
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
715 wf.format(result[0]),
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
716 qf.format(result[1]),
2764
f8a1a8af338e Issue 667.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2612
diff changeset
717 desc,
f8a1a8af338e Issue 667.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2612
diff changeset
718 FLYSUtils.getLocationDescription(flys, result[2]),
f8a1a8af338e Issue 667.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2612
diff changeset
719 result[2] >= a && result[2] <= b
f8a1a8af338e Issue 667.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2612
diff changeset
720 ? gaugeName
f8a1a8af338e Issue 667.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2612
diff changeset
721 : notinrange
2176
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
722 });
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
723 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
724 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
725
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
726 long stopTime = System.currentTimeMillis();
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
727
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
728 if (logger.isDebugEnabled()) {
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
729 logger.debug("Writing PDF data took " +
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
730 (float)(stopTime-startTime)/1000f + " secs.");
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
731 }
65dac9cf6ff5 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2144
diff changeset
732 }
389
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
733 }
69d05357c177 Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
734 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org