/[xulu]/trunk/src/appl/parallel/data/splittable/MultiGridFactory_ArcInfoAsciiGrid.java
ViewVC logotype

Contents of /trunk/src/appl/parallel/data/splittable/MultiGridFactory_ArcInfoAsciiGrid.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 114 - (show annotations)
Mon Jul 11 11:31:25 2011 UTC (13 years, 5 months ago) by mojays
File size: 3571 byte(s)
SCHMITZM library updated to current version (2.6-SNAPSHOT)
Added gt-xsd-filter.jar, gt-xsd-gml2.jar, picocontainer.jar and xsd.jar from Geotools 2.6.5
1 package appl.parallel.data.splittable;
2
3 import java.io.File;
4
5 import appl.ext.XuluConfig;
6 import appl.util.RasterUtil;
7 import de.schmitzm.geotools.data.WritableGrid;
8 import edu.bonn.xulu.appl.XuluRegistry;
9 import edu.bonn.xulu.io.AbstractFactory;
10 import edu.bonn.xulu.io.ImportFactory;
11 import edu.bonn.xulu.plugin.data.grid.MultiGrid;
12 import edu.bonn.xulu.plugin.io.grid.WritableGridFactory;
13 import edu.bonn.xulu.plugin.io.grid.array.WritableGridArrayFactory_ArcInfoAsciiGrid;
14
15 /**
16 * Diese Factory importiert und exportiert Instanzen des Datentyps
17 * {@link MultiGrid} aus/in Dateien im ArcInfo-ASCII-Grid-Format.
18 * Beim Import liefert die Factory eine Standard-Arrays basierendes Raster-Liste
19 *
20 *
21 * @author Dominik Appl
22 * @author <a href="mailto:[email protected]">Martin Schmitz</a> (University of Bonn/Germany)
23 * @version 1.0
24 */
25 public class MultiGridFactory_ArcInfoAsciiGrid extends GridListFactory_ArcInfoAsciiGrid {
26 private static final ImportFactory importFac = new WritableGridArrayFactory_ArcInfoAsciiGrid();
27
28 ////////////////////////////////////////////////////////////////////////
29 /////////////// Implementierung von ImportFactory //////////////
30 ////////////////////////////////////////////////////////////////////////
31 /**
32 * Liefert den Datentyp, den die Factory erzeugt.
33 * @return immer {@link MultiGrid MultiGrid.class}
34 */
35 public Class getImportType() {
36 return MultiGrid.class;
37 }
38
39 /**
40 * Importiert Raster aus Dateien im ArcInfoAsciiGrid-Format
41 * und fuegt diese in einem {@link MultiGrid} zusammen.
42 * @param input Eingabe-Quelle (muss ein {@link File File[]} sein!)
43 * @param reg Instanz der Xulu-Registry, ueber die eine Factory ermittelt
44 * wird, die eine Standard-Instanz von {@link MultiGrid} erzeugt, in
45 * die das Objekt importiert wird
46 * @exception UnsupportedOperationException falls als Eingabe-Quelle keine
47 * Dateien angegeben werden
48 */
49 public MultiGrid importObject(Object input, XuluRegistry reg) throws Exception {
50 AbstractFactory.checkImportSourceObject(this,input,getImportSourceType(),true);
51
52 // MultiGrid erst erzeugen, wenn ein Beispiel-Raster vorliegt
53 MultiGrid mg = null;
54 // Raster importieren und in GridList einfuegen
55 for (int i=0; i<((Object[])input).length; i++) {
56 SplittableLLProxyGrid grid = new SplittableLLProxyGrid
57 (importFac,
58 RasterUtil.getRasterMetaData_from_ArcGridASCII_File(((File[])input)[i]),
59 ((File[])input)[i], reg );
60 //read and apply settings from the registry
61 String unloadFolder = XuluConfig.getXuluConfig().getProperty("Datatypes.proxy.unloadFolder");
62 boolean unloading = XuluConfig.getXuluConfig().getBooleanProperty("Datatypes.proxy.enableUnloading");
63 if(unloadFolder!=null)
64 grid.setUnloadDir(unloadFolder);
65 grid.setUnloading(unloading);
66 // das erste Grid dient dem MultiGrid als Vorlage
67 if ( mg == null )
68 mg = new MultiGrid(grid,getWritableGridFactory());
69
70 mg.addGrid(grid);
71 }
72 return mg;
73 }
74
75 /**
76 * Liefert eine Instanz von {@link SplittableGridLLFactory}, die auf Standard-Arrays
77 * basierende Instanzen von {@link WritableGrid} erzeugt. Mit diesen
78 * Instanzen wird das SingleGrid gefuellt.
79 */
80 protected WritableGridFactory getWritableGridFactory() {
81 return new SplittableGridLLFactory();
82 }
83
84 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26