CAPÍTULO 2. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE VISUALIZACIÓN
2.4 Implementación de la extensión
En este epígrafe se exponen los temas referentes a la implementación de la extensión teniendo en cuenta las tecnologías utilizadas para la implementación y algunas consideraciones sobre las técnicas implementadas.
2.4.1 Selección de las tecnologías necesarias para la implementación
Durante el desarrollo o extensión de un sistema deben tomarse decisiones de implementación como la plataforma objetivo y el lenguaje de desarrollo. En cada proyecto hay que puntualizar en determinadas áreas específicas de la aplicación. En el caso particular de este proyecto debe fijarse la API (Application Programming Interface) gráfica a utilizar.
CAPÍTULO II
2013
50
Elección del lenguaje de desarrollo
El objetivo de este proyecto es adicionar nuevas técnicas de visualización para datos multiparamétricos al módulo existente de visualización científica del gvSIG. Esta herramienta está construida con el lenguaje Java. El proceso de integración de las técnicas de visualización con el sistema actual inevitablemente tendrá que interactuar y utilizar el código fuente de gvSIG. Esto hace al lenguaje Java la mejor elección para mantener la mayor compatibilidad posible con el sistema actual.
A las razones descritas anteriormente se puede agregar que este proyecto necesita de un lenguaje potente en la implementación de interfaz gráfica, lo que se puede conseguir con la plataforma Java. Por otra parte la implementación del módulo de visualización científica en este lenguaje permite la fácil reutilización y adaptación de varias de sus componentes, facilitando su integración con otros sistemas, producto de la flexibilidad y potencialidades de Java.
Elección de la API gráfica
Las técnicas que se decidieron implementar no requieren de gran complejidad en la API gráfica. En particular no necesitan de una API 3D. Por esto se decidió utilizar la tecnología Java 2D que brinda un excelente desempeño y potencialidad para la programación gráfica en dos dimensiones. Esta decisión facilita a los usuarios la utilización del sistema ya que no necesitan paquetes adicionales a los de la plataforma Java.
La API Java 2D está constituida por un conjunto de clases que pueden ser usadas para crear gráficos de elevada calidad. Esto incluye técnicas como: transformaciones geométricas, disminución de curvas o líneas causadas por una baja resolución del gráfico, dibujado de mapas de píxeles, procesamiento de imágenes, diseño bidireccional de texto, además de excelentes vías para el uso del color, solo por mencionar algunos. Se utiliza esta API para crear las representaciones visuales de las técnicas de visualización.
Elección del Entorno de Desarrollo Integrado
Existe un conjunto de Entornos de Desarrollo Integrado (IDE, de sus siglas en inglés) que permiten el desarrollo de proyectos en Java. El IDE Eclipse versión 3.4 fue el seleccionado como
CAPÍTULO II
2013
51
ambiente de programación de esta extensión, debido a que resulta cómodo y fácil de usar para depurar programas. Además la estructura de proyectos de gvSIG está diseñada para ser compilado con mayor facilidad utilizando este IDE.
Elección de la versión de gvSIG a utilizar como sistema base
El progresivo desarrollo de gvSIG por parte de una comunidad de desarrolladores hace posible que con cierta regularidad se actualice su versión. Actualmente la versión estable de gvSIG es la 1.12 sin embargo el módulo fue compilado con la versión 1.10 y funciona para las versiones 1.10, 1.11 y 1.12.
2.4.2 Consideraciones sobre las técnicas implementadas
Las técnicas seleccionadas presentan una estructura general, la cual contiene parámetros que pueden variar de una implementación a otra. A continuación se establecen las consideraciones realizadas en cada método para la implementación realizada.
Matrices de Dispersión
La técnica Matrices de Dispersión fue implementada para ser visualizada en paneles independientes. El panel de configuración se puede ver a través de la clase
ScatterPlotMatrix1Ind del paquete para la visualización coordinada y el gráfico lo genera la clase ScatterPlotMatrixPanel_pi. Este gráfico muestra como resultado una matriz cuadrada donde cada elemento (i,j) es un Diagrama de Dispersión. Además muestra los nombres de las variables por cada fila y columnas para una mejor comprensión de la visualización.
Caras de Chernoff
La técnica Caras de Chernoff fue implementada para ser visualizada en paneles independientes. El panel de configuración se puede ver a través de la clase ChernoffFaceConfigPanel1Ind del paquete para la visualización coordinada y el gráfico lo genera la clase ChernoffFacePanel_pi1. Este gráfico muestra como resultado un conjunto de caras (una por cada fila de datos). Estos rostros están divididos en 16 características: radio de la cabeza, radio del ojo, alineación a la derecha e izquierda del ojo, alineación vertical del ojo, radio de la pupila, la posición vertical de
CAPÍTULO II
2013
52
las cejas, 4 parámetros para trazar la curvatura de las cejas, el ápice derecho e izquierdo de la nariz, el ancho y alto de la nariz y la posición vertical de la boca. A cada elemento anteriormente mencionado se le asigna el valor de una variable para que este se dibuje dependiendo del dato que esta posea.
Mapas Auto-organizados
La técnica Mapas Auto-organizados fue implementada para ser visualizada en paneles independientes. El panel de configuración se puede ver a través de la clase
ScatterPlotMatrix1Ind del paquete para la visualización coordinada y el gráfico lo genera la clase SOMPanel_pi1. Este gráfico representa el mapa como una rejilla regular de neuronas, el tamaño y topología del mapa se puede observar en el gráfico donde cada elemento representa una neurona.
Cuando se genera la matriz U (matriz unificada de distancias) se calcula, a su vez, una matriz de distancias entre los vectores de referencia de neuronas adyacentes en el mapa bidimensional. Después se selecciona algún tipo de representación gráfica, por ejemplo una escala de grises. Los colores en la figura se seleccionan de modo que cuanto más oscuro es el color entre dos neuronas, mayor es la distancia entre ellas.
Cada neurona de entrada i está conectada con cada una de las neuronas de salida j mediante un peso wij. De esta forma, las neuronas de salida tienen asociado un vector de pesos Wj llamado
vector de referencia (o codebook), debido a que constituye el vector prototipo (o promedio) de la categoría representada por la neurona de salida j.
Las topologías más frecuentes son la rectangular y la hexagonal. Las neuronas adyacentes pertenecen a una vecindad Nj de la neurona j. La topología y el número de neuronas permanecen
fijos desde el principio.
Durante la fase de entrenamiento, el SOM forma una red elástica que se pliega dentro de la nube de datos originales. El algoritmo controla la red de modo que tiende a aproximar la densidad de los datos. Los vectores de referencia del codebook se acercan a las áreas donde la densidad de datos es alta.
CAPÍTULO II
2013
53
2.5 Guía para la adición de nuevas técnicas al paquete de visualización