/[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 78 - (hide annotations)
Wed Feb 10 16:43:46 2010 UTC (14 years, 10 months ago) by alfonx
File size: 3559 byte(s)
Merged branch 1.8-gt2-2.6 to trunk. Now the trunk is based on GeoTools 2.6.1 and schmitzm-2.0.x
1 mojays 2 package appl.parallel.data.splittable;
2    
3     import java.io.File;
4    
5 alfonx 78 import schmitzm.data.WritableGrid;
6 mojays 2 import appl.ext.XuluConfig;
7     import appl.util.RasterUtil;
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