Herramientas Personales
Usted está aquí: Inicio Desarrollo Guía de extensiones (versión desarrollo) Plugins Raster Tools Funcionalidades Recorte de ráster Extensión de gvSIG
Acciones de Documento

Extensión de gvSIG

por Victor AcevedoÚltima modificación 10/06/2008 16:51

Paso de parámetros

La entrada de datos del proceso de recorte es una capa raster, ya que se trata de recorte de capas raster. CuttingTocMenuEntry cogerá la capa de la vista seleccionada para el recorte y la pasará a CuttingDialog con un método de asignación. De la capa se obtendrá toda la información del raster necesaria para la lectura de datos del recorte.

Incremento de la tarea

Para la barra de progreso utilizamos el objeto IncrementableTask de la librería libUIComponents. Este es un componente general para visualizar el incremento de una tarea. Tiene un interfaz IIncrementable con los métodos necesarios para actualizar el panel de incremento. IncrementableTask consultará las funciones de IIncrementable cada 100ms. En este caso el proceso de calculo de recorte debe implementar este interfaz y ser pasado a IncrementableTask en su creación.

Desde el proceso de recorte (CuttingProcess) capturaremos los eventos de la ventana de incremento para poder responder a la acción de cancelado del proceso. Para esto, nuestro CuttingProcess implementa el interfaz IncrementableListener que tiene los métodos para dar respuesta a este y otros eventos.

Proceso de cálculo

El proceso de calculo del recorte, como se ha comentado se divide en lectura de datos y escritura. La operación de lectura será realizada por la clase CuttingProcess. Al pulsar “Aceptar” o “Aplicar” en el dialogo CuttingPanelListener se recoge el evento y pasa los parámetros a CuttingProcess. Estos parámetros son obtenidos del cuadro de dialogo y de la capa. Para la creación del BufferFactory se necesita el MultiRasterDataset de entrada, las coordenadas de recorte obtenidas del dialogo y el número de bandas a leer. Se seleccionan todas las bandas en la lectura ya que será en la escritura donde se discrimine que bandas y en que raster de salida se escribe.

Una vez obtenido el IBuffer con los datos de origen se pasa a la escritura. Hay dos tipos de escritura, de un solo raster de salida o uno por cada banda. Para la escritura de uno solo se creará un GeoRasterWriter con los parámetros de escritura. Para la escritura de uno por banda se creará un GeoRasterWriter, se escribirá y se cerrará el dataset, luego se repetirá la operación para la siguiente banda. De este modo cada vez que se termine un raster de una banda se carga en el TOC y el proceso continuará hasta terminar todas las bandas.

La operación de finalización cuttingPanelListener.cutFinalize(f); cargará la capa creada en el TOC en el caso de que se haya seleccionado esta opción.

« Enero 2009 »
Do Lu Ma Mi Ju Vi
123
45678910
11121314151617
18192021222324
25262728293031
 

Hecho con Plone CMS, el Sistema de Gestión de Contenidos de Fuentes Abiertos

Este sitio cumple con los siguientes estándares: