Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/HistoricalDischargeCurveGenerator.java @ 2311:b8df8d1476ba
Compute differences between discharge table values and reference discharge table values in historical discharge curve calculation.
flys-artifacts/trunk@3991 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 09 Feb 2012 10:57:35 +0000 |
parents | 997df76c6f58 |
children | 991e4a5df323 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/HistoricalDischargeCurveGenerator.java Thu Feb 09 10:21:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/HistoricalDischargeCurveGenerator.java Thu Feb 09 10:57:35 2012 +0000 @@ -21,6 +21,7 @@ import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.HistoricalWQTimerange; import de.intevation.flys.artifacts.model.Timerange; import de.intevation.flys.artifacts.model.WQTimerange; import de.intevation.flys.utils.FLYSUtils; @@ -168,6 +169,15 @@ theme, visible); } + else if (name.equals(HISTORICAL_DISCHARGE_Q_DIFF)) { + doHistoricalDischargeDifferenceOut( + (FLYSArtifact) artifactFacet.getArtifact(), + artifactFacet.getData(context), + artifactFacet.getFacetDescription(), + theme, + visible); + } + // TODO ADD THE CASE FOR DISPLAYING W VALUES else { logger.warn("doOut(): unknown facet name: " + name); return; @@ -186,7 +196,30 @@ WQTimerange wqt = (WQTimerange) data; - TimeSeriesCollection tsc = newTimeSeriesCollection(wqt, desc); + TimeSeriesCollection tsc = newTimeSeriesCollection( + wqt.getTimeranges(), + wqt.getQs(), + desc); + + addAxisDataset(tsc, 0, visible); + } + + + protected void doHistoricalDischargeDifferenceOut( + FLYSArtifact artifact, + Object data, + String desc, + Document theme, + boolean visible + ) { + logger.debug("doHistoricalDischargeDifferenceOut: desc = " + desc); + + HistoricalWQTimerange wqt = (HistoricalWQTimerange) data; + + TimeSeriesCollection tsc = newTimeSeriesCollection( + wqt.getTimeranges(), + wqt.getDiffs(), + desc); addAxisDataset(tsc, 0, visible); } @@ -199,7 +232,8 @@ * looks like a "step chart". */ protected TimeSeriesCollection newTimeSeriesCollection( - WQTimerange wqt, + Timerange[] timeranges, + double[] values, String desc ) { logger.debug("Create new TimeSeriesCollection for: " + desc); @@ -207,30 +241,22 @@ TimeSeriesCollection tsc = new TimeSeriesCollection(); TimeSeries series = new TimeSeries(desc); - Timerange tr = null; - double[] res = new double[2]; - - for (int i = 0, n = wqt.size(); i < n; i++) { - res = wqt.get(i, res); - - RegularTimePeriod[] rtp = newRegularTimePeriod(wqt.getTimerange(i)); + for (int i = 0, n = timeranges.length; i < n; i++) { + RegularTimePeriod[] rtp = newRegularTimePeriod(timeranges[i]); try { - // TODO WHICH (W/Q) IS REQUIRED? - double y = res[1]; - - if (Double.isNaN(y)) { + if (Double.isNaN(values[i])) { logger.warn("Skip TimePeriod because value is NaN."); continue; } - series.add(rtp[0], y); - series.add(rtp[1], y); + series.add(rtp[0], values[i]); + series.add(rtp[1], values[i]); if (logger.isDebugEnabled()) { logger.debug("added Item to TimeSeries:"); logger.debug(" TimePeriod: " + rtp[0] + " - " + rtp[1]); - logger.debug(" Value: " + res[1]); + logger.debug(" Value: " + values[i]); } } catch (SeriesException se) {