[Gvsig_desarrolladores] exportar raster en bloques

Oscar Garcia oscarg en dielmo.com
Mie Ene 14 10:20:35 CET 2009


Hola, Pues de hecho estaba cargando capas de 1000x1000 pero tengo los mismos
problemas, la capa R sigue cambiandose por la B y de entrada solo me
consigue exportar ficheros en ecw.

Mi sensación al depurar es que setAreaOfInterest no funciona igual para
todos los tipos de raster de entrada. Es decir cuando cargo un ecw con el
código: 
// tamX = 1000, tamY=1000
grid.setAreaOfInterest(minXCapa+k*tamX, maxYCapa-j*tamY, tamX, tamY); 


carga correctamente el RasterBuf (pero tengo el problema de las bandas R y
B) y cuando cargo un tif de entrada en el RasterBuf la variable interna de
las bandas de este buf.getBandCount() queda a cero y me salta la excepcion
cuando intento salvar el trozo de raster que intente cargar con el
setAreaOfInterest(). Es decir no me carga el setAreaOfInterest correctamente
el RasterBuf cuando la entrada es tif.


-----Mensaje original-----
De: gvsig_desarrolladores-bounces en runas.cap.gva.es
[mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] En nombre de Nacho
Brodin
Enviado el: miércoles, 14 de enero de 2009 8:25
Para: gvsig_desarrolladores en runas.cap.gva.es
Asunto: Re: [Gvsig_desarrolladores] exportar raster en bloques

Hola
Te comento un par de cosas por si te son de utilidad.

Normalmente se exporta por bloques para evitar cargar todo el raster en 
memoria cuando este es muy grande. Has de tener en cuenta que si cargas el 
Grid de golpe antes de empezar te estás limitando la cantidad de datos
leídos. 
Lo recomendable sería que el servidor de datos leyera solo de la fuente de 
datos el trozo que se le pide en cada momento. Si los trozos a exportar van
a 
ser siempre pequeños pues no tendrás este problema.

Con respecto a excepción con writeByteBand lo único que se me ocurre, viendo

el código que pones es que nbands no sea correcto. Si vas a escribir el
mismo 
número de bandas que el buffer de entrada haz un buf.getBandCount() (creo
que 
se llama así) en la creación de GeoRasterWriter. Otra posibilidad es que el 
tipo de dato de la entrada no sea compatible con el de la salida pero por tu

código no parece que vaya ser ese el problema.

Saludos.

On Tuesday 13 January 2009 17:43:26 Oscar Garcia wrote:
> Hola nacho, gracias por tu contestación de ayer. Estuve profundizando y
con
> este código de más abajo e llegado a exportar teniendo capas de entrada en
> ECW, pero cuando es de otro tipo como Tif me salta una excepción en la
> clase GdalWriter la función writeByteBand.
>
> Aparte de eso para entradas ECW me recorta bien pero me cambia la banda R
> por la banda B.
>
> Estoy echo un lió. Bueno gracias más abajo dejo el código.
>
>
> File InputRasterFile = new File(InputRasterFileName);
> RasterDriver rasterDriver = (RasterDriver)
> LayerFactory.getDM().getDriver("gvSIG Image Driver");
> FLyrRaster capaRaster = LayerFactory.createLayer("prueba", rasterDriver,
> InputRasterFile, Project.getDefaultProjection());
>
> Grid grid = capaRaster.getGrid();
> Extent ext = new Extent(grid.getExtent());
> grid.setAreaOfInterest(ext.getMin().getX(),
> ext.getMax().getY(),ancho,alto); RasterBuf buf = grid.getRasterBuf();
>
> // salvado a geoRaster
> String sFilename = folder_out + "prueba."+Outextension;
> ext = new Extent(grid.getDataExtent());
> IDataWriter dataWriter = new WriterBufferServer(buf);
> GeoRasterWriter grw = GeoRasterWriter.getWriter(dataWriter, sFilename,
> buf.getHeight(), nbands, ext,	10, buf.getWidth(), buf.getHeight(),
> buf.getDataType());
>
> grw.dataWrite();
> grw.writeClose();

-- 
Nacho Brodin
Grupo desarrollo gvSIG.
IVER TI S.A.
C/ Lérida, 20
46005-Valencia
www.iver.es
www.gvsig.com

Este mensaje y sus archivos son confidenciales. No está permitida su
reproducción o distribución sin la autorización expresa de "IVER Tecnologías
de la Información". Si usted no es el destinatario previsto, queda
desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido
este mensaje por error, por favor bórrelo e infórmenos por esta misma vía.



_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores en runas.cap.gva.es
http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores


-- 
No virus found in this incoming message.
Checked by AVG. 
Version: 7.5.552 / Virus Database: 270.10.7/1892 - Release Date: 13/01/2009
20:04





Más información sobre la lista de distribución gvSIG_desarrolladores