Revision 9944

View differences:

org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/pom.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
    <modelVersion>4.0.0</modelVersion>
4
    <artifactId>org.gvsig.raster.gdal.io</artifactId>
5
    <packaging>jar</packaging>
6
    <name>${project.artifactId}</name>
7
    <parent>
8
        <groupId>org.gvsig</groupId>
9
        <artifactId>org.gvsig.raster.gdal</artifactId>
10
        <version>2.2.86</version>
11
    </parent>
12
	
13
    <dependencies>
14
        <dependency>
15
            <groupId>org.gdal</groupId>
16
            <artifactId>gdal</artifactId>
17
            <scope>compile</scope>
18
        </dependency>
19
        <dependency>
20
            <groupId>org.gvsig</groupId>
21
            <artifactId>org.gvsig.raster.cache.lib.api</artifactId>
22
            <scope>compile</scope>
23
        </dependency>
24
        <dependency>
25
            <groupId>org.gvsig</groupId>
26
            <artifactId>org.gvsig.raster.lib.api</artifactId>
27
            <scope>compile</scope>
28
        </dependency>
29
        <dependency>
30
            <groupId>org.gvsig</groupId>
31
            <artifactId>org.gvsig.raster.lib.impl</artifactId>
32
            <scope>compile</scope>
33
        </dependency>
34
        <dependency>
35
            <groupId>org.gvsig</groupId>
36
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
37
            <scope>compile</scope>
38
        </dependency>
39
        <dependency>
40
            <groupId>org.gvsig</groupId>
41
            <artifactId>org.gvsig.remoteclient</artifactId>
42
            <scope>compile</scope>
43
        </dependency>
44
        <dependency>
45
            <groupId>org.gvsig</groupId>
46
            <artifactId>org.gvsig.tools.lib</artifactId>
47
            <scope>compile</scope>
48
        </dependency>
49
        <dependency>
50
            <groupId>org.gvsig</groupId>
51
            <artifactId>org.gvsig.projection.api</artifactId>
52
            <scope>compile</scope>
53
        </dependency>
54
        <dependency>
55
            <groupId>org.gvsig</groupId>
56
            <artifactId>org.gvsig.projection.cresques.impl</artifactId>
57
            <scope>runtime</scope>
58
        </dependency>
59
        <dependency>
60
            <groupId>org.gvsig</groupId>
61
            <artifactId>org.gvsig.compat.api</artifactId>
62
            <scope>compile</scope>
63
        </dependency>
64
        <dependency>
65
            <groupId>org.gvsig</groupId>
66
            <artifactId>org.gvsig.compat.se</artifactId>
67
            <scope>runtime</scope>
68
        </dependency>
69
        <dependency>
70
            <groupId>org.gvsig</groupId>
71
            <artifactId>org.gvsig.fmap.dal.api</artifactId>
72
            <scope>compile</scope>
73
        </dependency>
74
        <dependency>
75
            <groupId>org.gvsig</groupId>
76
            <artifactId>org.gvsig.fmap.dal.impl</artifactId>
77
            <scope>runtime</scope>
78
        </dependency>
79
        <dependency>
80
            <groupId>org.gvsig</groupId>
81
            <artifactId>org.gvsig.fmap.dal.file.lib</artifactId>
82
            <scope>compile</scope>
83
        </dependency>
84
        <dependency>
85
            <groupId>org.gvsig</groupId>
86
            <artifactId>org.gvsig.fmap.dal.spi</artifactId>
87
            <scope>compile</scope>
88
        </dependency>
89
        <dependency>
90
            <groupId>org.gvsig</groupId>
91
            <artifactId>org.gvsig.fmap.geometry.api</artifactId>
92
            <scope>compile</scope>
93
        </dependency>
94

  
95
    </dependencies>
96

  
97

  
98
</project>
0 99

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/addo/Jaddo.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22
package org.gvsig.addo;
23
import java.io.File;
24

  
25
import org.gdal.gdal.Dataset;
26
import org.gdal.gdal.gdal;
27

  
28
/**
29
 * Clase para la construccion de overviews de un raster.
30
 *
31
 * 15-nov-2007
32
 * @author Nacho Brodin (nachobrodin@gmail.com)
33
 */
