Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/HistoricalDischargeCurveGenerator.java @ 2243:d70a04cad84d
Improved chart creation for historical discharge curves.
flys-artifacts/trunk@3891 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 03 Feb 2012 10:45:12 +0000 |
parents | e9173de1026c |
children | 997df76c6f58 |
comparison
equal
deleted
inserted
replaced
2242:7e8e1d5384c0 | 2243:d70a04cad84d |
---|---|
9 | 9 |
10 import org.jfree.chart.JFreeChart; | 10 import org.jfree.chart.JFreeChart; |
11 import org.jfree.chart.axis.NumberAxis; | 11 import org.jfree.chart.axis.NumberAxis; |
12 | 12 |
13 import org.jfree.data.general.SeriesException; | 13 import org.jfree.data.general.SeriesException; |
14 import org.jfree.data.time.Minute; | 14 import org.jfree.data.time.Day; |
15 import org.jfree.data.time.RegularTimePeriod; | 15 import org.jfree.data.time.RegularTimePeriod; |
16 import org.jfree.data.time.TimeSeries; | 16 import org.jfree.data.time.TimeSeries; |
17 import org.jfree.data.time.TimeSeriesCollection; | 17 import org.jfree.data.time.TimeSeriesCollection; |
18 | 18 |
19 import de.intevation.artifactdatabase.state.ArtifactAndFacet; | 19 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
141 String desc, | 141 String desc, |
142 Document theme, | 142 Document theme, |
143 boolean visible) | 143 boolean visible) |
144 { | 144 { |
145 logger.debug("doHistoricalDischargeOut(): description = " + desc); | 145 logger.debug("doHistoricalDischargeOut(): description = " + desc); |
146 logger.warn("TODO IMPLEMENT ME"); | |
147 | 146 |
148 WQTimerange wqt = (WQTimerange) data; | 147 WQTimerange wqt = (WQTimerange) data; |
149 | 148 |
150 TimeSeriesCollection tsc = newTimeSeriesCollection(wqt, desc); | 149 TimeSeriesCollection tsc = newTimeSeriesCollection(wqt, desc); |
151 | 150 |
176 | 175 |
177 RegularTimePeriod[] rtp = newRegularTimePeriod(wqt.getTimerange(i)); | 176 RegularTimePeriod[] rtp = newRegularTimePeriod(wqt.getTimerange(i)); |
178 | 177 |
179 try { | 178 try { |
180 // TODO WHICH (W/Q) IS REQUIRED? | 179 // TODO WHICH (W/Q) IS REQUIRED? |
181 series.add(rtp[0], res[1]); | 180 double y = res[1]; |
182 series.add(rtp[1], res[1]); | 181 |
182 if (Double.isNaN(y)) { | |
183 logger.warn("Skip TimePeriod because value is NaN."); | |
184 continue; | |
185 } | |
186 | |
187 series.add(rtp[0], y); | |
188 series.add(rtp[1], y); | |
189 | |
190 if (logger.isDebugEnabled()) { | |
191 logger.debug("added Item to TimeSeries:"); | |
192 logger.debug(" TimePeriod: " + rtp[0] + " - " + rtp[1]); | |
193 logger.debug(" Value: " + res[1]); | |
194 } | |
183 } | 195 } |
184 catch (SeriesException se) { | 196 catch (SeriesException se) { |
185 logger.warn("Error while adding TimePeriod: " + se); | 197 logger.warn("Error while adding TimePeriod: " + se); |
186 } | 198 } |
187 } | 199 } |
199 * | 211 * |
200 * @return an array with two <i>Minute</i> periods [start, end]. | 212 * @return an array with two <i>Minute</i> periods [start, end]. |
201 */ | 213 */ |
202 protected RegularTimePeriod[] newRegularTimePeriod(Timerange timerange) { | 214 protected RegularTimePeriod[] newRegularTimePeriod(Timerange timerange) { |
203 Date start = new Date(timerange.getStart()); | 215 Date start = new Date(timerange.getStart()); |
204 Date end = new Date(timerange.getEnd() - 1000 * 60); | 216 Date end = new Date(timerange.getEnd() - 1000 * 60 * 60 * 24); |
205 | 217 |
206 return new RegularTimePeriod[] { | 218 return new RegularTimePeriod[] { |
207 new Minute(start), | 219 new Day(start), |
208 new Minute(end) | 220 new Day(end) |
209 }; | 221 }; |
210 } | 222 } |
211 } | 223 } |
212 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : | 224 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |