comparison flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 2066:2b6a0de47379

Improved the WaterlevelExporter: added range check for W/Q at gauge. flys-artifacts/trunk@3561 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 02 Jan 2012 10:59:42 +0000
parents 2f5628f0de0e
children 0cf60d64895c
comparison
equal deleted inserted replaced
2065:2f5628f0de0e 2066:2b6a0de47379
18 import au.com.bytecode.opencsv.CSVWriter; 18 import au.com.bytecode.opencsv.CSVWriter;
19 19
20 import de.intevation.artifacts.CallContext; 20 import de.intevation.artifacts.CallContext;
21 import de.intevation.artifacts.CallMeta; 21 import de.intevation.artifacts.CallMeta;
22 22
23 import de.intevation.flys.model.Gauge;
24
23 import de.intevation.flys.artifacts.FLYSArtifact; 25 import de.intevation.flys.artifacts.FLYSArtifact;
24 import de.intevation.flys.artifacts.WINFOArtifact; 26 import de.intevation.flys.artifacts.WINFOArtifact;
25 import de.intevation.flys.artifacts.model.CalculationResult; 27 import de.intevation.flys.artifacts.model.CalculationResult;
26 import de.intevation.flys.artifacts.model.WQCKms; 28 import de.intevation.flys.artifacts.model.WQCKms;
27 import de.intevation.flys.artifacts.model.WQKms; 29 import de.intevation.flys.artifacts.model.WQKms;
84 "export.waterlevel.csv.meta.q"; 86 "export.waterlevel.csv.meta.q";
85 87
86 public static final String CSV_META_W = 88 public static final String CSV_META_W =
87 "export.waterlevel.csv.meta.w"; 89 "export.waterlevel.csv.meta.w";
88 90
91 public static final String CSV_NOT_IN_GAUGE_RANGE =
92 "export.waterlevel.csv.not.in.gauge.range";
93
89 94
90 public static final Pattern NUMBERS_PATTERN = 95 public static final Pattern NUMBERS_PATTERN =
91 Pattern.compile("\\D*(\\d++.\\d*)\\D*"); 96 Pattern.compile("\\D*(\\d++.\\d*)\\D*");
92 97
93 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km"; 98 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km";
94 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]"; 99 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]";
95 public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]"; 100 public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]";
96 public static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung"; 101 public static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung";
97 public static final String DEFAULT_CSV_LOCATION_HEADER = "Lage"; 102 public static final String DEFAULT_CSV_LOCATION_HEADER = "Lage";
98 public static final String DEFAULT_CSV_GAUGE_HEADER = "Bezugspegel"; 103 public static final String DEFAULT_CSV_GAUGE_HEADER = "Bezugspegel";
104 public static final String DEFAULT_CSV_NOT_IN_GAUGE_RANGE =
105 "außerhalb des gewählten Bezugspegels";
99 106
100 107
101 /** The storage that contains all WQKms objects for the different facets.*/ 108 /** The storage that contains all WQKms objects for the different facets.*/
102 protected List<WQKms[]> data; 109 protected List<WQKms[]> data;
103 110
346 NumberFormat qf = getQFormatter(); 353 NumberFormat qf = getQFormatter();
347 354
348 int size = wqkms.size(); 355 int size = wqkms.size();
349 double[] result = new double[3]; 356 double[] result = new double[3];
350 357
351 FLYSArtifact flys = (FLYSArtifact) master; 358 FLYSArtifact flys = (FLYSArtifact) master;
352 String gauge = FLYSUtils.getGaugename(flys); 359 Gauge gauge = FLYSUtils.getGauge(flys);
353 String desc = ""; 360 String gaugeName = gauge.getName();
361 String desc = "";
362 String notinrange = msg(
363 CSV_NOT_IN_GAUGE_RANGE,
364 DEFAULT_CSV_NOT_IN_GAUGE_RANGE);
365
366 double a = gauge.getRange().getA().doubleValue();
367 double b = gauge.getRange().getB().doubleValue();
354 368
355 if (flys instanceof WINFOArtifact) { 369 if (flys instanceof WINFOArtifact) {
356 desc = getColumnTitle((WINFOArtifact)flys, wqkms); 370 desc = getColumnTitle((WINFOArtifact)flys, wqkms);
357 } 371 }
358 372
364 kmf.format(result[2]), 378 kmf.format(result[2]),
365 wf.format(result[0]), 379 wf.format(result[0]),
366 qf.format(result[1]), 380 qf.format(result[1]),
367 desc, 381 desc,
368 FLYSUtils.getLocationDescription(flys, result[2]), 382 FLYSUtils.getLocationDescription(flys, result[2]),
369 gauge 383 result[2] >= a && result[2] <= b
384 ? gaugeName
385 : notinrange
370 }); 386 });
371 } 387 }
372 else { 388 else {
373 writer.writeNext(new String[] { 389 writer.writeNext(new String[] {
374 kmf.format(result[2]), 390 kmf.format(result[2]),

http://dive4elements.wald.intevation.org