34
public class Jaddo implements IOverviewIncrement{
35
	public final static int NEAREST = 0;
36
	public final static int AVERAGE = 1;
37
	public final static int AVERAGE_MP = 2;
38
	public final static int AVERAGE_MAGPHASE = 3;
39
	public final static int MODE = 4;
40

  
41
	private IOverviewIncrement  incrementListener = null;
42
	private int value = 0;
43

  
44
//	private native int buildOverviewsNative(int resamplingAlg, String file, int[] overviews);
45

  
46
	/**
47
	 * Construccion de overviews
48
	 */
49
	public void buildOverviews(int resamplingAlg, String file, int[] overviews)
50
		throws BuildingOverviewsException, WritingException {
51
		File f = new File(file);
52
		if(!f.exists() || !f.isFile())
53
			throw new BuildingOverviewsException("File does not exist.");
54
		if(!f.canWrite())
55
			throw new WritingException("File is not writeable");
56
		Dataset data = gdal.Open(file);
57
		if(data.BuildOverviews(overviews) >= 0)
58
			throw new BuildingOverviewsException("Problems building overviews");
59
	}
60

  
61
	/**
62
	 * Devuelve el porcentaje del incremento.
63
	 * @return int
64
	 */
65
	public int getPercent() {
66
		return value;
67
	}
68

  
69
	/**
70
	 * Asigna el porcentaje de incremento de la construccion de overview.
71
	 * Esto se hace automaticamente desde el callback que asigna el porcentaje.
72
	 */
73
	public void setPercent(int value) {
74
		this.value = value;
75
		if(incrementListener != null)
76
			incrementListener.setPercent(value);
77
	}
78

  
79
	/**
80
	 * Asigna el listener para la asignacion del incremento
81
	 * @param incr IOverviewIncrement
82
	 */
83
	public void setIncrementListener(IOverviewIncrement incr) {
84
		this.incrementListener = incr;
85
	}
86
}
0 87

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/addo/WritingException.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22
package org.gvsig.addo;
23

  
24
/**
25
 * Es generada no se puede escribir las overviews
26
 * 
27
 * @author Nacho Brodin (nachobrodin@gmail.com).<BR> Equipo de desarrollo gvSIG.<BR> http://www.gvsig.gva.es
28
 * @version 0.0
29
 * @link http://www.gvsig.org
30
 */
31

  
32

  
33
public class WritingException extends Exception {
34

  
35
	public WritingException(String msg){
36
		super(msg);
37
	}
38
	
39
	
40
}
0 41

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/addo/IOverviewIncrement.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22
package org.gvsig.addo;
23

  
24
/**
25
 * Interfaz para la asignacion y recuperacion del incremento
26
 * de la tarea.
27
 *
28
 * 17-nov-2007
29
 * @author Nacho Brodin (nachobrodin@gmail.com)
30
 */
31
public interface IOverviewIncrement {
32
	/**
33
	 * Devuelve el porcentaje del incremento
34
	 * @return int
35
	 */
36
	public int getPercent();
37
	
38
	/**
39
	 * Asigna el porcentaje de incremento de la construccion de overview.
40
	 * Esto se hace automaticamente desde el callback que asigna el porcentaje. 
41
	 */
42
	public void setPercent(int value);
43
}
0 44

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/addo/BuildingOverviewsException.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22
package org.gvsig.addo;
23

  
24
/**
25
 * Es generada cuando hay algun problema en la construccion de 
26
 * las overviews y la funcion nativa devuelve 0
27
 * 
28
 * @author Nacho Brodin (nachobrodin@gmail.com).<BR> Equipo de desarrollo gvSIG.<BR> http://www.gvsig.gva.es
29
 * @version 0.0
30
 * @link http://www.gvsig.org
31
 */
