001: //$HeadURL$
002: /*---------------- FILE HEADER ------------------------------------------
003: This file is part of deegree.
004: Copyright (C) 2001-2008 by:
005: Department of Geography, University of Bonn
006: http://www.giub.uni-bonn.de/deegree/
007: lat/lon GmbH
008: http://www.lat-lon.de
009:
010: This library is free software; you can redistribute it and/or
011: modify it under the terms of the GNU Lesser General Public
012: License as published by the Free Software Foundation; either
013: version 2.1 of the License, or (at your option) any later version.
014: This library is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: Lesser General Public License for more details.
018: You should have received a copy of the GNU Lesser General Public
019: License along with this library; if not, write to the Free Software
020: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
021: Contact:
022:
023: Andreas Poth
024: lat/lon GmbH
025: Aennchenstr. 19
026: 53177 Bonn
027: Germany
028: E-Mail: poth@lat-lon.de
029:
030: Prof. Dr. Klaus Greve
031: Department of Geography
032: University of Bonn
033: Meckenheimer Allee 166
034: 53115 Bonn
035: Germany
036: E-Mail: greve@giub.uni-bonn.de
037: ---------------------------------------------------------------------------*/
038: package org.deegree.tools.raster;
039:
040: import java.awt.image.BufferedImage;
041: import java.io.IOException;
042: import java.io.InputStream;
043: import java.sql.Connection;
044: import java.util.Properties;
045:
046: import org.deegree.framework.util.FileUtils;
047: import org.deegree.framework.util.ImageUtils;
048: import org.deegree.io.DBConnectionPool;
049: import org.deegree.io.oraclegeoraster.GeoRasterReader;
050: import org.deegree.model.spatialschema.Envelope;
051: import org.deegree.model.spatialschema.GeometryFactory;
052:
053: /**
054: * Utitliy program to export an image from Oracle 10g GeoRaster Database
055: *
056: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
057: * @author last edited by: $Author: poth $
058: *
059: * @version $Revision: 6251 $, $Date: 2007-03-19 16:59:28 +0100 (Mo, 19 Mrz 2007) $
060: */
061: public class OracleGeoRasterExporter {
062:
063: /**
064: * @param args
065: * @throws Exception
066: */
067: public static void main(String[] args) throws Exception {
068: Properties map = new Properties();
069: for (int i = 0; i < args.length; i += 2) {
070: if (args[i].equals("-h") || args[i].equals("-?")) {
071: printHelp();
072: System.exit(0);
073: }
074: map.put(args[i], args[i + 1]);
075: }
076: validate(map);
077:
078: DBConnectionPool pool = DBConnectionPool.getInstance();
079:
080: Connection con = pool.acquireConnection(map
081: .getProperty("-driver"), map.getProperty("-url"), map
082: .getProperty("-user"), map.getProperty("-password"));
083:
084: try {
085: Envelope env = GeometryFactory.createEnvelope(map
086: .getProperty("-envelope"), null);
087: int level = Integer.parseInt(map.getProperty("-level"));
088: BufferedImage bi = (BufferedImage) GeoRasterReader
089: .exportRaster(con, env, map.getProperty("-rdtName")
090: .toUpperCase(), map.getProperty(
091: "-imageTableName").toUpperCase(), map
092: .getProperty("-georColName").toUpperCase(),
093: map.getProperty("-identification"), level);
094: ImageUtils.saveImage(bi, map.getProperty("-outFile"), 1);
095: } catch (Exception e) {
096: throw e;
097: } finally {
098: con.close();
099: System.exit(0);
100: }
101:
102: }
103:
104: /**
105: * prints help text read from OracleGeoRasterExporterHelp.txt
106: * @throws IOException
107: */
108: private static void printHelp() throws IOException {
109: InputStream is = OracleGeoRasterExporter.class
110: .getResourceAsStream("OracleGeoRasterExporterHelp.txt");
111: String s = FileUtils.readTextFile(is).toString();
112: System.out.println(s);
113: }
114:
115: /**
116: * validates that all required parameters has been set
117: * @param map
118: * @return true if valid
119: */
120: private static boolean validate(Properties map) {
121: if (map.getProperty("-driver") == null) {
122: System.out.println("-driver must be defined");
123: return false;
124: }
125: if (map.getProperty("-url") == null) {
126: System.out.println("-url must be defined");
127: return false;
128: }
129: if (map.getProperty("-user") == null) {
130: map.put("-user", "");
131: }
132: if (map.getProperty("-password") == null) {
133: map.put("-password", "");
134: }
135: if (map.getProperty("-rdtName") == null) {
136: System.out.println("-rdtName must be defined");
137: return false;
138: }
139: if (map.getProperty("-imageTableName") == null) {
140: System.out.println("-imageTableName must be defined");
141: return false;
142: }
143: if (map.getProperty("-georColName") == null) {
144: System.out.println("-georColName must be defined");
145: return false;
146: }
147: if (map.getProperty("-envelope") == null) {
148: System.out.println("-envelope must be defined");
149: return false;
150: }
151: if (map.getProperty("-level") == null) {
152: System.out.println("-level must be defined");
153: return false;
154: }
155: if (map.getProperty("-outFile") == null) {
156: System.out.println("-outFile must be defined");
157: return false;
158: }
159: if (map.getProperty("-identification") == null) {
160: System.out.println("-identification must be defined");
161: return false;
162: }
163:
164: return true;
165:
166: }
167:
168: }
|