comparison gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java @ 837:43f3c0cd60f2

First implementation of an odv export of a 'Profilschnitt' (issue217). gnv-artifacts/trunk@944 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 19 Apr 2010 10:55:25 +0000
parents 3ab5754e72e3
children b5f4b6073cde
comparison
equal deleted inserted replaced
836:05bf8534a35a 837:43f3c0cd60f2
1 package de.intevation.gnv.state.profile.verticalcrosssection; 1 package de.intevation.gnv.state.profile.verticalcrosssection;
2
3 import au.com.bytecode.opencsv.CSVWriter;
2 4
3 import java.awt.Color; 5 import java.awt.Color;
4 import java.awt.Dimension; 6 import java.awt.Dimension;
5 import java.awt.Paint; 7 import java.awt.Paint;
6 import java.io.IOException; 8 import java.io.IOException;
28 import de.intevation.gnv.artifacts.context.GNVArtifactContext; 30 import de.intevation.gnv.artifacts.context.GNVArtifactContext;
29 import de.intevation.gnv.artifacts.ressource.RessourceFactory; 31 import de.intevation.gnv.artifacts.ressource.RessourceFactory;
30 import de.intevation.gnv.chart.Chart; 32 import de.intevation.gnv.chart.Chart;
31 import de.intevation.gnv.chart.ChartLabels; 33 import de.intevation.gnv.chart.ChartLabels;
32 import de.intevation.gnv.chart.VerticalCrossSectionChart; 34 import de.intevation.gnv.chart.VerticalCrossSectionChart;
35 import de.intevation.gnv.exports.DefaultProfile;
36 import de.intevation.gnv.exports.Export;
37 import de.intevation.gnv.exports.VerticalCrossODVExport;
33 import de.intevation.gnv.geobackend.base.Result; 38 import de.intevation.gnv.geobackend.base.Result;
34 import de.intevation.gnv.geobackend.base.ResultDescriptor; 39 import de.intevation.gnv.geobackend.base.ResultDescriptor;
35 import de.intevation.gnv.geobackend.base.query.QueryExecutor; 40 import de.intevation.gnv.geobackend.base.query.QueryExecutor;
36 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; 41 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory;
37 import de.intevation.gnv.geobackend.base.query.exception.QueryException; 42 import de.intevation.gnv.geobackend.base.query.exception.QueryException;
666 { 671 {
667 // TODO: Implement a substitution which makes sense. 672 // TODO: Implement a substitution which makes sense.
668 } 673 }
669 674
670 @Override 675 @Override
671 protected void createODV(OutputStream outputStream, String uuid, 676 protected void createODV(
672 CallContext callContext) throws IOException, 677 OutputStream outputStream,
673 StateException { 678 String uuid,
674 Object chartResult = this.getChartResult(uuid, callContext); 679 CallContext callContext)
675 log.debug("Hier gehts weiter"); 680 throws IOException, StateException
676 } 681 {
677 682 // 'Profilschnitte' contain one parameter only
678 683 Collection tmp = getParameters(uuid);
684 KeyValueDescibeData param = (KeyValueDescibeData) tmp.toArray()[0];
685
686 String [] COLUMN_HEADER = {
687 "Cruise",
688 "Station",
689 "Type",
690 "yyyy-mm-dd hh:mm",
691 "Lon (°E)",
692 "Lat (°N)",
693 "Bot. Depth [m]",
694 "Depth [m]",
695 "QF",
696 param.getValue()
697 };
698
699 Export.Profile ODV_PROFILE = new DefaultProfile(
700 COLUMN_HEADER,
701 '\t',
702 CSVWriter.NO_QUOTE_CHARACTER,
703 CSVWriter.NO_ESCAPE_CHARACTER,
704 "ODV",
705 "ISO-8859-1");
706
707 Object chartResult = getChartResult(uuid, callContext);
708
709 if (chartResult == null) {
710 log.error("No data for export found.");
711 return;
712 }
713
714 List result = new ArrayList(1);
715 result.add(chartResult);
716
717 InputData data = inputData.get(dateValueName);
718 String date = data.getDescription()[0];
719
720 Interpolation3D interpol = ((AttributedXYColumns)
721 chartResult).getInterpolation();
722
723 Coordinate[] coords = interpol.getCoordinates();
724 double[] depth = interpol.getDepths();
725 double[] raster = interpol.getRaster();
726
727 Export export = new VerticalCrossODVExport(
728 interpol.getCoordinates(),
729 interpol.getCellHeight(),
730 interpol.getRaster(),
731 date,
732 interpol.getWidth(),
733 interpol.getHeight());
734
735 export.create(ODV_PROFILE, outputStream, null);
736 }
679 } 737 }
680 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 738 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org