32
public class BuildingOverviewsException extends Exception {
33

  
34
	public BuildingOverviewsException(String msg) {
35
		super(msg);
36
	}
37
	
38
}
0 39

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/util/DefaultCRSUtils.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.util;
23

  
24
import org.cresques.cts.ICRSFactory;
25
import org.cresques.cts.IProjection;
26
import org.gdal.osr.SpatialReference;
27

  
28
import org.gvsig.fmap.crs.CRSFactory;
29
import org.gvsig.fmap.dal.coverage.util.CRSUtils;
30

  
31
/**
32
 * Esta clase se encarga de hacer la conversion entre Wkt e IProjection.
33
 *
34
 * El uso se hace mediante dos llamadas estaticas que son:
35
 * convertIProjectionToWkt y
36
 * convertWktToIProjection.
37
 *
38
 * Antes de usarlos, hay que saber si tenemos acceso a gvSIG e intentar coger el
39
 * factory desde all?.
40
 * Ya que su uso consume tiempo y espacio de memoria y es preferible
41
 * reaprovechar ese objeto ya
42
 * creado. Esto se hace con setCRSFactory.
43
 *
44
 * En caso de no asignarse el ya existente, el crear? uno interno y lo dejara en
45
 * una variable estatica.
46
 *
47
 * @version 11/07/2008
48
 * @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es)
49
 */
50
public class DefaultCRSUtils implements CRSUtils {
51

  
52
    private ICRSFactory factory = null;
53

  
54
    public void setCRSFactory(ICRSFactory factory) {
55
        this.factory = factory;
56
    }
57

  
58
    /**
59
     * Devuelve el CRSFactory asignado desde fuera o creado desde dentro, todo
60
     * depende de como se haya
61
     * usado.
62
     *
63
     * @param code
64
     * @return
65
     */
66
    private IProjection getCRS(String code) {
67
        if (factory == null)
68
            factory = CRSFactory.getCRSFactory(); // new ProjectionPool();
69
        return factory.get(code);
70
    }
71

  
72
    public IProjection convertWktToIProjection(String wkt) {
73
        if (wkt == null || wkt.equals(""))
74
            return null;
75

  
76
        String code = null;
77
        String name = null;
78

  
79
        SpatialReference oSRSSource = new SpatialReference();
80

  
81
        oSRSSource.ImportFromWkt(wkt);
82

  
83
        code = oSRSSource.GetAuthorityCode("PROJCS");
84
        if (code == null)
85
            code = oSRSSource.GetAuthorityCode("GEOGCS");
86
        name = oSRSSource.GetAuthorityName("PROJCS");
87
        if (name == null)
88
            name = oSRSSource.GetAuthorityName("GEOGCS");
89
        try {
90
            if (name != null && code != null)
91
                return getCRS(name + ":" + code);
92
        } catch (NumberFormatException ex) {
93
            return null;
94
        }
95

  
96
        return null;
97
    }
98

  
99
    public String convertIProjectionToWkt(IProjection projection) {
100
        if (projection == null)
101
            return null;
102
        return projection.export(ICRSFactory.FORMAT_WKT);
103
    }
104
}
0 105

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/overview/GdalOverviewBuilder.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.overview;
23

  
24
import org.gvsig.addo.BuildingOverviewsException;
25
import org.gvsig.addo.IOverviewIncrement;
26
import org.gvsig.addo.Jaddo;
27
import org.gvsig.addo.WritingException;
28
import org.gvsig.fmap.dal.coverage.exception.OverviewException;
29
import org.gvsig.fmap.dal.coverage.process.BaseIncrementableTask;
30
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder;
31

  
32
/**
33
 * Servicios ofrecidos por el proceso de construcci?n de overviews. Esta
34
 * implementaci?n usa gdal para construir las overviews.
35
 * 
36
 * @author Nacho Brodin (nachobrodin@gmail.com)
37
 */
