Mercurial > dive4elements > gnv-client
annotate gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputTransition.java @ 218:926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
gnv-artifacts/trunk@278 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Fri, 30 Oct 2009 11:26:03 +0000 |
parents | |
children | ee2d4134d0b3 |
rev | line source |
---|---|
218
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
1 /** |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
2 * |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
3 */ |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
4 package de.intevation.gnv.transition.profile.horizontalcrosssection; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
5 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
6 import java.io.IOException; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
7 import java.io.OutputStream; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
8 import java.io.OutputStreamWriter; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
9 import java.io.UnsupportedEncodingException; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
10 import java.util.Collection; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
11 import java.util.Iterator; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
12 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
13 import org.apache.log4j.Logger; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
14 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
15 import au.com.bytecode.opencsv.CSVWriter; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.gnv.chart.ChartLabels; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
17 import de.intevation.gnv.chart.ChartStyle; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.gnv.chart.HorizontalCrossSectionChartFactory; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.gnv.chart.exception.TechnicalChartException; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
20 import de.intevation.gnv.geobackend.base.Result; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.gnv.statistics.HorizontalCrossSectionStatistics; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.gnv.statistics.Statistics; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.gnv.transition.exception.TransitionException; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
26 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
27 /** |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
28 * @author Tim Englich <tim.englich@intevation.de> |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
29 * |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
30 */ |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
31 public class HorizontalCrossSectionMeshOutputTransition |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
32 extends TimeSeriesOutputTransition { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
33 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
34 private static Logger log = Logger |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
35 .getLogger(HorizontalCrossSectionMeshOutputTransition.class); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
36 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
37 /** |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
38 * The UID of this Class |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
39 */ |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
40 private static final long serialVersionUID = 3233620652465061860L; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
41 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
42 /** |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
43 * Constructor |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
44 */ |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
45 public HorizontalCrossSectionMeshOutputTransition() { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
46 super(); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
47 super.domainLable = "Latitude [m]"; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
48 } |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
49 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
50 /** |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
51 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createChart(java.io.OutputStream, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
52 * java.util.Collection, java.util.Collection, java.lang.String, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
53 * de.intevation.gnv.chart.ChartStyle, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
54 * de.intevation.gnv.chart.ChartLabels) |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
55 */ |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
56 @Override |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
57 protected void createChart(OutputStream outputStream, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
58 Collection<KeyValueDescibeData> parameters, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
59 Collection<KeyValueDescibeData> measurements, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
60 Collection<KeyValueDescibeData> dates, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
61 ChartStyle chartStyle, ChartLabels chartLables, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
62 String uuid) throws IOException, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
63 TechnicalChartException { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
64 new HorizontalCrossSectionChartFactory(). |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
65 createProfileChart(chartLables, chartStyle, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
66 parameters, measurements, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
67 dates, outputStream, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
68 this.getChartResult(uuid)); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
69 } |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
70 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
71 /** |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
72 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator() |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
73 */ |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
74 @Override |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
75 protected Statistics getStatisticsGenerator() { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
76 return new HorizontalCrossSectionStatistics(); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
77 } |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
78 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
79 /** |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
80 * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createCSV(java.io.OutputStream, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
81 * java.util.Collection) |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
82 */ |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
83 @Override |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
84 protected void createCSV(OutputStream outputStream, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
85 Collection<Result> chartResult) |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
86 throws UnsupportedEncodingException, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
87 IOException, |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
88 TransitionException { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
89 if (chartResult != null) { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
90 try { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
91 CSVWriter writer = new CSVWriter(new OutputStreamWriter( |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
92 outputStream, "ISO-8859-1"), ','); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
93 // USE THIS ENCODING BECAUSE OF |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
94 // PROBLEMS WITH EXCEL AND UTF-8 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
95 Iterator<Result> it = chartResult.iterator(); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
96 while (it.hasNext()) { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
97 Result result = it.next(); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
98 int i = 0; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
99 // TODO implement me |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
100 String[] entries = new String[5]; |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
101 entries[i++] = result.getString("SHAPE"); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
102 entries[i++] = result.getString("YORDINATE"); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
103 entries[i++] = result.getString("IPOSITION"); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
104 entries[i++] = result.getString("JPOSITION"); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
105 entries[i++] = result.getString("KPOSITION"); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
106 writer.writeNext(entries); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
107 } |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
108 writer.close(); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
109 } catch (Exception e) { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
110 log.error(e,e); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
111 throw new TransitionException( |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
112 "Exception occured while parsing an Point from WKT."); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
113 } |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
114 } else { |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
115 log.error("No Data given for generating an CSV-File."); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
116 throw new TransitionException( |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
117 "No Data given for generating an CSV-File."); |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
118 } |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
119 } |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
120 |
926530bda1a7
Integrated the OutputTransition for Horizontal Cross-Sections
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
121 } |