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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26