# HG changeset patch # User Ingo Weinzierl # Date 1325501982 0 # Node ID 2b6a0de47379fe3b8247c6fc6ec2d543035472e9 # Parent 2f5628f0de0eefffd423ca3058244d0afdee3d71 Improved the WaterlevelExporter: added range check for W/Q at gauge. flys-artifacts/trunk@3561 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 2f5628f0de0e -r 2b6a0de47379 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Mon Jan 02 09:46:39 2012 +0000 +++ b/flys-artifacts/ChangeLog Mon Jan 02 10:59:42 2012 +0000 @@ -1,3 +1,9 @@ +2012-01-02 Ingo Weinzierl + + * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Check + if the location of a CSV row is in range of the reference gauge. Write + "outside reference gauge" into CSV in such cases. + 2012-01-02 Ingo Weinzierl PART II of flys/issue125 (W-INFO: Wasserspiegellagenberechnung / tabellarische Berechnungsausgabe) diff -r 2f5628f0de0e -r 2b6a0de47379 flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java Mon Jan 02 09:46:39 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java Mon Jan 02 10:59:42 2012 +0000 @@ -20,6 +20,8 @@ import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; +import de.intevation.flys.model.Gauge; + import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; import de.intevation.flys.artifacts.model.CalculationResult; @@ -86,6 +88,9 @@ public static final String CSV_META_W = "export.waterlevel.csv.meta.w"; + public static final String CSV_NOT_IN_GAUGE_RANGE = + "export.waterlevel.csv.not.in.gauge.range"; + public static final Pattern NUMBERS_PATTERN = Pattern.compile("\\D*(\\d++.\\d*)\\D*"); @@ -96,6 +101,8 @@ public static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung"; public static final String DEFAULT_CSV_LOCATION_HEADER = "Lage"; public static final String DEFAULT_CSV_GAUGE_HEADER = "Bezugspegel"; + public static final String DEFAULT_CSV_NOT_IN_GAUGE_RANGE = + "außerhalb des gewählten Bezugspegels"; /** The storage that contains all WQKms objects for the different facets.*/ @@ -348,9 +355,16 @@ int size = wqkms.size(); double[] result = new double[3]; - FLYSArtifact flys = (FLYSArtifact) master; - String gauge = FLYSUtils.getGaugename(flys); - String desc = ""; + FLYSArtifact flys = (FLYSArtifact) master; + Gauge gauge = FLYSUtils.getGauge(flys); + String gaugeName = gauge.getName(); + String desc = ""; + String notinrange = msg( + CSV_NOT_IN_GAUGE_RANGE, + DEFAULT_CSV_NOT_IN_GAUGE_RANGE); + + double a = gauge.getRange().getA().doubleValue(); + double b = gauge.getRange().getB().doubleValue(); if (flys instanceof WINFOArtifact) { desc = getColumnTitle((WINFOArtifact)flys, wqkms); @@ -366,7 +380,9 @@ qf.format(result[1]), desc, FLYSUtils.getLocationDescription(flys, result[2]), - gauge + result[2] >= a && result[2] <= b + ? gaugeName + : notinrange }); } else {