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 :

http://dive4elements.wald.intevation.org