comparison flys-artifacts/src/main/java/org/dive4elements/river/exports/sq/SQRelationExporter.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/exports/sq/SQRelationExporter.java@1df6984628c3
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.exports.sq;
2
3 import java.io.OutputStream;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import org.w3c.dom.Document;
8
9 import au.com.bytecode.opencsv.CSVWriter;
10
11 import org.dive4elements.artifacts.CallContext;
12
13 import org.dive4elements.river.artifacts.model.CalculationResult;
14
15 import org.dive4elements.river.artifacts.model.sq.SQFractionResult;
16 import org.dive4elements.river.artifacts.model.sq.SQResult;
17 import org.dive4elements.river.artifacts.model.Parameters;
18
19 import org.dive4elements.river.exports.AbstractExporter;
20
21 import org.apache.log4j.Logger;
22
23 /**
24 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
25 */
26 public class SQRelationExporter extends AbstractExporter {
27
28 /** Private logger. */
29 private static final Logger logger =
30 Logger.getLogger(SQRelationExporter.class);
31
32
33 public static final String CSV_PARAMETER =
34 "export.sqrelation.csv.header.parameter";
35
36 public static final String CSV_STATION =
37 "export.sqrelation.csv.header.station";
38
39 public static final String CSV_KM =
40 "export.sqrelation.csv.header.km";
41
42 public static final String CSV_FUNCTION =
43 "export.sqrelation.csv.header.function";
44
45 public static final String CSV_GAUGE =
46 "export.sqrelation.csv.header.gauge";
47
48 public static final String CSV_COEFF_A =
49 "export.sqrelation.csv.header.coeff.a";
50
51 public static final String CSV_COEFF_B =
52 "export.sqrelation.csv.header.coeff.b";
53
54 public static final String CSV_COEFF_Q =
55 "export.sqrelation.csv.header.coeff.q";
56
57 public static final String CSV_COEFF_R =
58 "export.sqrelation.csv.header.coeff.r";
59
60 public static final String CSV_N_TOTAL =
61 "export.sqrelation.csv.header.n.total";
62
63 public static final String CSV_N_OUTLIERS =
64 "export.sqrelation.csv.header.n.outliers";
65
66 public static final String CSV_C_DUAN =
67 "export.sqrelation.csv.header.c.duan";
68
69 public static final String CSV_C_FERGUSON =
70 "export.sqrelation.csv.header.c.ferguson";
71
72 public static final String CSV_VARIANCE =
73 "export.sqrelation.csv.header.variance";
74
75
76 protected List<SQResult []> data;
77
78
79 public void init(Document request, OutputStream out, CallContext cc) {
80 super.init(request, out, cc);
81 data = new ArrayList<SQResult []>();
82 }
83
84
85 @Override
86 protected void addData(Object d) {
87 if (d instanceof CalculationResult) {
88 d = ((CalculationResult)d).getData();
89 if (d instanceof SQResult []) {
90 data.add((SQResult [])d);
91 }
92 }
93 }
94
95 protected void writeCSVHeader(CSVWriter writer) {
96 writer.writeNext(new String[] {
97 msg(CSV_KM , CSV_KM),
98 msg(CSV_PARAMETER, CSV_PARAMETER),
99 msg(CSV_COEFF_A , CSV_COEFF_A),
100 msg(CSV_COEFF_B , CSV_COEFF_B),
101 msg(CSV_N_TOTAL , CSV_N_TOTAL),
102 msg(CSV_N_OUTLIERS, CSV_N_OUTLIERS),
103 msg(CSV_VARIANCE , CSV_VARIANCE)
104 });
105 }
106
107 @Override
108 protected void writeCSVData(CSVWriter writer) {
109 logger.debug("writeCSVData");
110
111 writeCSVHeader(writer);
112
113 for (SQResult [] results: data) {
114 for (SQResult result: results) {
115 data2CSV(writer, result);
116 }
117 }
118 }
119
120 protected void data2CSV(CSVWriter writer, SQResult result) {
121 logger.debug("data2CSV");
122
123 // TODO: i18n
124 String km = String.valueOf(result.getKm());
125
126 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; ++i) {
127 SQFractionResult fraction = result.getFraction(i);
128
129 String name = result.getFractionName(i);
130
131 Parameters parameters = fraction.getParameters();
132
133 if (parameters == null) {
134 continue;
135 }
136
137 double a = parameters.getValue(0, "a");
138 double b = parameters.getValue(0, "b");
139 double sd = Math.sqrt(parameters.getValue(0, "std_dev"));
140 int o = fraction.totalNumOutliers();
141 int t = fraction.numMeasurements() + o;
142
143 writer.writeNext(new String[] {
144 km,
145 name,
146 String.valueOf(a),
147 String.valueOf(b),
148 String.valueOf(t),
149 String.valueOf(o),
150 String.valueOf(sd)
151 });
152 }
153 }
154
155
156 @Override
157 protected void writePDF(OutputStream out) {
158 logger.debug("writePDF");
159 logger.error("NOT IMPLEMENTED: writePDF");
160 }
161 }
162 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org