38
public class GdalOverviewBuilder implements OverviewBuilder {
39
	private Jaddo        build         = new Jaddo();
40
	private int          value         = 0;
41

  
42
	/**
43
	 * Bindings between an IOverviewIncrement and a BaseIncrementableTask
44
	 * @author Nacho Brodin (nachobrodin@gmail.com)
45
	 */
46
	class ProcessBinding implements IOverviewIncrement {
47
		private BaseIncrementableTask  task = null;
48
		
49
		public ProcessBinding(BaseIncrementableTask task) {
50
			this.task = task;	
51
		}
52
		
53
		public int getPercent() {
54
			return task.getPercent();
55
		}
56

  
57
		public void setPercent(int value) {
58
			task.setPercent(value);
59
		}
60
	}
61
	
62
	/*
63
	 * (non-Javadoc)
64
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#buildOverviews(int, java.lang.String, int[])
65
	 */
66
	public void buildOverviews(int resamplingAlg, String file, int[] overviews)
67
			throws OverviewException {
68
		try {
69
			build.buildOverviews(resamplingAlg, file, overviews);
70
		} catch (BuildingOverviewsException e) {
71
			throw new OverviewException("Error building overviews", e);
72
		} catch (WritingException e) {
73
			throw new OverviewException("Error writing overviews", e);
74
		}
75
	}
76

  
77
	/*
78
	 * (non-Javadoc)
79
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#getPercent()
80
	 */
81
	public int getPercent() {
82
		return value;
83
	}
84

  
85
	/*
86
	 * (non-Javadoc)
87
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#setIncrementListener(org.gvsig.addo.IOverviewIncrement)
88
	 */
89
	public void setIncrementListener(BaseIncrementableTask incr) {
90
		build.setIncrementListener(new ProcessBinding(incr));
91
	}
92

  
93
	/*
94
	 * (non-Javadoc)
95
	 * @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#setPercent(int)
96
	 */
97
	public void setPercent(int value) {
98
		this.value = value;
99
	}
100
}
0 101

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/PAuxFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.raster.gdal.io.GdalProvider;
25
import org.gvsig.raster.gdal.io.GdalWriter;
26
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
27
/**
28
 * Caracteristicas del formato PAux para escritura.
29
 * Soporta tipo de datos enteros de 8 y 16 bits y reales de 32 bits.
30
 * La georreferenciaci?n y la proyecci?n son ignoradas.
31
 * 
32
 * @version 04/06/2007
33
 * @author Nacho Brodin (nachobrodin@gmail.com)
34
 */
35
public class PAuxFeatures extends WriteFileFormatFeatures {
36

  
37
	public PAuxFeatures() {
38
		super(GdalProvider.FORMAT_PAUX, "aux", new int[] { 3 }, null, GdalWriter.class);
39
	}
40

  
41
	/**
42
	 * Carga los par?metros de este driver.
43
	 */
44
	public void loadParams() {
45
		super.loadParams();
46
	}
47
}
0 48

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/PNM_PgmFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.GdalProvider;
26
import org.gvsig.raster.gdal.io.GdalWriter;
27
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
28
/**
29
 * Caracteristicas del formato PNM para escritura.
30
 * Esta clase soporta solo ficheros pgm. Estos son solo los PNM en 
31
 * escala de grises
32
 * 
33
 * @version 04/06/2007
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 */
36
public class PNM_PgmFeatures extends WriteFileFormatFeatures {
37

  
38
	public PNM_PgmFeatures() {
39
		super(GdalProvider.FORMAT_PNM, "pgm", new int[] { 1 }, null, GdalWriter.class);
40
	}
41

  
42
	/**
43
	 * Carga los par?metros de este driver.
44
	 */
45
	public void loadParams() {
46
		super.loadParams();
47

  
48
		driverParams.setParam("tfw", new Boolean("true"), Params.CHECK, null);
49
	}
50
}
0 51

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/BMPFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.GdalProvider;
26
import org.gvsig.raster.gdal.io.GdalWriter;
27
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
28
/**
29
 * Caracteristicas del formato BMP para escritura.
30
 * Soporta escritura de imagenes 1 banda (monocromo) o 3 (RGB) en 8 bits. 
31
 * La georreferenciaci?n puede hacerse mediante un fichero .wld.
32
 * 
33
 * @version 04/06/2007
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 */
36
public class BMPFeatures extends WriteFileFormatFeatures {
37

  
38
	public BMPFeatures() {
39
		super(GdalProvider.FORMAT_BMP, "bmp", new int[] { 3 }, null, GdalWriter.class);
40
	}
41

  
42
	/**
43
	 * Carga los par?metros de este driver.
44
	 */
45
	public void loadParams() {
46
		super.loadParams();
47
		driverParams.setParam("tfw", new Boolean("true"), Params.CHECK, null);
48
	}
49
}
0 50

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/HFAFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.GdalProvider;
26
import org.gvsig.raster.gdal.io.GdalWriter;
27
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
28
/**
29
 * Caracteristicas del formato HFA (.img) de Erdas para escritura.
30
 * Soporta enteros de 8, 16 y 32 bits y datos en coma flotante de 32 y 64 bits
31
 * con cualquier n?mero de bandas.
32
 * 
33
 * @version 04/06/2007
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 */
36
 //TODO: Mirar si se pueden generar con piramides
