comparison artifacts/src/main/java/org/dive4elements/river/exports/sq/SQRelationExporter.java @ 6828:708416bb560c

(issue1347) Add new variables to SQ Relation output.
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 14 Aug 2013 15:23:36 +0200
parents 8c976bb0362f
children eb4b123daaf7
comparison
equal deleted inserted replaced
6827:2972a219743d 6828:708416bb560c
14 import java.util.Map; 14 import java.util.Map;
15 import java.util.HashMap; 15 import java.util.HashMap;
16 import java.util.Date; 16 import java.util.Date;
17 import java.util.Locale; 17 import java.util.Locale;
18 import java.text.DateFormat; 18 import java.text.DateFormat;
19 import java.text.NumberFormat;
19 20
20 import org.w3c.dom.Document; 21 import org.w3c.dom.Document;
21 22
22 import net.sf.jasperreports.engine.JasperExportManager; 23 import net.sf.jasperreports.engine.JasperExportManager;
23 import net.sf.jasperreports.engine.JasperFillManager; 24 import net.sf.jasperreports.engine.JasperFillManager;
97 "export.sqrelation.csv.header.c.duan"; 98 "export.sqrelation.csv.header.c.duan";
98 99
99 public static final String CSV_C_FERGUSON = 100 public static final String CSV_C_FERGUSON =
100 "export.sqrelation.csv.header.c.ferguson"; 101 "export.sqrelation.csv.header.c.ferguson";
101 102
102 public static final String CSV_VARIANCE = 103 public static final String CSV_QMAX =
103 "export.sqrelation.csv.header.variance"; 104 "export.sqrelation.csv.header.qmax";
105
106 public static final String CSV_SD =
107 "export.sqrelation.csv.header.sd";
104 108
105 public static final String PDF_TITLE= 109 public static final String PDF_TITLE=
106 "export.sqrelation.pdf.title"; 110 "export.sqrelation.pdf.title";
107 111
108 public static final String PDF_HEADER_MODE = 112 public static final String PDF_HEADER_MODE =
134 writer.writeNext(new String[] { 138 writer.writeNext(new String[] {
135 msg(CSV_KM , CSV_KM), 139 msg(CSV_KM , CSV_KM),
136 msg(CSV_PARAMETER, CSV_PARAMETER), 140 msg(CSV_PARAMETER, CSV_PARAMETER),
137 msg(CSV_COEFF_A , CSV_COEFF_A), 141 msg(CSV_COEFF_A , CSV_COEFF_A),
138 msg(CSV_COEFF_B , CSV_COEFF_B), 142 msg(CSV_COEFF_B , CSV_COEFF_B),
143 msg(CSV_SD, CSV_SD),
144 msg(CSV_QMAX, CSV_QMAX),
145 msg(CSV_COEFF_R, CSV_COEFF_R),
139 msg(CSV_N_TOTAL , CSV_N_TOTAL), 146 msg(CSV_N_TOTAL , CSV_N_TOTAL),
140 msg(CSV_N_OUTLIERS, CSV_N_OUTLIERS), 147 msg(CSV_N_OUTLIERS, CSV_N_OUTLIERS),
141 msg(CSV_VARIANCE , CSV_VARIANCE) 148 msg(CSV_C_DUAN, CSV_C_DUAN),
149 msg(CSV_C_FERGUSON, CSV_C_FERGUSON)
142 }); 150 });
143 } 151 }
144 152
145 @Override 153 @Override
146 protected void writeCSVData(CSVWriter writer) { 154 protected void writeCSVData(CSVWriter writer) {
158 protected List<String[]> data2StringArrays(SQResult result) { 166 protected List<String[]> data2StringArrays(SQResult result) {
159 String km = Formatter.getSQRelationKM(context 167 String km = Formatter.getSQRelationKM(context
160 ).format(result.getKm()); 168 ).format(result.getKm());
161 List<String[]> retval = new ArrayList<String[]>(); 169 List<String[]> retval = new ArrayList<String[]>();
162 170
171 NumberFormat sqAFormatter = Formatter.getSQRelationA(context);
172 NumberFormat sqBFormatter = Formatter.getSQRelationB(context);
173 NumberFormat fThreeFormatter = Formatter.getFormatter(context, 3, 3);
174 NumberFormat fTwoFormatter = Formatter.getFormatter(context, 2, 2);
175 NumberFormat fZeroFormatter = Formatter.getFormatter(context, 0, 0);
176
163 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; ++i) { 177 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; ++i) {
164 SQFractionResult fraction = result.getFraction(i); 178 SQFractionResult fraction = result.getFraction(i);
165 179
166 String name = result.getFractionName(i); 180 String name = result.getFractionName(i);
167 181
169 183
170 if (parameters == null) { 184 if (parameters == null) {
171 continue; 185 continue;
172 } 186 }
173 187
174 String a, b, sd, o, t; 188 String a, b, sd, o, t, max_q, c_ferguson, c_duan, r2;
175 a = Formatter.getSQRelationA(context).format(parameters.getValue(0, "a")); 189 a = sqAFormatter.format(parameters.getValue(0, "a"));
176 b = Formatter.getSQRelationB(context).format(parameters.getValue(0, "b")); 190 b = sqBFormatter.format(parameters.getValue(0, "b"));
177 sd = Formatter.getVariance(context).format(Math.sqrt(parameters.getValue(0, "std_dev"))); 191
192 /* The std_dev parameter contains the standard error actually */
193 sd = fThreeFormatter.format(parameters.getValue(0, "std_dev"));
194 max_q = fZeroFormatter.format(parameters.getValue(0, "max_q"));
195 c_ferguson = fTwoFormatter.format(parameters.getValue(0, "c_ferguson"));
196 c_duan = fTwoFormatter.format(parameters.getValue(0, "c_duan"));
197 r2 = fTwoFormatter.format(parameters.getValue(0, "r2"));
198
178 199
179 o = String.valueOf(fraction.totalNumOutliers()); 200 o = String.valueOf(fraction.totalNumOutliers());
180 t = String.valueOf(fraction.numMeasurements() + o); 201 t = String.valueOf(fraction.numMeasurements() + o);
181 202
182 retval.add(new String[] { 203 retval.add(new String[] {
183 km, 204 km,
184 name, 205 name,
185 a, 206 a,
186 b, 207 b,
187 t, 208 sd, // 4
188 o, 209 max_q, // 5
189 sd 210 r2, // 6
211 t, // 7
212 o, // 8
213 c_duan, // 9
214 c_ferguson // 10
190 }); 215 });
191 } 216 }
192 return retval; 217 return retval;
193 } 218 }
194 219

http://dive4elements.wald.intevation.org