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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 114 - (hide 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 mojays 2 package appl.parallel.data.splittable;
2    
3     import java.io.File;
4    
5     import appl.ext.XuluConfig;
6     import appl.util.RasterUtil;
7 mojays 114 import de.schmitzm.geotools.data.WritableGrid;
8 mojays 2 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