Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/FixWaterlevelExporter.java @ 9486:ce13a2f07290
pdf exports added for fixation+bundu (waterlevel)
author | gernotbelger |
---|---|
date | Mon, 17 Sep 2018 19:07:57 +0200 |
parents | dd05a5eef210 |
children | 33ce8eba9806 |
rev | line source |
---|---|
9457 | 1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU AGPL (>=v3) | |
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the | |
6 * documentation coming with Dive4Elements River for details. | |
7 */ | |
8 | |
9 package org.dive4elements.river.exports; | |
10 | |
11 import java.text.NumberFormat; | |
12 | |
13 import org.apache.log4j.Logger; | |
14 import org.dive4elements.river.artifacts.D4EArtifact; | |
15 import org.dive4elements.river.model.Gauge; | |
16 import org.dive4elements.river.utils.RiverUtils; | |
17 | |
18 import au.com.bytecode.opencsv.CSVWriter; | |
19 | |
20 /** | |
21 * Generates different output formats (wst, csv, pdf) of data that resulted from | |
22 * a waterlevel computation. | |
23 * | |
24 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | |
25 */ | |
26 public class FixWaterlevelExporter extends WaterlevelExporter { | |
27 | |
28 /** The log used in this exporter. */ | |
29 private static Logger log = Logger.getLogger(FixWaterlevelExporter.class); | |
30 | |
31 @Override | |
9485 | 32 protected void writeRow4(final CSVWriter writer, final double wqkm[], final D4EArtifact flys, final Gauge gauge, final boolean isQ) { |
33 if (!isQ) { | |
34 super.writeRow4(writer, wqkm, flys, gauge, isQ); | |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
35 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
36 final NumberFormat kmf = getKmFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
37 final NumberFormat wf = getWFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
38 final NumberFormat qf = getQFormatter(); |
9457 | 39 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
40 final String waterlevel = getWaterlevel(wqkm[1], gauge); |
9457 | 41 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
42 writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), waterlevel, qf.format(RiverUtils.roundQ(wqkm[1])), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
43 RiverUtils.getLocationDescription(flys, wqkm[2]) }); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
44 } |
9457 | 45 } |
46 | |
47 /** Write an csv-row at gauge location. */ | |
48 @Override | |
9485 | 49 protected void writeRow6(final CSVWriter writer, final double wqkm[], final String wOrQDesc, final D4EArtifact flys, final String gaugeName, |
50 final Gauge gauge, final boolean isQ) { | |
51 if (!isQ) { | |
52 super.writeRow6(writer, wqkm, wOrQDesc, flys, gaugeName, gauge, isQ); | |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
53 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
54 final NumberFormat kmf = getKmFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
55 final NumberFormat wf = getWFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
56 final NumberFormat qf = getQFormatter(); |
9457 | 57 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
58 final String waterlevel = getWaterlevel(wqkm[1], gauge); |
9457 | 59 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
60 writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), waterlevel, qf.format(RiverUtils.roundQ(wqkm[1])), wOrQDesc, |
9485 | 61 RiverUtils.getLocationDescription(flys, wqkm[2]), gaugeName }); |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
62 } |
9457 | 63 } |
64 | |
65 /** | |
66 * Write the header, with different headings depending on whether at a | |
67 * gauge or at a location. | |
68 */ | |
69 | |
70 @Override | |
71 protected void writeCSVHeader(final CSVWriter writer, final boolean atGauge, final boolean isQ) { | |
9485 | 72 if (!isQ) { |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
73 super.writeCSVHeader(writer, atGauge, isQ); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
74 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
75 log.info("WaterlevelExporter.writeCSVHeader"); |
9457 | 76 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
77 final String unit = RiverUtils.getRiver((D4EArtifact) this.master).getWstUnit().getName(); |
9457 | 78 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
79 final String headerWamPegelNeu = msg("fix.export.csv.w_at_gauge"); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
80 |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
81 if (atGauge) { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
82 writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { unit }), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
83 headerWamPegelNeu, msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
84 |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
85 // FIXME: use WaterlevelDescriptionBuilder instead and also remove all this duplicate code. |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
86 (isQ ? msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER) : msg(CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER)), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
87 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) }); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
88 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
89 writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { unit }), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
90 headerWamPegelNeu, msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER) }); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
91 } |
9457 | 92 } |
93 } | |
94 | |
95 } |