37
public class HFAFeatures extends WriteFileFormatFeatures {
38
	
39
	public HFAFeatures() {
40
		super(GdalProvider.FORMAT_HFA, "img", new int[] { -1 }, new int[] { 0, 1, 2, 3, 4, 5 }, GdalWriter.class);
41
	}
42
	
43
	/**
44
	 * Carga los par?metros de este driver.
45
	 */
46
	public void loadParams() {
47
		super.loadParams();
48

  
49
		driverParams.setParam("rrd", 
50
				new Integer(1), 
51
				Params.CHOICE, 
52
				new String[]{ "YES", "NO"});
53

  
54
		driverParams.setParam("compress", 
55
				new Integer(1), 
56
				Params.CHOICE, 
57
				new String[]{"YES", "NO"});
58
	}
59
}
0 60

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/GTiffFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.GdalProvider;
26
import org.gvsig.raster.gdal.io.GdalWriter;
27
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
28

  
29
/**
30
 * Caracteristicas del formato GeoTiff para escritura.
31
 * 
32
 * @version 04/06/2007
33
 * @author Nacho Brodin (nachobrodin@gmail.com)
34
 */
35
public class GTiffFeatures extends WriteFileFormatFeatures {
36

  
37
	public GTiffFeatures() {
38
		super(GdalProvider.FORMAT_GTiff, "tif", new int[] { -1 }, new int[] { 0, 1, 2, 3, 4, 5 }, GdalWriter.class);
39
	}
40

  
41
	/**
42
	 * Carga los par?metros de este driver.
43
	 */
44
	public void loadParams() {
45
		super.loadParams();
46
		driverParams.setParam(
47
				"photometric", 
48
				new Integer(3), 
49
				Params.CHOICE, 
50
				new String[]{"YCBR", "MINISBLACK", "MINISWHITE", "RGB", "CMYK", "CIELAB", "ICCLAB", "ITULAB", "CBCR"});
51
		driverParams.setParam(
52
				"interleave", 
53
				new Integer(0), 
54
				Params.CHOICE, 
55
				new String[]{ "BAND", "PIXEL"});
56
		driverParams.setParam(
57
				"compression", 
58
				new Integer(3),
59
				Params.CHOICE, 
60
				new String[]{"LZW", "PACKBITS", "DEFLATE", "NONE"});
61
		driverParams.setParam("tfw", new Boolean("false"), Params.CHECK, null);
62
	}
63
}
0 64

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/IDRISIFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.raster.gdal.io.GdalProvider;
25
import org.gvsig.raster.gdal.io.GdalWriter;
26
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
27
/**
28
 * Caracteristicas del formato RST de IDRISI para escritura.
29
 * Soporta tipos de datos enteros en 8, 16 y 32 bits y coma flotante en 32 bits
30
 * Genera un fichero RDC con la descripci?n de la imagen
31
 * 
32
 * @version 04/06/2007
33
 * @author Nacho Brodin (nachobrodin@gmail.com)
34
 */
35
public class IDRISIFeatures extends WriteFileFormatFeatures {
36
	
37
	public IDRISIFeatures() {
38
		super(GdalProvider.FORMAT_RST, "rst", new int[] { -1 }, new int[] { 0, 1, 2, 3, 4 }, GdalWriter.class);
39
	}
40

  
41
	/**
42
	 * Carga los par?metros de este driver.
43
	 */
44
	public void loadParams() {
45
		super.loadParams();
46
	}
47
}
0 48

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/PngFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.raster.gdal.io.PngWriter;
25
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
26
/**
27
 * Caracteristicas del formato Png para escritura.
28
 * La georreferenciaci?n puede hacerse mediante un fichero .wld.
29
 * 
30
 * @version 14/12/2007
31
 * @author Nacho Brodin (nachobrodin@gmail.com)
32
 */
