[Gvsig_desarrolladores] exportar raster en bloques

Oscar Garcia oscarg en dielmo.com
Jue Ene 15 12:44:02 CET 2009


Gracias por todo Nacho, efectivamente el fallo estaba en driver de ECW. La e
modificado y me va el exportado correctamente.

En la extensión "libCQ CMS for java" en la función:
public RasterBuf getWindowRaster(double x, double y, double w, double h,
BandList bandList, RasterBuf rasterBuf)

se cambia de orden la lectura de bandas de bandas y funciona correctamente:

int[] pRGBArray = new int[width];
for (int line = 0; line < rasterBuf.getHeight(); line++) {
       file.readLineRGBA(pRGBArray);
       // Modificacion Dielmo, cambio de orden de las bandas.
       for(int col = 0; col < pRGBArray.length; col ++){
           	rasterBuf.setElemByte(line, col, 2, (byte)(pRGBArray[col]
& 0x000000ff));
            rasterBuf.setElemByte(line, col, 1, (byte)((pRGBArray[col] &
0x0000ff00) >> 8));
            rasterBuf.setElemByte(line, col, 0, (byte)((pRGBArray[col] &
0x00ff0000) >> 16));
        }
}



Yo al menos cambiando esto no he notado nada raro al añadir capas ecw en la
vista ni nada pero el exportado se me soluciona. No se si es lógico cambiar
esta extensión o la solución podría venir de otra forma. Pero mi problema
ahora es ¿como distribuyo mi distribución? ¿mediante un instalable que
sobrescriba las librerías que se generan a partir de la extensión "libCQ CMS
for java"?

Si hay otra forma de arreglar este problema agradecería las opiniones al
respecto.


Gracias.

Un saludo, Oscar.

DIELMO 3D S.L.

-----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: jueves, 15 de enero de 2009 8:18
Para: gvsig_desarrolladores en runas.cap.gva.es
Asunto: Re: [Gvsig_desarrolladores] exportar raster en bloques

El problema de la bandas es posible que esté en la implementación del driver

de ecw pero no estoy seguro sin hacer pruebas. Ten en cuenta que estás 
trabajando con piloto (prototipo). Por eso te recomendaba el paso a la 1.9
en 
la que la parte raster está más evolucionada y se está haciendo un 
mantenimiento.

Saludos

On Wednesday 14 January 2009 18:26:42 Oscar Garcia wrote:
> Por cierto se me olvidaba decir que el problema de volteo de capas solo me
> pasa cuando la capa raster de entrada es de tipo ECW. Mientras con Tif o
> Jpg si que me guarda el color como corresponde. Tiene que estar el
problema
> o en el " WriterBufferServer" o en el cargado de datos del "RasterBuf"
> usando el "setAreaOfInterest", yo al menos no le veo otra explicacion
>
> Lo siento por mandar otro correo pero considere que era importante.
>
> Saludos, Oscar Garcia.
>
> -----Mensaje original-----
> De: gvsig_desarrolladores-bounces en runas.cap.gva.es
> [mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] En nombre de Oscar
> Garcia
> Enviado el: miércoles, 14 de enero de 2009 18:21
> Para: 'Lista de Desarrolladores de gvSIG'
> Asunto: RE: [Gvsig_desarrolladores] exportar raster en bloques
>
> Hola Nacho, al fin he conseguido leer desde otros raster como ecw, tif y
> jpg (que son los que probe). Ahora mi problema sigue siendo que las capas
> siguen guardandose con las bandas volteadas. Es decir que cambia la banda
R
> por la B. Este problema creo que es del "WriterBufferServer". De hecho
> probando con la funcion de la librería "cms.jar" RasterBuf.save(sFilename,
> extension) ya me da ese problema de salvado de capas con las bandas
> volteadas. Es posible arreglar este problema de una forma más o menos
> sencilla o me tendría que escribir mi propio "IDataWriter" cosa que no
> entiendo muy bien.
>
> Gracias de nuevo.
>
> -----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
>
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores

-- 
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/1894 - Release Date: 14/01/2009
19:27




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