Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libjni-gdal / src / main / java / es / gva / cit / jgdal / GdalWarp.java @ 22081

History | View | Annotate | Download (2.13 KB)

1
package es.gva.cit.jgdal;
2

    
3
import java.util.ArrayList;
4

    
5
/**
6
 * Clase que recubre la funci?n de reproyecci?n de gdal.
7
 *  
8
 * @author Miguel ?ngel Querol Carratal?
9
 */
10
public class GdalWarp extends JNIBase {
11
        private int    porcentaje;
12

    
13
        /**
14
         * Par?metros de la operaci?n de reproyecci?n
15
         */
16
        private String s_srs = null;
17

    
18
        /**
19
         * M?todo nativo para el warp desde gdal.
20
         */
21
        private native int warpDataset(String s_srs, String t_srs, String source, String dest, String format);
22

    
23
        /**
24
         * Constructor generico.
25
         */
26
        public GdalWarp() {}
27

    
28
        /**
29
         * Reproyecta una imagen raster, creando una imagen de salida
30
         * @param proj EPSG:code o proj4
31
         * @param source Ruta del fichero fuente
32
         * @param dest Ruta del fichero destino
33
         * @param format
34
         * @return 0 si ha ocurrido algun error o 1 si la ejecuci?n ha sido correcta.
35
         * @throws GdalException
36
         */
37
        public int warp(String t_srs, String source, String dest, String format) throws GdalException{
38

    
39
                int stat = warpDataset(s_srs, t_srs, source, dest, format);
40
                
41
                if (stat == 0)
42
                        throw new GdalException("Error al reproyectar");
43
                
44
                return stat;
45
        }
46

    
47
        /**
48
         * Indica la proyecci?n del dataset origen
49
         * @param s_srs
50
         */
51
        public void setSsrs(String s_srs) {
52
                this.s_srs = s_srs;
53
        }
54

    
55
        /**
56
         * Obtiene el porcentaje de proceso que se ha completado
57
         */
58
        public int getPercent() {
59
                return porcentaje;
60
        }
61
        
62
        /**
63
         * Devuelve la lista de drivers que usa GdalWarp para reproyectar
64
         * @return
65
         */
66
        static public ArrayList getDrivers() {
67
                ArrayList list = new ArrayList();
68
                list.add("GTiff");
69
                list.add("VRT");
70
                list.add("NITF");
71
                list.add("HFA");
72
                list.add("ELAS");
73
                list.add("MEM");
74
                list.add("BMP");
75
                list.add("PCIDSK");
76
                list.add("ILWIS");
77
                String os = System.getProperty("os.name");
78
                if (!os.toLowerCase().startsWith("windows"))
79
                        list.add("HDF4Image");
80
                list.add("PNM");
81
                list.add("ENVI");
82
                list.add("EHdr");
83
                list.add("PAux");
84
                list.add("MFF");
85
                list.add("MFF2");
86
                list.add("BT");
87
                list.add("IDA");
88
                list.add("RMF");
89
                list.add("RST");
90
                list.add("Leveller");
91
                list.add("Terragen");
92
                list.add("ERS");
93
                list.add("INGR");
94
                list.add("GSAG");
95
                list.add("GSBG");
96
                list.add("ADRG");
97
                return list;
98
        }
99
}