33
public class PngFeatures extends WriteFileFormatFeatures {
34

  
35
	public PngFeatures() {
36
		super("Png", "png", new int[] { 4 }, null, PngWriter.class);
37
	}
38

  
39
	/**
40
	 * Carga los par?metros de este driver.
41
	 */
42
	public void loadParams() {
43
		super.loadParams();
44
	}
45
}
0 46

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/RMFFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.GdalProvider;
26
import org.gvsig.raster.gdal.io.GdalWriter;
27
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
28
/**
29
 * Caracteristicas del formato Raster Matrix Format 
30
 * Soporta tipos de datos enteros en 16 bits y coma flotante en 64 bits.
31
 * ?Ojo! en la documentaci?n de gdal pone 32 bits en flotante pero no se lo traga.
32
 * 
33
 * @version 04/06/2007
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 */
36
public class RMFFeatures extends WriteFileFormatFeatures {
37
	
38
	public RMFFeatures() {
39
		super(GdalProvider.FORMAT_RMF, "rmf", new int[]{-1}, new int[]{0, 1, 3, 5}, GdalWriter.class);
40
	}
41
	
42
	/**
43
	 * Carga los par?metros de este driver.
44
	 */
45
	public void loadParams() {
46
		super.loadParams();
47
		
48
		driverParams.setParam("Mtw", 
49
			new Integer(1), 
50
			Params.CHOICE, 
51
			new String[]{"ON", "OFF"});
52
		driverParams.setParam("Tile Width", 
53
			new Integer(3), 
54
			Params.CHOICE, 
55
			new String[]{"32", "64", "128", "256", "512"});
56
		driverParams.setParam("Tile Height", 
57
			new Integer(3),  
58
			Params.CHOICE, 
59
			new String[]{"32", "64", "128", "256", "512"});
60
	}
61
}
0 62

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/ILWIS_MprFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.raster.gdal.io.GdalProvider;
25
import org.gvsig.raster.gdal.io.GdalWriter;
26
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
27
/**
28
 * Caracteristicas del formato ILWIS para escritura.
29
 * Soporta tipos de datos enteros en 8, 16 y 32 bits y coma flotante en 32 y 64 bits
30
 * Genera un fichero .mpl con la informaci?n de contenido (ficheros), un fichero .grf con la
31
 * georreferenciaci?n, y dos ficheros por banda. Un .mpr con la informaci?n referente a los
32
 * datos de la banda y un .mp# con los datos de la banda
33
 * 
34
 * @version 04/06/2007
35
 * @author Nacho Brodin (nachobrodin@gmail.com)
36
 */
37
public class ILWIS_MprFeatures extends WriteFileFormatFeatures {
38

  
39
	public ILWIS_MprFeatures() {
40
		super(GdalProvider.FORMAT_ILWIS, "mpl", new int[] { -1 }, new int[] { 0, 1, 2, 3, 4, 5 }, GdalWriter.class);
41
	}
42

  
43
	/**
44
	 * Carga los par?metros de este driver.
45
	 */
46
	public void loadParams() {
47
		super.loadParams();
48
	}
49
}
0 50

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/JpegFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.JpegWriter;
26
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
27
/**
28
 * Caracteristicas del formato Jpeg para escritura.
29
 * Soporta escritura de imagenes 1 banda (monocromo) o 3 (RGB) en 8 bits. 
30
 * La georreferenciaci?n puede hacerse mediante un fichero .wld.
31
 * 
32
 * @version 04/06/2007
33
 * @author Nacho Brodin (nachobrodin@gmail.com)
34
 *
35
 */
