comparison gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java @ 232:3d6d89bcbf42

Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68 gnv-artifacts/trunk@300 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Mon, 09 Nov 2009 08:55:01 +0000
parents f68ffbe974a0
children 2ceb4bf51cba
comparison
equal deleted inserted replaced
231:74255064a4c5 232:3d6d89bcbf42
5 5
6 import java.awt.Color; 6 import java.awt.Color;
7 import java.awt.Dimension; 7 import java.awt.Dimension;
8 import java.io.IOException; 8 import java.io.IOException;
9 import java.io.OutputStream; 9 import java.io.OutputStream;
10 import java.io.OutputStreamWriter;
11 import java.io.PrintWriter;
12 import java.io.UnsupportedEncodingException; 10 import java.io.UnsupportedEncodingException;
13 import java.util.ArrayList; 11 import java.util.ArrayList;
14 import java.util.Collection; 12 import java.util.Collection;
15 import java.util.Iterator; 13 import java.util.Iterator;
16 import java.util.List; 14 import java.util.List;
37 import de.intevation.gnv.artifacts.ressource.RessourceFactory; 35 import de.intevation.gnv.artifacts.ressource.RessourceFactory;
38 import de.intevation.gnv.chart.ChartFactory; 36 import de.intevation.gnv.chart.ChartFactory;
39 import de.intevation.gnv.chart.ChartLabels; 37 import de.intevation.gnv.chart.ChartLabels;
40 import de.intevation.gnv.chart.ChartStyle; 38 import de.intevation.gnv.chart.ChartStyle;
41 import de.intevation.gnv.chart.exception.TechnicalChartException; 39 import de.intevation.gnv.chart.exception.TechnicalChartException;
40 import de.intevation.gnv.exports.DefaultExport;
41 import de.intevation.gnv.exports.DefaultProfile;
42 import de.intevation.gnv.exports.Export.Profile;
42 import de.intevation.gnv.geobackend.base.Result; 43 import de.intevation.gnv.geobackend.base.Result;
43 import de.intevation.gnv.statistics.Statistic; 44 import de.intevation.gnv.statistics.Statistic;
44 import de.intevation.gnv.statistics.Statistics; 45 import de.intevation.gnv.statistics.Statistics;
45 import de.intevation.gnv.statistics.TimeseriesStatistics; 46 import de.intevation.gnv.statistics.TimeseriesStatistics;
46 import de.intevation.gnv.statistics.exception.StatisticsException; 47 import de.intevation.gnv.statistics.exception.StatisticsException;
49 import de.intevation.gnv.transition.InputData; 50 import de.intevation.gnv.transition.InputData;
50 import de.intevation.gnv.transition.OutputTransitionBase; 51 import de.intevation.gnv.transition.OutputTransitionBase;
51 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; 52 import de.intevation.gnv.transition.describedata.KeyValueDescibeData;
52 import de.intevation.gnv.transition.describedata.NamedCollection; 53 import de.intevation.gnv.transition.describedata.NamedCollection;
53 import de.intevation.gnv.transition.exception.TransitionException; 54 import de.intevation.gnv.transition.exception.TransitionException;
54
55 import de.intevation.gnv.exports.DefaultExport;
56 import de.intevation.gnv.exports.DefaultProfile;
57 import de.intevation.gnv.exports.Export.Profile;
58
59 import de.intevation.gnv.utils.ArtifactXMLUtilities; 55 import de.intevation.gnv.utils.ArtifactXMLUtilities;
60 56
61 57
62 /** 58 /**
63 * @author Tim Englich <tim.englich@intevation.de> 59 * @author Tim Englich <tim.englich@intevation.de>
91 "YORDINATE", 87 "YORDINATE",
92 "GROUP1", 88 "GROUP1",
93 "GROUP2", 89 "GROUP2",
94 "GROUP3" 90 "GROUP3"
95 }; 91 };
92
93 public static final String [] TIMESERIES_ODV_PROFILE_NAMES = {
94 "CRUISE",
95 "STATION",
96 "TYPE",
97 "BOTDEPTH",
98 "DEPTH",
99 "TIMEVALUE",
100 "DATAVALUE",
101 "PARAMETER",
102 "MEASUREMENTID",
103 "TIMESERIESID"
104 };
96 105
97 /** 106 /**
98 * Profile for exporting data to cvs 107 * Profile for exporting data to cvs
99 */ 108 */
100 public static final Profile TIMESERIES_CSV_PROFILE = 109 public static final Profile TIMESERIES_CSV_PROFILE =
110 * Profile for exporting data to odv 119 * Profile for exporting data to odv
111 * TODO Change TIMESERIES_PROFILE_NAMES, which belong to CSV exports 120 * TODO Change TIMESERIES_PROFILE_NAMES, which belong to CSV exports
112 */ 121 */
113 public static final Profile TIMESERIES_ODV_PROFILE = 122 public static final Profile TIMESERIES_ODV_PROFILE =
114 new DefaultProfile( 123 new DefaultProfile(
115 TIMESERIES_CSV_PROFILE_NAMES, 124 TIMESERIES_ODV_PROFILE_NAMES,
116 '\t', 125 '\t',
117 CSVWriter.NO_QUOTE_CHARACTER, 126 CSVWriter.NO_QUOTE_CHARACTER,
118 CSVWriter.NO_ESCAPE_CHARACTER, 127 CSVWriter.NO_ESCAPE_CHARACTER,
119 "ODV", 128 "ODV",
120 "ISO-8859-1"); 129 "ISO-8859-1");
135 OutputStream outputStream, String uuid, CallMeta callMeta) 144 OutputStream outputStream, String uuid, CallMeta callMeta)
136 throws TransitionException { 145 throws TransitionException {
137 log.debug("TimeSeriesOutputTransition.out"); 146 log.debug("TimeSeriesOutputTransition.out");
138 try { 147 try {
139 148
140 this.advance(uuid, callMeta); 149 this.advance(uuid, callMeta); // TODO This hsould only be done if it is nessessary
141 Collection<Result> chartResult = this.getChartResult(uuid); 150
142 if (outputMode.equalsIgnoreCase("chart")) { 151 if (outputMode.equalsIgnoreCase("chart")) {
143 log.debug("Chart will be generated."); 152 log.debug("Chart will be generated.");
144 int chartWidth = 600; 153 int chartWidth = 600;
145 int chartHeight = 400; 154 int chartHeight = 400;
146 try { 155 try {
168 .getSelectedFeatureName(uuid), this.domainLable); 177 .getSelectedFeatureName(uuid), this.domainLable);
169 this.createChart(outputStream, parameters, measurements,dates, 178 this.createChart(outputStream, parameters, measurements,dates,
170 chartStyle, chartLables, uuid); 179 chartStyle, chartLables, uuid);
171 } else if (outputMode.equalsIgnoreCase("csv")) { 180 } else if (outputMode.equalsIgnoreCase("csv")) {
172 log.debug("CSV-File will be generated."); 181 log.debug("CSV-File will be generated.");
182 Collection<Result> chartResult = this.getChartResult(uuid);
173 this.createCSV(outputStream, chartResult); 183 this.createCSV(outputStream, chartResult);
174 } else if (outputMode.equalsIgnoreCase("statistics")) { 184 } else if (outputMode.equalsIgnoreCase("statistics")) {
175 log.debug("Statistics will be generated."); 185 log.debug("Statistics will be generated.");
176 Statistics s = getStatisticsGenerator(); 186 Statistics s = getStatisticsGenerator();
187 Collection<Result> chartResult = this.getChartResult(uuid);
177 Collection<Statistic> statistics = s 188 Collection<Statistic> statistics = s
178 .calculateStatistics(chartResult); 189 .calculateStatistics(chartResult);
179 Document doc = this.writeStatistics2XML(statistics); 190 Document doc = this.writeStatistics2XML(statistics);
180 this.writeDocument2OutputStream(doc, outputStream); 191 this.writeDocument2OutputStream(doc, outputStream);
181 } else if (outputMode.equalsIgnoreCase("odv")) { 192 } else if (outputMode.equalsIgnoreCase("odv")) {
182 //TimeSeriesExport export = new TimeSeriesExport(); 193 //TimeSeriesExport export = new TimeSeriesExport();
183 //export.createODV(outputStream, chartResult); 194 //export.createODV(outputStream, chartResult);
184 createODV(outputStream, chartResult); 195
196 Collection<Result> odvResult = this.getODVResult(uuid);
197 this.createODV(outputStream, odvResult);
185 } 198 }
186 } catch (IOException e) { 199 } catch (IOException e) {
187 log.error(e, e); 200 log.error(e, e);
188 throw new TransitionException(e); 201 throw new TransitionException(e);
189 } catch (TechnicalChartException e) { 202 } catch (TechnicalChartException e) {

http://dive4elements.wald.intevation.org