Mercurial > dive4elements > river
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]), |