36
public class JpegFeatures extends WriteFileFormatFeatures {
37
	
38
	public JpegFeatures() {
39
		super("Jpeg", "jpg", new int[]{3}, null, JpegWriter.class);
40
	}
41
	
42
	/**
43
	 * Carga los par?metros de este driver.
44
	 */
45
	public void loadParams() {
46
		super.loadParams();
47
		
48
		driverParams.setParam("quality",
49
				new Integer(16),
50
				Params.SLIDER,
51
				new String[]{ "10", "100", "16", "5", "30"}); //min, max, valor defecto, intervalo peque?o, intervalo grande;
52

  
53
		driverParams.setParam("progressive", 
54
				new Boolean("false"), 
55
				Params.CHECK, 
56
				null);
57
	}
58
}
0 59

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/PNM_PpmFeatures.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.GdalProvider;
26
import org.gvsig.raster.gdal.io.GdalWriter;
27
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
28
/**
29
 * Caracteristicas del formato PNM para escritura.
30
 * Esta clase soporta solo ficheros ppm. Estos son solo los PNM en
31
 * RGB
32
 * 
33
 * @version 04/06/2007
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 */
36
public class PNM_PpmFeatures extends WriteFileFormatFeatures {
37

  
38
	public PNM_PpmFeatures() {
39
		super(GdalProvider.FORMAT_PNM, "pgm", new int[] { 3 }, null, GdalWriter.class);
40
	}
41

  
42
	/**
43
	 * Carga los par?metros de este driver.
44
	 */
45
	public void loadParams() {
46
		super.loadParams();
47

  
48
		driverParams.setParam("tfw", new Boolean("true"), Params.CHECK, null);
49
	}
50
}
0 51

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/features/Jpeg2000Features.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io.features;
23

  
24
import org.gvsig.fmap.dal.coverage.datastruct.Params;
25
import org.gvsig.raster.gdal.io.GdalProvider;
26
import org.gvsig.raster.gdal.io.GdalWriter;
27
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
28
/**
29
 * Caracteristicas del formato Jpeg2000 para escritura.
30
 * Soporta escritura de imagenes 1 banda (monocromo) o 3 (RGB) en 8 bits. 
31
 * La georreferenciaci?n puede hacerse mediante un fichero .wld.
32
 * 
33
 * @version 26/08/2013
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 *
36
 */
37
public class Jpeg2000Features extends WriteFileFormatFeatures {
38
	
39
	public Jpeg2000Features() {
40
		super(GdalProvider.FORMAT_JP2, "jp2", new int[]{3}, null, GdalWriter.class);
41
	}
42
	
43
	/**
44
	 * Carga los par?metros de este driver.
45
	 */
46
	public void loadParams() {
47
		super.loadParams();
48
		
49
		driverParams.setParam("quality",
50
				new Integer(16),
51
				Params.SLIDER,
52
				new String[]{ "10", "100", "16", "5", "30"}); //min, max, valor defecto, intervalo peque?o, intervalo grande;
53

  
54
		driverParams.setParam("progressive", 
55
				new Boolean("false"), 
56
				Params.CHECK, 
57
				null);
58
	}
59
}
0 60

  
org.gvsig.raster.gdal/tags/org.gvsig.raster.gdal-2.2.86/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/PngWriter.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.gdal.io;
23

  
24
import java.awt.geom.AffineTransform;
25
import java.io.File;
26
import java.io.IOException;
27

  
28
import org.cresques.cts.IProjection;
29
import org.gvsig.fmap.dal.coverage.RasterLocator;
30
import org.gvsig.fmap.dal.coverage.datastruct.Params;
31
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
32
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
33
import org.gvsig.jgdal.GdalDataset;
34
import org.gvsig.jgdal.GdalDriver;
35
import org.gvsig.jgdal.GdalException;
36
import org.gvsig.raster.gdal.io.features.PngFeatures;
37
import org.gvsig.raster.impl.store.WriteFileFormatFeatures;
38
import org.gvsig.raster.impl.store.writer.DefaultRasterWriter;
39
import org.gvsig.raster.util.DefaultProviderServices;
40
import org.gvsig.tools.ToolsLocator;
41
import org.gvsig.tools.extensionpoint.ExtensionPoint;
42
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
43
/**
44
 * Driver para la escritura de Png.
45
 * Este driver utiliza GdalWriter para salvar Png.
46
 * La escritura de un png no es posible utilizando un servidor de datos
47
 * como el que usan los drivers comunes por lo que ser? necesario salvar antes
48
 * a Tif con el driver de Gdal para posteriormente convertir la imagen completa
49
 * a png. El problema que tiene es el mismo del jpg y es que el dataset solo soporta la
50
 * escritura rw y no rw+.
51
 *
52
 * @version 22/07/2008
53
 * @author Nacho Brodin (nachobrodin@gmail.com)
54
 */
