# HG changeset patch # User Tim Englich # Date 1256901963 0 # Node ID 926530bda1a721c86714468176d8fc81d8025964 # Parent 3dcd2b0b456e4cf99a0ec2d34c12dc6c6887f658 Integrated the OutputTransition for Horizontal Cross-Sections gnv-artifacts/trunk@278 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 3dcd2b0b456e -r 926530bda1a7 gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Thu Oct 29 15:58:47 2009 +0000 +++ b/gnv-artifacts/ChangeLog Fri Oct 30 11:26:03 2009 +0000 @@ -1,3 +1,17 @@ +2009-10-30 Tim Englich + + * doc/conf/queries.properties: + Added the Query for selecting the Data for generating Outputs of + HorizontalCrossSectionMeshOutputTransition + * doc/conf/products/horizontalcrosssection/conf_mesh.xml: + Added the configuration for the HorizontalCrossSectionMeshOutputTransition + * src/main/java/de/intevation/gnv/transition/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputTransition.java: + Added the OutputTransition for generating /HorizontalCrossSections. + * src/main/java/de/intevation/gnv/statistics/HorizontalCrossSectionStatistics.java: + The Class for generating the Statistics to HorizontalCrossSections + * src/main/java/de/intevation/gnv/chart/HorizontalCrossSectionChartFactory.java: + The Class Stub for generating HorizontalCrossSections Charts. + 2009-10-29 Tim Englich * doc/conf/products/timeseries/timegap_definition.xml, diff -r 3dcd2b0b456e -r 926530bda1a7 gnv-artifacts/doc/conf/products/horizontalcrosssection/conf_mesh.xml --- a/gnv-artifacts/doc/conf/products/horizontalcrosssection/conf_mesh.xml Thu Oct 29 15:58:47 2009 +0000 +++ b/gnv-artifacts/doc/conf/products/horizontalcrosssection/conf_mesh.xml Fri Oct 30 11:26:03 2009 +0000 @@ -44,7 +44,7 @@ horizontalcrosssection_mesh_date dateid - true + false horizontalcrosssection_mesh_calculate_results @@ -56,13 +56,13 @@ - + horizontalcrosssection_mesh_data - - - - + + + + diff -r 3dcd2b0b456e -r 926530bda1a7 gnv-artifacts/doc/conf/queries.properties --- a/gnv-artifacts/doc/conf/queries.properties Thu Oct 29 15:58:47 2009 +0000 +++ b/gnv-artifacts/doc/conf/queries.properties Fri Oct 30 11:26:03 2009 +0000 @@ -619,4 +619,24 @@ msv.PARAMETERID = ? \ order by msv.TIMEVALUE -horizontalcrosssection_mesh_data = Select 1 from dual; \ No newline at end of file +horizontalcrosssection_mesh_data = SELECT ST_ASTEXT(SHAPE), \ + MSV.DATAVALUE YORDINATE, \ + MEDIAN.MESHFACE.JPOSITION, \ + MEDIAN.MESHFACE.IPOSITION, \ + MEDIAN.MESHFACE.KPOSITION \ + from MEDIAN.MESHLAYER ML, \ + MEDIAN.MESHFACE, \ + MEDIAN.MESH M, \ + MEDIAN.MESHSCALARVALUE MSV \ + where MSV.FEATUREID = MEDIAN.MESHFACE.FEATUREID AND \ + ML.KPOSITION = MEDIAN.MESHFACE.KPOSITION and \ + ML.MESHID = MEDIAN.MESHFACE.MESHID and \ + M.MESHID = MEDIAN.MESHFACE.MESHID AND \ + M.PARTIDMIN <= MSV.PARTID AND \ + M.PARTIDMAX >= MSV.PARTID AND \ + MSV.PARAMETERID = ? AND \ + MSV.TIMEVALUE = ? AND \ + M.OBJECTID = ? AND \ + MEDIAN.MESHFACE.KPOSITION = ? \ + order by MEDIAN.MESHFACE.JPOSITION , \ + MEDIAN.MESHFACE.IPOSITION \ No newline at end of file diff -r 3dcd2b0b456e -r 926530bda1a7 gnv-artifacts/src/main/java/de/intevation/gnv/chart/HorizontalCrossSectionChartFactory.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/HorizontalCrossSectionChartFactory.java Fri Oct 30 11:26:03 2009 +0000 @@ -0,0 +1,57 @@ +/** + * Title: ChartFactory, $Header: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/output/chart/ChartFactory.java,v 1.8 2007/12/21 12:31:15 blume Exp $ + * Source: $Source: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/output/chart/ChartFactory.java,v $ + * created by: Stefan Blume (blume) + * erstellt am: 06.12.2007 + * Copyright: con terra GmbH, 2005 + * + * modified by: $Author: blume $ + * modified on: $Date: 2007/12/21 12:31:15 $ + * Version: $Revision: 1.8 $ + * TAG: $Name: $ + * locked from: $Locker: $ + * CVS State: $State: Exp $ + * Project: $ProjectName$ + */ +package de.intevation.gnv.chart; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.Collection; + +import org.apache.log4j.Logger; +import org.jfree.chart.plot.PlotOrientation; + +import de.intevation.gnv.chart.exception.TechnicalChartException; +import de.intevation.gnv.geobackend.base.Result; +import de.intevation.gnv.transition.describedata.KeyValueDescibeData; + +/** + * + * @author Tim Englich + * + */ +public class HorizontalCrossSectionChartFactory { + + /** + * Default Logging instance + */ + private static Logger sLogger = Logger + .getLogger(HorizontalCrossSectionChartFactory.class); + private static boolean sDebug = sLogger.isDebugEnabled(); + protected PlotOrientation plotOrientation = PlotOrientation.HORIZONTAL; + + public synchronized void createProfileChart( + ChartLabels pLabels, + ChartStyle pStyle, + Collection parameters, + Collection measurements, + Collection dates, + OutputStream outputStream, + Collection resultSet) + throws IOException, + TechnicalChartException { + + } + +} diff -r 3dcd2b0b456e -r 926530bda1a7 gnv-artifacts/src/main/java/de/intevation/gnv/statistics/HorizontalCrossSectionStatistics.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/statistics/HorizontalCrossSectionStatistics.java Fri Oct 30 11:26:03 2009 +0000 @@ -0,0 +1,27 @@ +/** + * + */ +package de.intevation.gnv.statistics; + +import java.sql.SQLException; + +import de.intevation.gnv.geobackend.base.Result; + +/** + * @author Tim Englich + * + */ +public class HorizontalCrossSectionStatistics extends TimeseriesStatistics { + + /** + * Constructor + */ + public HorizontalCrossSectionStatistics() { + super(); + } + + @Override + protected double calculateXOrdinateValue(Result row) throws SQLException { + return 0; // TODO: Select propper Value + } +} diff -r 3dcd2b0b456e -r 926530bda1a7 gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputTransition.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputTransition.java Fri Oct 30 11:26:03 2009 +0000 @@ -0,0 +1,121 @@ +/** + * + */ +package de.intevation.gnv.transition.profile.horizontalcrosssection; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; +import java.util.Collection; +import java.util.Iterator; + +import org.apache.log4j.Logger; + +import au.com.bytecode.opencsv.CSVWriter; +import de.intevation.gnv.chart.ChartLabels; +import de.intevation.gnv.chart.ChartStyle; +import de.intevation.gnv.chart.HorizontalCrossSectionChartFactory; +import de.intevation.gnv.chart.exception.TechnicalChartException; +import de.intevation.gnv.geobackend.base.Result; +import de.intevation.gnv.statistics.HorizontalCrossSectionStatistics; +import de.intevation.gnv.statistics.Statistics; +import de.intevation.gnv.transition.describedata.KeyValueDescibeData; +import de.intevation.gnv.transition.exception.TransitionException; +import de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition; + +/** + * @author Tim Englich + * + */ +public class HorizontalCrossSectionMeshOutputTransition + extends TimeSeriesOutputTransition { + + private static Logger log = Logger + .getLogger(HorizontalCrossSectionMeshOutputTransition.class); + + /** + * The UID of this Class + */ + private static final long serialVersionUID = 3233620652465061860L; + + /** + * Constructor + */ + public HorizontalCrossSectionMeshOutputTransition() { + super(); + super.domainLable = "Latitude [m]"; + } + + /** + * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createChart(java.io.OutputStream, + * java.util.Collection, java.util.Collection, java.lang.String, + * de.intevation.gnv.chart.ChartStyle, + * de.intevation.gnv.chart.ChartLabels) + */ + @Override + protected void createChart(OutputStream outputStream, + Collection parameters, + Collection measurements, + Collection dates, + ChartStyle chartStyle, ChartLabels chartLables, + String uuid) throws IOException, + TechnicalChartException { + new HorizontalCrossSectionChartFactory(). + createProfileChart(chartLables, chartStyle, + parameters, measurements, + dates, outputStream, + this.getChartResult(uuid)); + } + + /** + * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#getStatisticsGenerator() + */ + @Override + protected Statistics getStatisticsGenerator() { + return new HorizontalCrossSectionStatistics(); + } + + /** + * @see de.intevation.gnv.transition.timeseries.TimeSeriesOutputTransition#createCSV(java.io.OutputStream, + * java.util.Collection) + */ + @Override + protected void createCSV(OutputStream outputStream, + Collection chartResult) + throws UnsupportedEncodingException, + IOException, + TransitionException { + if (chartResult != null) { + try { + CSVWriter writer = new CSVWriter(new OutputStreamWriter( + outputStream, "ISO-8859-1"), ','); + // USE THIS ENCODING BECAUSE OF + // PROBLEMS WITH EXCEL AND UTF-8 + Iterator it = chartResult.iterator(); + while (it.hasNext()) { + Result result = it.next(); + int i = 0; + // TODO implement me + String[] entries = new String[5]; + entries[i++] = result.getString("SHAPE"); + entries[i++] = result.getString("YORDINATE"); + entries[i++] = result.getString("IPOSITION"); + entries[i++] = result.getString("JPOSITION"); + entries[i++] = result.getString("KPOSITION"); + writer.writeNext(entries); + } + writer.close(); + } catch (Exception e) { + log.error(e,e); + throw new TransitionException( + "Exception occured while parsing an Point from WKT."); + } + } else { + log.error("No Data given for generating an CSV-File."); + throw new TransitionException( + "No Data given for generating an CSV-File."); + } + } + +}