55
public class PngWriter extends DefaultRasterWriter {
56

  
57
	// Datos de registro de drivers
58
	public static void register() {
59
		DefaultProviderServices pInfo = (DefaultProviderServices)RasterLocator.getManager().getProviderServices();
60
		ExtensionPointManager extensionPoints =ToolsLocator.getExtensionPointManager();
61
		ExtensionPoint point=extensionPoints.get("RasterWriter");
62
		point.append("png", "", PngWriter.class);
63
		pInfo.getFileFeature().put("png", new PngFeatures());
64
	}
65

  
66
	private GdalWriter gdalWriter = null;
67
	private String     outTif     = null;
68
	private String     outPng     = null;
69

  
70
	/**
71
	 * Carga los par?metros de este driver.
72
	 */
73
	public void loadParams(String ident) {
74
		WriteFileFormatFeatures wfff = (WriteFileFormatFeatures) pInfo.getFileFeature().get(ident);
75
		wfff.loadParams();
76
		driverParams = wfff.getParams();
77
	}
78
	
79
	/*
80
	 * (non-Javadoc)
81
	 * @see org.gvsig.fmap.dal.coverage.store.RasterWriter#getProviderName()
82
	 */
83
	public String getProviderName() {
84
		return GdalProvider.NAME;
85
	}
86

  
87
	/**
88
	 * Constructor para la obtenci?n de par?metros del driver
89
	 * @param drvType Tipo de driver
90
	 */
91
	public PngWriter(String fileName) {
92
		ident = fileUtil.getExtensionFromFileName(fileName);
93
		driver = ((WriteFileFormatFeatures) pInfo.getFileFeature().get(ident)).getDriverName();
94
		gdalWriter = new GdalWriter(fileName);
95

  
96
		loadParams(ident);
97
	}
98

  
99
	/**
100
	 * Constructor para salvar datos servidos por el cliente
101
	 * @param dataWriter Objeto servidor de datos para el driver de escritura
102
	 * @param outSizeX N?mero de pixels en X de la imagen de salida
103
	 * @param outSizeY N?mero de pixels en Y de la imagen de salida
104
	 * @param outFilename Fichero de salida
105
	 * @param extentMaxX Posici?n en X m?xima del extent
106
	 * @param extentMinX Posici?n en X m?nima del extent
107
	 * @param extentMaxY Posici?n en Y m?xima del extent
108
	 * @param extentMinY Posici?n en Y m?nima del extent
109
	 * @param nBands N?mero de bandas
110
	 * @param drvType Tipo de driver
111
	 * @throws GdalException
112
	 * @throws IOException
113
	 */
114
	public PngWriter(DataServerWriter dataWriter,
115
							String outFileName,
116
							Integer nBands,
117
							AffineTransform at,
118
							Integer outSizeX,
119
							Integer outSizeY,
120
							Integer dataType,
121
							Params params,
122
							IProjection proj,
123
							Boolean geo)throws GdalException, IOException  {
124
		ident = fileUtil.getExtensionFromFileName(outFileName);
125
		driver = ((WriteFileFormatFeatures) pInfo.getFileFeature().get(ident)).getDriverName();
126
		outPng = outFileName;
127
		outTif = outFileName.substring(0, outFileName.lastIndexOf("."));
128
		outTif += ".tif";
129
		this.at = at;
130

  
131
		gdalWriter = new GdalWriter(dataWriter, outTif, nBands, at, outSizeX, outSizeY, dataType, params, proj, geo);
132
		if (params == null)
133
			loadParams(ident);
134
		else
135
			this.driverParams = params;
136
	}
137

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff