implementacion de una aplicaci on gr afica para el

55
UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS F ´ ISICAS Y MATEM ´ ATICAS DEPARTAMENTO DE LAS CIENCIAS DE LA COMPUTACI ´ ON IMPLEMENTACI ´ ON DE UNA APLICACI ´ ON GR ´ AFICA PARA EL PROCESAMIENTO Y VISUALIZACI ´ ON DE DATOS GEOF ´ ISICOS DE POTENCIAL MEMORIA PARA OPTAR AL T ´ ITULO DE INGENIERO CIVIL EN COMPUTACI ´ ON ERNESTO JORGE CASTILLO NAVARRETE PROFESORA GU ´ IA: NANCY HITSCHFELD KAHLER MIEMBROS DE LA COMISI ´ ON: GONZALO YA ˜ NEZ CARRIZO MARIA CECILIA RIVARA ZU ˜ NIGA SANTIAGO DE CHILE ABRIL 2010

Upload: others

Post on 06-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

UNIVERSIDAD DE CHILEFACULTAD DE CIENCIAS FISICAS Y MATEMATICASDEPARTAMENTO DE LAS CIENCIAS DE LA COMPUTACION

IMPLEMENTACION DE UNA APLICACION GRAFICA PARA ELPROCESAMIENTO Y VISUALIZACION DE DATOS GEOFISICOS DE

POTENCIAL

MEMORIA PARA OPTAR AL TITULO DE INGENIERO CIVIL ENCOMPUTACION

ERNESTO JORGE CASTILLO NAVARRETE

PROFESORA GUIA:NANCY HITSCHFELD KAHLER

MIEMBROS DE LA COMISION:GONZALO YANEZ CARRIZO

MARIA CECILIA RIVARA ZUNIGA

SANTIAGO DE CHILEABRIL 2010

Page 2: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

RESUMEN DE LA MEMORIAPARA OPTAR AL TITULO DEINGENIERO CIVIL EN COMPUTACIONPOR: ERNESTO JORGE CASTILLO NAVARRETEFECHA: 20/IV/2010PROF. GUIA: NANCY HITSCHFELD

IMPLEMENTACION DE UNA APLICACION GRAFICA PARA EL PROCESAMIENTOY VISUALIZACION DE DATOS GEOFISICOS DE POTENCIAL

El presente trabajo tenıa como objetivo el desarrollo de una aplicacion grafica que sirvierade base para implementar las principales funcionalidades de procesamiento y visualizacion dedatos geofısicos de potencial. Su realizacion se justificaba ya que si bien existen programasrelacionados, no todos poseen las funcionalidades requeridas, y por otra parte se deseabatener un mejor control sobre una aplicacion base a partir de la cual desarrollar y adecuarfunciones especıficas ad-hoc.

Con el fin de familiarizarse con las funcionalidades a implementar se estudiaron los con-ceptos relacionados principalmente con los metodos de exploracion geofısicos en cuestion,tomando en consideracion los sistemas de coordenadas empleados, el formato de los archivosde datos, los metodos de grillado, las proyecciones existentes, los metodos de visualizacion,etc.Se revisaron tambıen las funcionalidades provistas por los programas relacionados.

Para llevar a cabo el desarrollo de la aplicacion se escogio el paradigma agil, a partir delcual se realiza un trabajo incremental e iterativo, con testeo e integracion continua. Parafacilitar el proceso se emplearon herramientas que sirvieron de apoyo en cuanto al tracking,el control de versiones, el testeo, el debugging y la documentacion.

Si bien el desarrollo fue incremental, puede entenderse a traves de las etapas tradicionalesde : analisis, diseno e implementacion. En el caso del analisis este se llevo a cabo principal-mente a traves de los principales casos de uso. En cuanto el diseno se considero el paradigmade Programacion Orientado a Objetos (POO), ademas de la arquitectura Modelo-Vista-Controlador (MVC). Con relacion a la implementacion se opto por llevar a cabo la aplicacionen C++ bajo el sistema operativo GNU/Linux, con la modalidad de codigo abierto.

Durante el desarrollo se logro apreciar la ventaja de utilizar el paradigma OOP, ası comotambien el MVC, ya que esto permitio poseer un programa modular. Por otra parte el empleode codigo abierto facilito la utilizacion de varias de las funcionalidades que ya se encontrabanimplementadas,con bastante soporte y ayuda. Como resultado se obtuvo un programa quecumple con las funcionalidades basicas estipuladas en un principio y que servirıa de puntode partida para mejorar las ya existentes y agregar otras nuevas.

Page 3: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Quisiera agradecer todo el apoyoy carino brindados de parte de:

mi familia,mis profesores,

mis amigosy mis amores.

Page 4: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Indice

1. Introduccion 41.1. Conceptos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4. Contenido de la Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Revision Bibliografica 82.1. Sistemas de Referencia Terrestres . . . . . . . . . . . . . . . . . . . . . . . . 82.2. Proyecciones Geograficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3. Metodos de Grillado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4. Programas Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3. Metodologıa 153.1. Paradigma de Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2. Aseguramiento de la Calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3. Ambiente Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4. Desarrollo 184.1. Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2. Diseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2.1. Modelo Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2.2. Controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2.3. Interfaz Grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.3. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.3.1. Modelo de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.3.2. Controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.3.3. Interfaz Grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5. Evaluacion Aplicacion 375.1. Ejemplo de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2. Comparacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6. Discusion y Conclusiones 406.1. Logros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2. Mejoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

A. Figuras Ejemplo 44

3

Page 5: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

1. Introduccion

El Trabajo de Tıtulo que se presenta a continuacion consiste esencialmente en el desarrollode una aplicacion grafica que provea de las funcionalidades basicas para procesar y visualizardatos geofısicos de potencial.

1.1. Conceptos Basicos

La Exploracion Geofısica [29] es un area aplicada encargada del estudio de la subsuperficiey la busqueda de yacimientos de substancias utiles ( petroleo, aguas subterraneas, minerales,etc.) presentes en ella, por medio de observaciones realizadas en la superficie de la Tierra, atraves de metodos de diversa naturaleza:

Sısmicos

Gravimetricos

Magneticos

Electricos

Electromagneticos

entre los cuales los metodos magneticos y gravimetricos caen dentro de la categorıa deMetodos de Potencial.

Dentro de las etapas involucradas en un Estudio de Exploracion , siendo de especial interespara el presente trabajo las etapas segunda y tercera, podemos mencionar:

1. Recoleccion de Datos

2. Procesamiento

3. Representacion Visual

4. Analisis e Interpretacion

1. Recoleccion de Datos En esta etapa se efectuan las observaciones a traves de losmetodos senalados obteniendose un conjunto de datos dispersos y con ruido. Las medi-ciones suelen realizarse a lo largo de lıneas distribuidas en el espacio segun la resolucionelegida de manera de cubrir la zona de estudio.

2. Procesamiento Los datos recolectados en la etapa anterior son regularizados a travesde la aplicacion de filtros que tienden a suavizarlos y eliminar el ruido introducido en lasmediciones. Por otro lado, dependiendo de la naturaleza de los datos, se suele generaruna grilla uniforme a partir de los datos dispersos, de manera de facilitar calculosposteriores que se deseen realizar, asi como tambıen la representacion visual de losmismos.

4

Page 6: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

3. Representacion Visual Existen diversas maneras de representar los datos grafica-mente, unas de las formas mas utilizadas son a traves de:

Perfiles

Mapas y Proyecciones

Superficies 3D

Volumenes 3D

4. Analisis e Interpretacion A partir de las etapas anteriores se lleva a cabo el procesode analisis e interpretacion, que suele ser iterativo y conlleva el repetir alguno de lospasos anteriores hasta poder llegar a conclusiones satisfactorias.

1.2. Objetivos

Objetivo General Desarrollar una aplicacion, de apoyo a los metodos de potencial(magneticos y gravimetricos), con una interfaz grafica de usuario que permita la im-portacion, exportacion , procesamiento y visualizacion de datos de manera integrada,eficiente y facil de usar.

La aplicacion provee las funcionalidades basicas sirviendo de punto de partida parafuncionalidades mas elaboradas y especıficas.

Objetivos Especıficos La aplicacion desarrollada se descompone en las siguientesunidades, relacionadas con las principales funcionalidades que le corresponde imple-mentar:

• Importacion / Exportacion de Datos: encargada de importar y exportar losprincipales formatos de datos utilizados en geociencias.

• Planilla de Calculo: provee de una Planilla de Calculo con la cual editar yaplicar formulas a los datos, poniendo especial enfasis en el manejo de columnas.

• Visualizador Perfiles: herramienta grafica que permite el correlacionar dos colum-nas de datos y visualizaras en terminos de perfiles, facilitando su inspeccion yedicion.

• Grillado: esta componente provee de un metodo para hallar una funcion de in-terpolacion a partir de un set de datos dispersos georeferenciados, de manera degenerar una grilla uniforme equiespaciada.

• Mapas y Proyecciones: encargada de generar mapas a partir de una grillaregular.

• Visualizador Mapa: encargada de visualizar mapas de superficies en 3d a partirde grillas regulares.

5

Page 7: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Ademas cumple con los siguientes requisitos:

• Interfaz Grafica de Usuario (GUI): La GUI provee principalmente: de unainterfaz que integre equilibradamente las distintas funcionalidades requeridas, unarespuesta coherente e intuitiva ante las entradas de los usuarios y un mecanismoque previene el cometer errores.

• Portabilidad: en un principio la aplicacion esta enfocada para el sistema opera-tivo GNU/Linux, sin embargo, es deseable que posteriormente pueda ser portadatambien a Windows sin mayores dificultades.

1.3. Justificacion

A continuacion presentamos la justificacion del trabajo realizado en relacion a su: Utili-dad Practica y Complejidad.

Utilidad Practica La aplicacion desarrollada sirve de apoyo en el area de exploraciongeofısica, en relacion a los metodos de potencial (magneticos y gravimetricos), del De-partamento de Geofısica de la Universidad de Chile.

Actualmente existen programas comerciales propietarios que proveen las principalesfuncionalidades requeridas, dentro de los cuales podemos mencionar a: Oasis Mon-taj [8] y Surfer [15]. Por otro lado, dentro del ambito del software libre encontramostambıen algunos programas relacionados como: SAGA GIS [13] y Surfit [16].

A pesar de lo anterior las razones para desarrollar una aplicacion nueva son princi-palmente 2:

• Por una parte implementar un conjunto de funcionalidades esenciales que no seencuentran presentes en un solo programa.

• Establecer una aplicacion base sencilla de manera de tener un mejor control sobrela misma, donde se puedan ir agregando funcionalidades mas complejas en lamedida de lo necesario.

Complejidad La aplicacion realizada es suficientemente compleja e interesante co-mo para constituir el Trabajo de Tıtulo, pues involucra varios desafıos tecnicos con-cernientes al area de las Ciencias de la Computacion, en terminos de:

• Ingenierıa de Software: el poder llevar a cabo el proceso de desarrollo de unaaplicacion con multiples componentes de manera ordenada y sistematica.

• Diseno Orientado a Objetos: el realizar un diseno lo suficientemente modulary flexible, que permita un desarrollo incremental sin mayores dificultades.

6

Page 8: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

• Diseno e Implementacion de Algoritmos: la investigacion de las estructurasde datos y algoritmos mas adecuados para llevar el manejo de datos geofısicos,que suelen ser voluminosos y requieren un procesamiento eficiente.

• Desarrollo de Interfaz de Usuario: el desarrollo de una Interfaz de Usuariocon multiples componentes, que integre las distintas funcionalidades de maneracoherente y amigable para el usuario.

1.4. Contenido de la Memoria

La estructura del presente informe da cuenta del trabajo realizado tomando en consid-eracion la metodologıa estandar establecida. La disposicion de los distintos capıtulos que locomponen lleva implıcito un orden cronologico con respecto al trabajo desarrollado, orga-nizandose de la siguiente manera:

Introduccion: constituye el presente capıtulo, se introducen los conceptos basicos, losobjetivos, la justificacion y finalmente el contenido del resto de la memoria.

Revision Bibliografica: se revisan los elementos esenciales para poder llevar a cabola aplicacion, ademas de describir brevemente las programas relacionados.

Metodologıa: se detalla la metodologıa considerada para desarrollar la aplicacion.

Desarrollo: se presenta el desarrollo mismo de la aplicacion a partir de su analisis,diseno e implementacion.

Evaluacion Aplicacion: se presenta el flujo de un ejemplo de utilizacion tratando decubrir los principales casos de uso. Proporciona un breve comparacion con respecto alos programas relacionados.

Discusion y Conclusiones: se discuten los logros obtenidos contrastando los objetivosoriginales con el resultado del desarrollo de la aplicacion, planteandose tambıen lasposibles mejoras que se pueden efectuar, finalizando con las principales conclusiones detodo el trabajo realizado.

7

Page 9: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

2. Revision Bibliografica

A continuacion se revisan los principales conocimientos asociados a la aplicacion desar-rollada.

Sistemas de Referencia

Proyecciones

Metodos de Grillado

Para luego describir brevemente los programas relacionados y sus principales caracterısti-cas.

2.1. Sistemas de Referencia Terrestres

Un elemento basico pero esencial en el ambito de las Geociencias es el empleo de unSistema de Referencia Terrestre con el fin de determinar la posicion de un punto cercano a lasuperficie de la Tierra. Los Sistemas de Referencia Terrestres se caracterizan por que estanfijos a la Tierra siguiendo sus movimientos de rotacion y revolucion.

La siguiente informacion se basa principalmente en [24] y [23].

Tipos Dentro de los Sistemas de Referencia Terrestres podemos diferenciar esencial-mente 2 tipos:

• Geocentricos donde el origen se encuentra cerca del centro de la Tierra, consid-eran la curvatura de la misma; son de caracter mas global y precisos.

• Topocentricos donde el origen se encuentra en un punto cerca a la superficie dela Tierra, no consideran la curvatura de la misma; son de caracter mas local y suempleo se limita a la extension de un area donde el error de aproximacion no seasignificativo.

Por ser de un cararcter mas global y precisos los Sistemas de Referencia Geocentricosson los empleados en Geociencias.

Sistemas de Referencia Geocentricos

Los Sistemas de Referencia Geocentricos se basan en la actualidad esencialmente enla aproximacion que se realiza de la superficie de la Tierra a traves de un elipsoide derevolucion. La Geodesia es el area de la Geociencia que se encarga principalmente deeste asunto.

• Elipsoide de Referencia El Elipsoide de Referencia con que suele represen-tarse la Tierra se define a partir de su semieje mayor(o radio ecuatorial) y susemieje menor (o radio polar).Otros parametros como achatamiento y excentrici-dad pueden determinarse a partir de los 2 anteriores.

8

Page 10: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 1: Elipsoide Referencia

• Sistemas de Coordenadas

◦ Latitud,Longitud,Altura se basa en los planos del Ecuador y el PrimerMeridiano para definir con respecto a un punto:

� Latitud Geodesica : como el angulo formado desde el plano ecuatorialhasta la lınea normal al elipsoide referencial que intersecta al punto

� Longitud Geodesica : como el angulo formado entre el plano del PrimerMeridiando y el plano que pasa por el punto, siendo estos dos planosperpendiculares al plano ecuatorial

� Altura Geodesica : es la mınima distancia entre el punto y el elipsoidereferencial

◦ ECEF (Earth Centered - Earth Fixed ) X,Y,Z sistema de coordenadascartesiano donde el origen se encuentran en el centro de masa del Elipsoidede Referencia.

� Eje Z : paralelo al eje de rotacion de la Tierra, apuntando hacia el PoloNorte

� Eje X : definido por la interseccion del plano ecuatorial y el plano delprimer meridiano

� Eje Y : producto cruz entre Z y X

• Datum Geodesico Un Datum Geodesico consiste en un conjunto de puntos dereferencia que son utilizados para determinar los parametros de un Elipsoide deReferencia particular. A traves de los anos surgieron una serie de datums quemejor se acomodaban a un region en especial.

• Sistemas de Referencias Locales En Chile historicamente se han ocupado lossiguientes Datums que son de cararcter local, puesto que consideran un Elipsoidede Referencia que es tangencial a un punto dado. Cada uno es ocupado en la zonadonde mejor calza.

9

Page 11: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

◦ Psad-56 (Dato Sudamericano Provisorio - 1956 ) punto de tangencia se ecuen-tra en La Canoa, Venezuela

◦ Sad-69 (Dato Sudamericano - 1969 ) punto de tangencia se encuentra en Chua,Brazil.

• Sistemas de Referencias Globales Con el fin de establecer un Elipsoide deReferencia mas global, se definieron los siguientes sistemas, que se basan princi-palmente en hacer coincidir el origen del mismo con el centro de gravedad de laTierra.

◦ WGS84 ( World Geodetic System 1984 ) [18] desarrollado originalmente porel Departamento de Defensa de los Estados Unidos, es usado por el Sistemade Posicionamiento Global (GPS).

◦ ITRS ( International Terrestrial Reference System ) [5] es un estandar, estable-cido en 1991 por el IUGG (International Union of Geodesy and Geophysics )que define un Sistema de Referencia ideal, especificando las mejores practicaspara realizar un Sistema de Referencia en particular.

◦ SIRGAS2000 ( Sistema de Referencia Geocentrico para las Americas 2000 )[14] es una realizacion del ITRS con enfasis en el continente Americano. ElIGM (Instituto Geografico Militar) chileno sugiere su empleo como un manerade normalizar el Sistema de Referencia Nacional empleado.

• Transformaciones entre sistemas de referencias Para llevar a cabo la trans-formacion de un Sistema de Referencia a otro se suelen emplear esencialmente2 tipos de metodos relacionados con tratar de hacer coincidir los Elipsoides deReferencia.

◦ 3 parametros supone los ejes de los Elipsoides paralelos y tan solo trasladael centro, ademas de aplicar un escalamiento

◦ 7 parametros traslada el centro, rota los 3 ejes y aplica un escalamiento

2.2. Proyecciones Geograficas

La siguiente informacion se basa principalmente en [6] y [11].

Proyeccion

Una Proyeccion Geografica se puede definir como un metodo para representar la super-ficie de la Tierra en un plano. Todas las proyecciones geograficas distorsionan de algunau otra manera la superficie terrestre, por lo que existen distintos tipos de acuerdo a lautilidad que se le quiera dar.

Tipo Proyecciones Basicas Dependiendo del tipo de superficie que se escoge paraproyectar la superficie terrestre es que tenemos las siguientes proyecciones basicas cono-cidas:

10

Page 12: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

• Cilındrica donde la superfice de proyeccion es un cilindro

• Conica donde la superficie de proyeccion es un cono

• Azimutal donde la superficie de proyeccion es un plano

Figura 2: Tipo de Proyecciones Basicas

Orientacion De acuerdo a la orientacion de la superficie de proyeccion con respecto ala superficie de la Tierra tenemos los siguientes tipos:

• Normal o Polar donde el eje de simetrıa de la superficie coincide con el eje derotacion de la Tierra

• Transversal o Ecuatorial donde el eje de simetrıa de la superficie es perpendi-curlar con el eje de rotacion de la Tierra

• Oblicua o Inclinada cualquier angulo intermedio

Interseccion De acuerdo al tipo de interseccion tenemos que una proyeccion puede ser

• Tangente

• Secante

Sistema de Coordenadas UTM El Sistema UTM ( Universal Transverse Mercator )[17] es un sistema de coordenadas basado en un grilla de 60x20 regiones en donde cadaregion se identifica con una seccion de la superficie Terrestre y esta definida por unaProyeccion Transversal de Mercator secante en cada una. La Proyeccion Transversal deMercator es una proyeccion cilındrica con la misma orientacion que su nombre.

• Definiciones

◦ Huso UTM La superficie Terrestre se divide en 60 husos de 6 grados delongitud estando el primer huso delimitado entre las longitudes 180 y 174 W,centrado en el meridiano 177 W. Los husos se enumeran en orden ascendentehacia el este.

11

Page 13: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

◦ Zona UTM La superficie Terrestre se divide en 20 zonas de 8 grados delatitud,entre los paralelos 80 S y 84 N. Cada zona se designa desde la letraC hasta la X, excluyendo las letras I,O y N. La primera zona empieza en elparalelo 80S.

◦ Excepciones Existen excepciones en 2 areas relacionadas con Noruega: unaentre las zonas 31V y 32v, y la otra entre las zonas del 31X al 37X.

Figura 3: Sistema de Coordenadas UTM

2.3. Metodos de Grillado

Los Metodos de Grillado son esencialmente metodos de interpolacion aplicados a un con-junto de datos dispersos, cuyo dominio suele ser R2 .Usualmente la interpolacion se realizasobre una grilla uniforme equiespaciada, aunque en terminos mas generales puede llevarse acabo sobre una malla poligonal como en el caso de una triangulacion.

Interpolacion de Datos Dispersos El problema de interpolacion de datos dispersospuede definirse de la siguiente manera: Dado un conjunto de n puntos distribuidosirregularmente:

pi = (xi, yi) , i = 1, · · · , n

sobre R2, y n valores escalares fi asociados con cada punto satisfaciendo fi = f(xi, yi)para alguna funcion f(x, y) encontrar una funcion g ≈ f(x, y) tal que para cada i =1, · · · , n

g(xi, yi) = fi

12

Page 14: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Metodo de Distancia Inversa Ponderada [4] Este metodo fue ideado originalmentepor Shepard [34] y consiste esencialmente en definir la funcion g de interpolacion como

g(x, y) =

∑ni=1 wi(x, y)fi∑ni=1 wi(x, y)

tal que

wi(x, y) =1

d((x, y), (xi, yi))p

donde d es una metrica y p ≥ 1. Se define ademas un radio r en torno de cada punto(x, y) de manera que solo los puntos (xi, yi) tal que cumplen d((x, y), (xi, yi)) < rparticipan en la evaluacion de g(x, y).

2.4. Programas Relacionados

A continuacion pasamos a describir los distintos programas con interfaz grafica de usuariorelacionados con la aplicacion desarrollada.

Oasis Montaj: Es un programa comercial bastante completo para el procesamiento yvisualizacion de datos en el ambito de las geociencias, enfocado esencialmente en losmetodos de exploracion de potencial. Provee varias de las principales funcionalidadesen cuanto a:

• Importacion / Exportacion de los principales tipos de datos utilizados

• Manejo de grandes cantidades de datos de manera eficiente

• Procesamiento y Edicion de datos a traves de formulas y filtros ad-hoc

• Un conjunto estandar de metodos de grillado

• Herramientas para la generacion y visualizacion de mapas en 2D y 3D

• Visualizacion de datos volumetricos en 3D

• Enlace dinamico entre los datos y los graficos generados

• Lenguaje script para realizar las operaciones en batch mode

Posee ademas extensiones para areas especıficas dentro de las geociencias. Constituyo elprincipal referente para llevar a cabo la aplicacion.

Surfer: Es un programa comercial esencialmente enfocado en la generacion de mapasde superficie en 2D y 3D [15]. Para lo cual provee de las siguientes funcionalidades:

• Importacion / Exportacion de los principales de datos para generar mapas desuperficie

13

Page 15: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

• Un conjunto estandar de metodos de grillado

• Varias posibilidades para generar mapas de superficies en 3D, como por ejemplo:mapas de contorno, shaded relief , etc.

• Un ambiente de programacion para llevar a cabo las operaciones en batch mode

Este es un programa mas bien generico a diferencia del anterior.

SagaGIS: Es un programa open source [13] enfocado en el procesamiento y visual-izacion de datos geocientıficos con un especial enfasis en la integracion con las princi-pales funcionalidades de un GIS. Posee una API de manera de poder realizar extensionesa traves del acoplamiento de modulos. De hecho su estructura sigue una arquitecturamodular, donde destacan las siguientes funcionalidades:

• Importacion / Exportacion de tipos de datos estandar

• Manejo y Visualizacion de Datos siguiendo la logica de un GIS

• Manejo y Edicion de grillas

• Conjunto estandar de metodos de grillado

• Metodos de Geoestadıstica

• Generacion de mapas de superficie sencillos en 2D y 3D

En general la aplicacion posee varias funcionalidades, pero no desarrolladas de unamanera tan sofisticada como en el caso de Oasis Montaj ademas, adolece un poco deuna mejor integracion y dinamismo entre sus modulos; ası como la implementacion maseficiente en el manejo de datos.

Surfit: Es un programa open source [16] sencillo que provee la capacidad de cargardatos, grillarlos y generar un mapa de superficie de contornos en 3D a traves de unentorno de programacion provisto mediante el lenguaje Tcl.

14

Page 16: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

3. Metodologıa

Se consideraran los siguientes aspectos para llevar a cabo el desarrollo de la aplicacion:

Paradigma de Desarrollo

Aseguramiento de la Calidad

Ambiente Operacional

3.1. Paradigma de Desarrollo

Como metodologıa de desarrollo se eligio el paradigma agil [35], esencialmente inspiradoen Extreme Programing [19] , poniendo especial enfasis en un desarrollo iterativo e incremen-tal, a traves de pequenas entregas, con una activa participacion del cliente.

Se elegio tambien, desarrollar bajo el esquema de codigo abierto [26], con el fin de aprovecharlas funcionalidades que ya se encuentren implementadas, y a su vez, aportar a la comunidadcon las funcionalidades que provea la aplicacion una vez terminada, ası como, recibir feed-back de los posibles defectos que puediese tener y las posibles mejoras que pudiesen realizarse.

Teniendo en mente que el desarrollo fue esencialmente iterativo e incremental, mencionamosa continuacion las principales acciones que se llevaron a cabo en cada incremento:

Familiarizacion e Investigacion del tema asociado

Analisis de Casos de Uso a partir de:

• Entrevistas con el Cliente

• Investigacion Funcionalidades Programas Relacionados

Buscar librerıas open source que implementen las funcionalidades requeridas o quesirvan de apoyo

Diseno Orientado a Objetos Simple

Tests de Validacion

Refactorizacion e Integracion Continua

15

Page 17: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

3.2. Aseguramiento de la Calidad

Como medidas para el aseguramiento de la calidad se emplearon los siguientes sistemas:

Sistema de Planificacion y Tracking: un sistema que permite llevar a cabo laplanificacion del proyecto que se ajusta a la metodologıa de desarrollo agil, ademas deun sistema de tracking que provee el estado de avance del proyecto

Control de Versiones: un sistema de control de versiones para mantener el codigo yla documentacion asociada a la aplicacion debidamente respaldados y con la capacidadde poder administrar convenientemente las distintas versiones de la aplicacion

Debugging y Profiling: el empleo de herramientas de debugging, donde se puedenhacer verificaciones de el debido uso de la memoria dinamica, ası como tambien lautilizacion de herramientas de profiling sobretodo para las funcionalidades que requierende eficiencia

Testeo Automatizado: el empleo de un framework de testeo automatizado que facilitala elaboracion de pruebas tanto de validacion, como de integracion

Documentacion del Codigo: la utilizacion de una herramienta de generacion de doc-umentacion automatica a partir del codigo, para explicar las principales caracterısticasde las funcionalidades implementadas

Build System: un sistema que facilita la configuracion, construccion y empaque-tamiento de la aplicacion a partir del codigo fuente y las librerıas asociadas

3.3. Ambiente Operacional

Sistema Operativo La aplicacion se llevo a cabo mediante el Sistema OperativoGNU/Linux debido principalmente a que posee un ambiente mucho mas natural y ricoen aplicaciones de apoyo para el desarrollo.

Se empleo en particular la distribucion Ubuntu por poseer esencialmente toda la cali-dad y prestigio tecnico de la distribucion Debian, con la ventaja adicional de facilitarla configuracion de las principales componentes tanto en hardware como en software.

Lenguaje de Programacion El lenguaje de programacion elegido para llevar a cabola aplicacion fue C++ [32] debido a las siguientes razones:

• Eficiencia en terminos del tiempo de ejecucion y el manejo de memoria

• Soporte del paradigma de Programacion Orientada a Objetos

• Existencia de gran cantidad de librerıas cientıficas

Librerıa GUI: Se empleo la librerıa GUI Qt4 [20] debido a:

16

Page 18: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

• Su grado de madurez y prestigio

• Es portable tanto a GNU/Linux, Windows y MacOS

• Posee un buen diseno orientado a objetos

• Posee amplio soporte en documentacion y software (qmake, designer, assistant )

• Existe una comunidad activa de usuarios y desarrolladores

Herramientas

• Planificacion y Sistema de Tracking: Trac

• Control de Versiones: Subversion

• Compilador: g++

• Framework Testeo: CppUnit

• Debugger: gdb

• Chequeo de Memoria y Profiling: Valgrind

• Documentacion: Doxygen

• Build System: GNU Autotools

17

Page 19: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

4. Desarrollo

A continuacion presentamos el desarrollo de la aplicacion a partir de analisis, diseno eimplementacion de sus principales componentes.

El analisis del programa se llevo a cabo esencialmente a traves de la especificacion de losdistintos casos de uso involucrados a partir de las funcionalidades encontradas en los pro-gramas relacionadas y las entrevistas con el cliente.

Para elaborar el diseno se empleo esencialmente el paradigma de Programacion Ori-entada a Objetos tomando en cuenta la utilizacion de Patrones de Diseno [25] para laelaboracion de los distintas clases y las interacciones entre ellas. A un nivel macro se consid-ero la arquitectura de software Modelo-Vista-Controladores (MVC) [22] agrupando lascomponentes en las siguientes categorıas asociadas:

Modelo de Datos

Controladores

Interfaz Grafica

El empleo de los paradigmas anteriormente citados permitio una separacion conceptualclara entre los distintos tipos de componentes, haciendo mas independiente su elaboracion,facilitando de esta manera el desarrollo incremental de la aplicacion y la refactorizacion delos mismos cuando fuese necesario.

Para llevar a cabo la implementacion, se mapeo cada una de las clases del diseno acodigo en C++, respetando la arquitectura de software MVC. Por otro lado, se ocuparonvarias librerıas Open Source que proveıan de las funcionalidades que se necesitaban, lo cualpermitio acelerar el proceso y beneficiarse de la estabilidad que confieren librerıas maduras.

18

Page 20: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

4.1. Analisis

El analisis se llevo a cabo, como se mencionaba, principalmente a partir de la definicionde los distintos casos de uso involucrados. Estos pueden agruparse esencialmente de acuerdoa los elementos sobre los cuales tienen injerencia:

Proyecto

Planilla de Calculo

Grilla

Mapa

Pasemos a detallar cada uno de los casos de uso.

Proyecto

• Crear Proyecto

1. El usuario proporciona un nombre con el cual crear un proyecto nuevo

2. El sistema verifica que el nombre no exista previamente

a) Si existe, entrega un mensaje solicitando ingresar un nombre nuevo

b) Si no existe, crea un proyecto con el nombre solicitado permitiendo alusuario empezar a trabajar dentro de el

• Eliminar Proyecto

1. El usuario solicita eliminar un proyecto seleccionando el nombre de una lista

2. El sistema confirma si efectivamente se quiere eliminar el proyecto y todos suselementos asociados

3. Si el usuario confirma se lleva a cabo el proceso, de lo contrario se cancela

• Abrir Proyecto

1. El usuario solicita abrir un proyecto de los ya existentes seleccionando elnombre de una lista

2. El sistema cierra cualquier proyecto abierto previamente, cargando el proyectoseleccionado, desplegando toda la informacion asociada a este

Planilla de Calculo

• Agregar Planilla

1. El usuario escoge un archivo de datos a partir del cual generar una planilla,asociandole un nombre a la misma

2. El sistema verifica que el nombre sea distinto a las planillas ya existentes enel proyecto en curso, ası como la referencia al archivo no sea nula

19

Page 21: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

a) Si es que el nombre ya existe o la referencia al archivo es nula, el sistemaentrega un mensaje solicitando realizar la rectificacion correspondiente

b) Si el proceso de generacion es exitoso, el sistema cierra cualquier planillaabierta previamente y muestra como planilla actual la generada

• Eliminar Planilla

1. El usuario elige que planilla eliminar del proyecto

2. El sistema pide confirmacion para realizar la accion

3. Si el usuario confirma se lleva a cabo la accion, en caso contrario se cancela

• Abrir Planilla

1. El usuario elige abrir una planilla de las existentes en el proyecto

2. El sistema verifica si es que la planilla ya se encuentra abierta

a) Si es ası no se hace nada

b) De lo contrario se cierra la planilla que pueda haber estado desplegadapreviamente, y se abre como planilla actual la elegida mostrando toda lainformacion relacionada

• Canal

◦ Insertar Canal

1. El usuario proporciona una posicion donde insertar un canal en un planilla,en conjunto con el nombre asociado a este

2. El sistema verifica que el nombre no exista previamente

3. Si ya existe muestra un mensaje para rectificar el error, de lo contrarioinserta efectivamente el nuevo canal

◦ Eliminar Canal

1. El usuario selecciona el canal que desea eliminar

2. El sistema pide al usuario confirmar la operacion

3. Si el usuario confirma se lleva a cabo el proceso, de lo contrario se cancela

◦ Proteger/Desproteger Canal

1. El usuario selecciona el canal que desea proteger/desproteger

2. El sistema cambia el canal de un estado de desprotegido a protegido, segunsea el caso, tal que cuando un canal esta protegido se deshabilita la opcionde eliminarlo

◦ Editar Formula

1. El usuario selecciona el canal al cual editar la formula asociada

2. El sistema verifica si la formula es nula

a) Si es nula, conserva los datos del canal

b) Si no es nula, calcula la formula ingresada y actualiza los valores de losdemas canales dependientes en forma recursiva

20

Page 22: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

• Lınea

◦ Agregar Lınea

1. El usuario elige un nombre para agregar una lınea nueva, ası como unarchivo donde estan presentes los datos de la misma

2. El sistema verifica que el nombre de la lınea no se repita, que la referenciaal archivo no sea nula y que las dimensiones de los datos coincidan conlos de la planilla

� Si existe cualquier error el sistema muestra un mensaje para rectificarlo

� Si la operacion se realiza sin problemas, se agrega la lınea a la planillay se actualiza la informacion relacionada

◦ Eliminar Lınea

1. El usuario selecciona la lınea a eliminar

2. El sistema pide confirmacion para realizar la operacion

3. Si el usuario confirma la operacion se lleva a cabo, de lo contrario secancela

◦ Seleccionar Lınea

1. El usuario selecciona una de las lıneas de un lista

2. El sistema establece la lınea seleccionada como la lınea actual y actualizatoda la informacion relacionada con ella que es mostrada al usuario

Visualizador Perfiles

• Mostrar Perfil

1. El usuario selecciona el canal al cual se desea mostrar el perfil

2. El sistema despliega la informacion del perfil

• Ocultar Perfil

1. El usuario selecciona el canal al cual se desea ocultar el perfil mostrado pre-viamente

2. El sistema repliega la informacion del perfil

• Seleccionar Perfil

1. El usuario selecciona uno de los perfiles que se muestran

2. El sistema muestra la informacion completa del perfil seleccionado

• Seleccionar Panel Perfiles

1. El usuario selecciona uno de los Paneles del Visualizador de Perfiles

2. El sistema enfoca el Panel seleccionado y actualiza la informacion relacionada

• Zoom in Perfiles

1. El usuario selecciona un punto en el Panel en torno al cual realizar un zoomin

21

Page 23: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

2. El sistema realiza el zoom in en torno al punto y actualiza la informacionrelacionada

• Zoom out Perfiles

1. El usuario selecciona un punto en el Panel en torno al cual realizar un zoomout

2. El sistema realiza el zoom out en torno al punto y actualiza la informacionrelacionada

• Extension Completa

1. El usuario elige mostrar los perfiles en su extension completa

2. El sistema fija tanto la extension horizontal, como vertical en su valor maximoy actualiza la informacion relacionada

• Desplazar Extension Horizontal

1. El usuario elige desplazar la extension horizontal del visualizador de perfiles

2. El sistema cambia la extension horizontal y actualiza toda la informacionrelacionada

Grilla

• Generar Grilla

1. El usuario proporciona los datos para generar una grilla

2. El sistema verifica la correctitud de los datos

◦ Si existe algun error el sistema muestra un mensaje para rectificarlo

◦ Si no existe ningun error la operacion se lleva a cabo, generandose unagrilla que se agrega a las existentes en el proyecto

• Eliminar Grilla

1. El usuario selecciona una grilla para eliminarla del proyecto

2. El sistema pide confirmacion para llevar a cabo la operacion

3. Si el usuario confirma la operacion se realiza, de lo contrario se cancela

Mapa

• Generar Mapa

1. El usuario elige una grilla y una proyeccion a partir de la cual generar unmapa

2. El sistema genera el mapa, lo agrega al proyecto y lo muestra, ocultando elque estuviera abierto

• Eliminar Mapa

1. El usuario selecciona un mapa para eliminarlo del proyecto

22

Page 24: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

2. El sistema pide confirmacion para llevar a cabo la operacion

3. Si el usuario confirma la operacion se realiza, de lo contrario se cancela

• Mostrar Mapa

1. El usuario selecciona un mapa para visualizarlo

2. El sistema muestra el mapa correspondiente, si habıa un mapa abierto conanterioridad lo cierra

• Zoom in Mapa

1. El usuario elige realizar un zoom in en una seccion del mapa

2. El sistema actualiza el mapa para dar cuenta del zoom in

• Zoom out Mapa

1. El usuario elige realizar un zoom out en una seccion del mapa

2. El sistema actualiza el mapa para dar cuenta del zoom out

• Rotar Mapa

1. El usuario elige realizar una rotacion arbitraria sobre el mapa

2. El sistema actualiza el mapa para dar cuenta de la rotacion

23

Page 25: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

4.2. Diseno

4.2.1. Modelo Datos

Al desarrollar el Modelo de Datos se tomo en cuenta la doble naturaleza de las entidadescon que se trabajaban: por una parte los objetos manipulados en memoria principal, y porotra, los que requerıan ser almacenados en memoria externa.

En el primer caso generalmente se implementaron las distintas clases asociadas a los dis-tintos tipos de objetos de forma convencional. En el segundo, por un lado se implemento unabase de datos con la mayorıa de los elementos a almacenarse, con sus propiedades y respec-tivas relaciones; y por otro, para casos particulares, se implementaron estructuras ad hoc enmemoria externa por razones de eficiencia y flexibilidad.

Figura 4: Vista General Modelo de Datos

A continuacion se describen los principales objetos, con sus respectivos componentes yrelaciones.

Proyecto: agrupa y administra los principales objetos con los que se trabaja: Planillasde Calculo, Grillas y Mapas.

Planilla de Calculo: almacena los datos y los organiza de manera de poder editarlos ydefinir formulas a partir de ellos. Para entender mejor esta estructura pasemos a revisarlos siguientes elementos:

• Formato Archivo Datos de Entrada: el archivo de datos de entrada posee unformato simple y viene relacionado con la manera que se realizan las mediciones.En primer lugar vienen los nombres de los diferentes Campos, entre estos lascoordenadas geograficas. Le suceden el conjunto de Lıneas de datos medidos.Cada Lınea esta compuesta por un conjunto de datos ordenados por columnassegun el orden en que se definieron los Campos.

• Sistema de Referencia: asociado a un conjunto de datos georeferenciados sedefine un Sistema de Referencia que esta compuesto por un Sistema de Co-ordenadas y un Elipsoide con que se aproxima al globo terraqueo.

• Estructura Planilla: tomando en consideracion el formato de los datos de en-trada, una Planilla de Calculo se compone de la siguiente manera:

24

Page 26: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 5: Formato Archivo Datos de Entrada

Figura 6: Planilla de Calculo

◦ Canal: cada Planilla posee un conjunto de Canales donde cada uno de estosesta asociado a un Campo del set de datos originales. Cada Canal posee unnombre que lo identifica, una Formula que lo define ( eventualmente vacıa ).Dependiendo de si posee una Formula valida, posee tambien el conjunto deCanales dependientes y de los cuales depende, de manera de poder actualizarlos valores asociados cuando sea necesario.

◦ Lınea: esta compuesta por un conjunto de Columnas, cada una asociada aun Canal.

• MultiTabla: esta estructura tiene como mision almacenar los valores de la Planil-la en memoria secundaria. Se eligio un diseno sencillo que permitiera realizar demanera eficiente operaciones relacionadas con las columnas.

Una MultiTabla esta compuesta por una conjunto de Tablas que a su vez poseeun conjunto de Columnas. Todas las Tablas poseen el mismo numero de Colum-nas. Una MultiTabla esta asociada a una Planilla, a su vez, cada Tabla loesta con respecto a cada una de las Lıneas, y finalmente, cada Columna lo estaa cada uno de los Canales.

Grilla: esta estructura se define en una Extension que encierra una regıon rectangularen 2D. Esta Extension se subdivide en un numero de puntos distanciados de formaregular mediante un incremento vertical y horizontal determinados. Cada punto tieneasociado un valor escalar.

25

Page 27: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

La Grilla es generada a partir de los datos provenientes de una Planilla, por lo que asu vez hereda el Sistema de Referencia que esta posee.

Mapa: esta definido a partir de los datos de una Grilla ademas de una determinadaProyeccion en la que se grafıca.

4.2.2. Controladores

A continuacion detallamos los distintos Controladores agrupados por los principalesobjetos que manipulan : Proyecto, Planilla, Grilla y Mapa.

Figura 7: Vista General Controladores

Controladores Proyecto: llevan mas que nada relacion con la administracion de losproyectos.

• Crear Proyecto: crea una nueva instancia de Proyecto persistiendola en la basede datos.

• Cargar Proyecto: carga un Proyecto de la base de datos, con todas las referen-cias de sus principales elementos: Planilla, Grilla y Mapa, de manera de cargaren memoria principal sus datos asociados una vez requeridos.

• Eliminar Proyecto: elimina un Proyecto de la base de datos, ası como todoslos elementos asociados a este, tanto en la base de datos, como en estructuras dememoria externa asociadas.

Controladores Planilla

• Planilla

◦ Agregar Planilla: agrega una Planilla nueva a un Proyecto, para lo cualhace uso del controlador Importar Datos. Establece la relacion de la Planil-la con el Proyecto en la base datos.

26

Page 28: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 8: Controladores Proyecto

� Importar Datos: dado el formato de archivo de entrada mencionado en laseccion de modelo de datos, crea una nueva instancia de la clase Planilla,utilizando el controlador Crear MultiTabla para crear y almacenar laestructura MultiTabla asociada en memoria externa.

◦ Eliminar Planilla: elimina una Planilla de un Proyecto tanto en la basede datos, ası como la estructura MultiTabla asociada en memoria externa.

◦ Cargar Planilla: carga una Planilla con la estructura de MultiTabla enmemoria externa asociada, reestableciendo todas las dependencias existentesentre los Canales a traves de las formulas validamente definidas.

• Linea

◦ Agregar Linea: agrega una Lınea nueva a una Planilla; esta asociado aAgregar Tabla.

◦ Eliminar Linea: elimina una Lınea de una Planilla; esta asociado a Elim-inar Tabla.

• Canal

◦ Inserta Canal: inserta un Canal nuevo a la Planilla, lo que a su vez modificala MultiTabla relacionada, insertantdo una Columna en todas las Tablasrelacionadas.

◦ Eliminar Canal: elimina un Canal en la Planilla.

◦ Proteger Canal: marca un Canal de una Planilla como protegido de man-era de que no puede ser modificado, ni eliminado.

◦ Editar Formula: permite definir los valores de un Canal a traves de unaformula donde los demas Canales pueden intervenir en la misma como vari-ables. Una vez que los valores de un Canal son actualizados se revisan lasdependencias existentes y se actualizan los que ası lo requieren siguiendo unalgoritmo recursivo.

• MultiTabla

27

Page 29: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 9: Controladores Planilla

◦ Crear MultiTabla: crea la una MultiTabla en memoria externa asociadaa una Planilla, es utilizado por el controlador Agregar Planilla.

◦ Eliminar MultiTabla: elimina una MultiTabla de memoria externa asoci-ada a una Planilla, es utilizado por el controlador Eliminar Planilla.

◦ Cargar MultiTabla: carga una MultiTabla desde memoria externa asoci-ada a una Planilla.

• Tabla

◦ Agregar Tabla: agrega una nueva Tabla a una MultiTabla.

◦ Eliminar Tabla: elimina una Tabla de una MultiTabla.

• Columna

◦ Insertar Columna: inserta una Columna a una Tabla asociado a un Canalde una Planilla, es utilizado por el controlador Insertar Canal.

◦ Eliminar Columna: elimina una Columna de una Tabla asociado a unCanal de una Planilla, es utilizado por el controlador Eliminar Canal.

◦ Actualizar Columna:elimina una Columna de una Tabla asociado a unCanal de una Planilla, es utilizado por el controlador Editar Formula.

Controladores Grilla

• Agregar Grilla: agrega una Grilla nueva a un Proyecto para lo cual hace usodel controlador Generar Grilla.

28

Page 30: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 10: Controladores Grilla

◦ Generar Grilla: genera una Grilla nueva a partir de una Planilla selec-cionando el Canal que se quiere interpolar con los consiguientes 2 Canalesasociados a las coordenadas geograficas. Almacena la Grilla en una estructurade memoria externa simple.

� GenerarGrillaVecinoCercano: hereda del controlador anterior aplican-do el metodo de la distancia inversa ponderada considerando los vecinosmas cercanos en torno a un radio.

• Eliminar Grilla: elimina la Grilla de un Proyecto tanto de la base de datos,como la estructura en memoria externa asociada

• Cargar Grilla: carga en memoria principal una Grilla almacenada en la estruc-tura de memoria externa asociada.

Controladores Mapa

• Agregar Mapa: agrega un Mapa nuevo, generado a traves de Generar Mapa,a un Proyecto en la base de datos.

◦ Generar Mapa: el Mapa se genera a partir de los datos presentes en laGrilla relacionada y las coordenadas se calculan segun una Proyeccion enparticular.

• Eliminar Mapa: elimina un Mapa de un Proyecto de la base de datos.

• Cargar Mapa: carga en memoria principal un Mapa segun la Grilla y Proyec-cion asociadas.

4.2.3. Interfaz Grafica

A continuacion mostramos el diseno de la Interfaz Grafica guiado esencialmente, ası co-mo en el caso de los Controladores , a traves de los principales objetos a representar ymanipular: Proyecto, Planilla , Grilla y Mapa.

Ventana Principal: contiene a los demas elementos y esta compuesta principalmentepor una Barra de Menus, un Explorador de Datos y una Area de Trabajo.

29

Page 31: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 11: Controladores Mapa

Figura 12: Vista General Interfaz

Barra de Menus: contiene los Menus de los principales objetos del modelo de datos:Proyecto, Planilla, Grilla y Mapa.

Explorador Datos: despliega los elementos del Proyecto actual: Planillas, Grillasy Mapas, permitiendo seleccionarlos.

Area Trabajo: es el area donde se encuentran las 2 ventanas principales: la de laPlanilla y la del Mapa

• Ventana Planilla: es la ventana que contiene a los elementos relacionados con laPlanilla y los datos que representan. Esta compuesto por 3 visualizadores: el dela Planilla, el de los Perfiles y el de las Coordenadas.

◦ Visualizador Planilla: despliega los datos de una Planilla, separados porLıneas permitiendo visualizarlos y realizar operaciones sobre los Canales.

◦ Visualizador Perfiles: permite visualizar distintos Perfiles de datos dondese grafican los datos de un Canal con respecto a otro.

◦ Visualizador Coordenadas: despliega las coordenadas geograficas de losdatos presentes en la Planilla desde una vista de planta, indicando los coorde-nadas de la Lınea que se visualiza actualmente en el Visualizador Planilla.

• Ventana Mapa: es la ventana que contiene al Visualizador de Mapa

30

Page 32: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 13: Interfaz Grafica

◦ Visualizador Mapa: despliega al Mapa como una superficie en 3D asoci-ada a una tabla de colores, permitiendo variar el angulo de observacion y ladistancia del observador al mismo.

Cabe destacar en mayor detalle las componentes de Visualizador Planilla y Visu-alizador Perfiles, por los elementos que las componen y por las acciones asociadas a lasmismas.

Visualizador Planilla

• Componentes

◦ Selector Lınea: permite seleccionar los datos de una Lınea en particular.

◦ Vista Tabla: muestra los datos de una Lınea ordenados por Columnasasociadas a sus respectivos Canales. Permite realizar operaciones sobre losCanales.

• Acciones

◦ Elegir Lınea: elige una Lınea en particular de la Planilla, mostrando losdatos actualizados en los visualizadores de: Planilla, Perfiles y Coorde-nadas.

◦ Insertar Canal: inserta un Canal nuevo en la Planilla en la posicion in-mediatamente posterior a la del Canal seleccionado.

◦ Eliminar Canal: elimina el Canal seleccionado no sin antes verificar la op-eracion.

31

Page 33: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

◦ Proteger Canal: protege el Canal seleccionado deshabilitando la posibilidadde eliminarlo.

◦ Editar Formula: permite editar la formula asociada al Canal seleccionado.

◦ Mostrar Perfil: muestra el Perfil del Canal seleccionado en el Visual-izador de Perfiles.

◦ Ocultar Perfil: oculta el Perfil del Canal seleccionado en el Visualizadorde Perfiles.

Figura 14: Visualizador Planilla

Visualizador Perfiles

• Componentes

◦ Eje Horizontal: determina los valores mınimo y maximo del Canal que hacede abscisa.

◦ Panel Visualizador Perfiles: el Visualizador Perfiles esta compuestopor multiples Paneles cada uno de los cuales comparte el Eje Horizontal, yesta compuesto a su vez por un Eje Vertical y una Area de Visualizaciondonde se grafican los Perfiles.

� Eje Vertical: determina los valores mınimo y maximo de la Extensionrelacionada con el Canal que hace de ordenada.

32

Page 34: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

� Area Visualizacion: area donde se grafican los distintos Perfiles.

◦ Scroll Bar: permite desplazar la Extension horizontal de forma dinamicahacia el extremo derecho o izquierdo.

Figura 15: Visualizador Perfiles

• Acciones

◦ Seleccionar Panel: selecciona uno de los Paneles de manera de mantenerel foco en el.

◦ Mostrar Perfil: al ejecutarse esta accion se agrega el Perfil, asociado alCanal respectivo, al Panel que se encuentre seleccionado.

◦ Ocultar Perfil: al ejecutarse esta accion se elimina el Perfil, asociado alCanal respectivo, del Panel que se encuentre seleccionado.

◦ Zoom In: se realiza un zoom in sobre un Area Visualizacion de maneraque se cambia la Extension horizontal para todos Paneles por igual, y lavertical, tan solo para el Panel asociado.

◦ Zoom Out: de manera analoga a la anterior pero con la operacion de zoomout.

◦ Extension Completa: al ejecutar esta accion se obtiene la Extension com-pleta tanto horizontal como vertical de todos los Perfiles de todos los Pan-eles.

◦ Desplazar Extension Horizontal: a traves del Scroll Bar se desplaza laExtension horizontal.

33

Page 35: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 16: Visualizador Mapa

34

Page 36: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

4.3. Implementacion

A continuacion pasamos a detallar los principales puntos que se tomaron en consideracionen la implementacion de la aplicacion, agrupados nuevamente de acuerdo al: Modelo deDatos , Controladores e Interfaz Grafica.

4.3.1. Modelo de Datos

El modelo de datos se almaceno mayoritariamente en una base de datos implementadamediante PostgreSQL [9] , de manera que los distintos objetos, sus propiedades yrelaciones se persistıan y administraban mediante este mecanismo.

Se utilizo una estrategia mixta en el caso de los objetos Planilla y Grilla: por unaparte se alamacenaron los ”metadatos”de estos en la base de datos y el resto medianteestructuras de memoria externa simples ad hoc.

En el caso de la Planilla, se implemento la estructura MultiTabla en memoria externade la siguiente manera: cada Tabla se asocio a un archivo en el cual las Columnas,todas del mismo largo, se escribıan secuencialmente. Para eliminar una Columna semarcaba como eliminada y el espacio en el archivo quedaba libre, de manera que alquerer agregar una Columna nueva esta ocupaba los lugares disponibles hasta esemomento, de lo contrario se agregaba al final.

En el caso de la Grilla, se utilizo el formato binario netCDF ( Network CommonData Form ), que es un formato estandar para compartir datos dispuestos a manera dearreglos multidimensionales como es el caso de una Grilla.

4.3.2. Controladores

Para el caso de la edicion de formulas en la Planilla se empleo la librerıa muParser [7]que provee el conjunto de operaciones y funciones matematicas estandares a traves delparser que implementa.

Para definir el Sistema de Referencia asociado a los datos georeferenciados de laPlanilla se empleo la librerıa GeoTrans ( Geographic Translator ) [2] , que define unconjunto de los Sistemas de Referencia comunmente ocupados y la capacidad depoder transformar las coordenadas desde uno hacia otro.

Para generar la Grilla se utilizo el programa nearneighbor de la coleccion de programasGMT ( Generic Mapping Tools ) [3], que implementa el metodo de grillado mediantela busqueda del vecino mas cercano ponderando por el inverso de la distancia. Parapoder leer la Grilla y cargarla en memoria principal se utilizo la librerıa GDAL (Geospatial Data Abstraction Library ) [1], que provee las funcionalidades de poderleer, transformar y escribir los principales formatos de archivos de datos geoespaciales.

35

Page 37: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Para generar el Mapa se empleo la librerıa PROJ.4 [10] para calcular las distintasproyecciones.

4.3.3. Interfaz Grafica

Para implementar la Interfaz Grafica se utilizo principalmente la librerıa Qt [20] parael manejo de ventanas y los distintos widgets.

Para el Visualizador de Perfiles se empleo la libreria OpenGL [38] , embebida enQt, para graficar los distintos Perfiles.

En el caso del Visualizador de Coordenadas se utilizo la librerıa Qwt ( Qt Widgetsfor Technicals Applications ) [12] para plotear las coordenadas en 2D.

Para graficar y controlar el Mapa se empleo la librerıa grafica VTK ( VisualizationToolKit ) [33] , que provee las funcionalidades para graficar elementos en 3D.

36

Page 38: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

5. Evaluacion Aplicacion

En esta seccion pretendemos evaluar la aplicacion desarrollada a traves de los siguienteslineamientos:

Ejemplo de Uso: Con el fin de mostrar que la aplicacion realiza los principales casosde uso estipulados en la etapa de desarrollo.

Comparacion: Con el objetivo de comparar la aplicacion con los programas existentesrelacionados.

5.1. Ejemplo de Uso

A continuacion presentamos un ejemplo de utilizacion de la aplicacion, siguiendo el flu-jo natural en que se procesan los datos, tomando en consideracion los principales casos de uso.

El conjunto de datos utilizado para este ejemplo corresponde a una medicion gravimetricarealizada en Afganistan en el ano 2006 principalmente a traves de la USGS (U.S. GeologicalSurvey) y se encuentra disponible para ser bajado libremente desde la pagina web de esteorganismo.

Se consideraron las mediciones realizadas a traves de lıneas dando como resultado unas 190con un numero promedio de 2100 mediciones por cada una.

Las operaciones realizadas en la aplicacion fueron las siguientes, donde las figuras asociadasa cada una vienen al final en un anexo:

1. Crear Proyecto: Para empezar a trabajar es necesario crear un proyecto nuevo (Figura 17 ) o cargar uno existente, de manera de mantener asociados los elementoscon los cuales se va a operar. Una vez que se ingresa un nombre unico para el proyectola interfaz queda operativa para funcionar ( Figura 18 ).

2. Agregar Planilla: La primera operacion de importancia es la de agregar una Planilla,la que se encuentra asociada al conjunto de datos que se desean procesar. Para esto seingresa un nombre que la identifique y se selecciona el archivo que contiene las medi-ciones ( Figura 19 ), siguiendo el formato estipulado en la subseccion de Diseno. Unavez agregada la Planilla los valores de la primera Lınea son mostradas en la Vista Tabla.Las coordenadas de todas las Lıneas son mostradas en el Visualizador de Coordenadasen azul, salvo la seleccionada que se encuentra resaltada en rojo ( Figura 20 ).

3. Insertar Canal: A continuacion, se amplia el area abarcada por la Vista Tabla ocul-tando tanto el Visualizador de Perfiles, como el de Coordenadas, con el fin de enfocarla atencion en la informacion tabular de los Canales. Se elige la posicion donde se deseainsertar un Canal nuevo, se accede al menu seleccionando la opcion de insertar canal

37

Page 39: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

( Figura 21 ). Aparece entonces un dialogo pidiendo ingresar el nombre que identi-ficara el elemento a insertar ( Figura 22 ). Una vez realizada con exito la operacioninserta un Canal con valores nulos por defecto ( Figura 23 ).

4. Editar Formula Canal: El Canal recien insertado es seleccionado y se accede almenu asociado de manera de editar la formula relacionada ( Figura 24 ). A lo queaparece un dialogo para llevar a cabo la operacion ( Figura 25 ). Una vez terminadala operacion se actualizan los cambios en la Vista Tabla ( Figura 26 ).

5. Mostrar Perfil: Con el fin de poder tener una representacion visual de la tendencia delos datos de cada Canal, se elige mostrar el Perfil del mismo relacionado con los datosde la Lınea que se encuentra seleccionada. Para esto se accede al menu del Canal yse selecciona la operacion indicada ( Figura 27 ). El Perfil es entonces graficado en elPanel del Visualizador de Perfiles que se encuentra enfocado ( Figura 28 ) asignandoleun color y mostrando las coordenadas extremas entre las cuales se encuentra definido.Se agregan mas Perfiles para poder correlacionar visualmente los resultados ( Figura29 ).

6. Seleccionar Lınea Planilla: Al seleccionar las distintas Lıneas que posee la Planillaes posible ir visualizando los datos de cada una de manera que tanto: la Vista Tabla,el Visualizador de Perfiles y el Visualizador de Coordenadas se actualizan de acuerdoal cambio ( Figura 30 ).

7. Zoom in Perfiles: Con el fin de visualizar en mayor detalle los perfiles, de maneraanaloga cuando se inserto un Canal, se amplia el area del Visualizador de Perfiles,ocultandose la Vista Tabla y el Visualizador de Coordenadas. Se cambia el modo deoperacion a la de Zoom in y se selecciona un punto en alguno de los Paneles en dondese quiere llevar a cabo el acercamiento, actualizandose la informacion de acuerdo a estaoperacion ( Figura 31 ).

8. Desplazar Extension Horizontal Perfiles: Una vez que se ha llevado a cabo uncambio en la Extension Horizontal del Visualizador de Perfiles, es posible desplazarlaa partir del scrollbar que se encuentra en la parte inferior ( Figura 32 ).

9. Extension Completa Perfiles: Si se desea volver a la Extension original se seleccionaesta opcion, cambiandose todas las extensiones de los Paneles ( Figura 33 ).

10. Zoom out Perfiles: Ası como existe la posibilidad de llevar a cabo un acercamien-to o zoom in, tambien esta la posibilidad de realizar un alejamiento de manera depoder interactuar mas dinamicamente, en conjuto tambien con el desplazamiento de laextension horizontal ( Figura 34 ).

11. Generar Grilla: A continuacion generamos una grilla a partir del metodo del inversode la distancia ponderada, considerando un radio de busqueda. Para esto ingresamos losparametros requeridos: el nombre para designar al elemeto creado, la planilla de donde

38

Page 40: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

sacar los datos, los Canales que representan las coordenadas geograficas, el Canal ainterpolar en la grilla, el espaciamiento horizontal y vertical, y el radio de busqueda (Figura 35 ).

12. Generar Mapa: Una vez que se tiene una grilla es posible generar un mapa asociadoa esta, para lo cual se elige ademas el tipo de proyeccion que se desea ( Figura 36 ).Para el caso de este ejemplo se generaron dos grillas de distinta resolucion lo cual sepuede observar claramente en los mapas generados ( Figuras 37, 38 ).

13. Zoom in/out Mapa: Al visualizar el Mapa existe la posibilidad de realizar la op-eracion de zoom in/out en 3d ( Figura 39 ), gracias principalmente al entorno devisualizacion VTK en donde se plotea.

14. Rotar Mapa: Analogamente al caso anterior, existe la posibilidad de rotar la superficiedel mapa en 3d ( Figura 40 ).

5.2. Comparacion

Considerando las caracterısticas del software y las funcionalidades que provee podemosrealizar una breve comparacion con los programas relacionados.

En comparacion con el programa Oasis Montaj, claramente el programa desarrolladoposee muchas menos funciones que el primero. Sin embargo proporciona a un nivelbasico las principales funcionalidades requeridas de manera que podrıa eventualmenteagregarse otras mas o mejorar las presentes, sirviendo de partida para aplicaciones masespecıficas. El haber sido desarrollado bajo la modalidad de codigo abierto facilita estaopcion.

En cuanto al programa Surfer, si bien provee de capacidad para generar mapas desuperficie en 2D y 3D de calidad, adolece en cuanto no esta especıficamente disenadopara el procesamiento y visualizacion de datos geofısicos de potencial y al ser de caracterpropietario no facilita la adicion de funcionalidades relacionadas al respecto.

En cuanto al programa SagaGIS, provee varias funcionalidades a traves de los modulos,pero adolece de una mejor integracion entre sus partes. Por otro lado al querer tenerun caracter mas general no se adecua tan bien al procesamiento y visualizacion dedatos geofısicos de potencial, como sı lo hace el programa Oasis Montaj. El programadesarrollado, al seguir la lınea basica del este ultimo, parece ser mas atractivo parapoder seguir anadiendo funciones mas especıficas al respecto.

Finalmente en cuanto al programa Surfit, es demasiado basico en cuanto a las funcionesque provee en comparacion con el resto de los programas.

39

Page 41: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

6. Discusion y Conclusiones

Habiendo detallado el desarrollo de la aplicacion a traves de su diseno e implementacion,podemos contrastarla con los objetivos trazados al inicio de la empresa y discutir por mediode: los Logros realizados y las Mejoras que se le pueden hacer, el resultado de la misma.

6.1. Logros

El principal logro es haber desarrollado una Aplicacion Grafica, de multiples compo-nentes, con las funcionalidades esenciales planteadas en un comienzo y que servira debase para mejorar las existentes y agregar otras nuevas.

En el sentido anterior las funcionalidades relacionadas con la Planilla de Calculo y elVisualizador de Perfiles fueron las mejor acabadas, y por otro lado, las relacionadascon la Grilla y Mapa, permitieron una primera aproximacion simple pero con potencialde mejorar el camino ya trazado.

Al utilizar los paradigmas de diseno OOP y MVC se logro obtener una clara sep-aracion en cuanto a las responsabilidades de cada grupo de clases, desarrollando undiseno significativo y coherente que facilito la implementacion iterativa e incrementaldel mismo.

Para la implementacion se emplearon multiples librerıas Open Source que aportaronsignificativamente al desarrollo del programa principalmente en 2 sentidos: primeroagilizando el proceso al no tener que re-implementar funcionalidades ya existentes, ypor otra parte, al entregar codigo suficientemente maduro y confiable.

6.2. Mejoras

En cuanto a las principales mejoras que se podrıan realizar citamos las siguientes:

En cuanto a la Planilla de Calculo, la estructura en memoria externa que almacena losdatos, la MultiTabla, podrıa implementarse de una manera mas eficiente y versatil,si por ejemplo se organizara toda la estructura en un solo archivo, utilizando comoestructura principal una variacion del arbol B-tree [27] para organizar las Columnasde las diversas Tablas, como arreglos dinamicos.

Por la parte de la Grilla se necesitarıa ampliar el numero de metodos para realizarla interpolacion a partir de los datos dispersos que mejor se acomoden a la naturalezade los mismos, como por ejemplo el metodo de mınima curvatura [37] a traves dela metodologıa mas reciente propuesta en [36]. Podrıa estudiarse tambien el utilizaruna estructura de malla no tan regular como la Grilla, que mejor se acomode a ladistribucion de los puntos en el espacio.

40

Page 42: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Finalmente, en el caso del Mapa serıa necesario desarrollar una representacion maselaborada del mismo que tuvieran mas elementos descriptivos como: la escala asociada,la extension, la orientacion con respecto a los puntos cardinales, etc. [21, 28] ; ademasdebiese proveer mejor control sobre las operaciones de zoom in, zoom out y panning.

Para una interaccion mas fluida y eficiente podrıa emplearse una estructura de datosque permitiera la visualizacion con multiples niveles de resolucion, a ese respecto podrıautilizarse un RQT (Restricted Quad-Tree ) [30] o un QuadTIN [31] con esos fines.

6.3. Conclusiones

A continuacion presentamos las conclusiones a las que se llegan a partir del trabajorealizado.

La principal conclusion es que se logro desarrollar una Aplicacion Grafica con las fun-cionalidades esenciales planteadas en un comienzo, que servirıa de base para mejorarlas existentes y agregar otras nuevas.

Los paradigmas OOP y MVC confirieron coherencia y claridad logica al diseno de lasdistintas componentes de la aplicacion, facilitando el desarrollo iterativo e incrementalde la misma.

El empleo de librerıas Open Source, agilizaron el proceso de implementacion al proveerde varias de las funcionalidades requeridas, ademas de suministrar codigo debidamenteprobado y maduro, y una comunidad abierta y solidaria a brindar soporte y ayuda.

Finalmente es importante resaltar el aprendizaje adquirido en el proceso completo dedesarrollo de la aplicacion. Al consistir en un programa con interfaz grafica, que proveecomponentes de: persistencia, procesamiento y visualizacion de datos, constituye un sis-tema general que servirıa de modelo para desarrollar aplicaciones futuras relacionadas.

41

Page 43: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Referencias

[1] GDAL: Geospatial Data Abstraction Library. http://www.gdal.org.

[2] Geotrans - geographic translator. http://earth-info.nga.mil/GandG/geotrans.

[3] Gmt - generic mapping tools. http://gmt.soest.hawaii.edu.

[4] Inverse distance weighting. http://en.wikipedia.org/wiki/Inverse distance weighting.

[5] Itrs - international terrestrial reference system. http://www.iers.org.

[6] Map projection. http://en.wikipedia.org/wiki/Map projection.

[7] muparser - a fast math parser library. http://muparser.sourceforge.net.

[8] Oasis montaj: Processing and mapping software. http://www.geosoft.com.

[9] Postgresql: The world’s most advanced open source database.http://www.postgresql.org.

[10] Proj.4 - cartographic projections library. http://trac.osgeo.org/proj.

[11] Proyeccion geografica. http://es.wikipedia.org/wiki/Proyeccion geografica.

[12] Qwt: Qt widgets for technicals applications.

[13] Saga gis: A system for automated geoscientific analyses. http://www.saga-gis.org.

[14] Sirgas - sistema de referencia geocentrico para las americas. http://www.sirgas.org.

[15] Surfer: Contouring, gridding and mapping software.http://www.goldensoftware.com/products/surfer/surfer.shtml.

[16] Surfit: open source gridding and contouring software. http://surfit.sourceforge.net.

[17] Utm. http://en.wikipedia.org/wiki/Universal Transverse Mercator coordinate system.

[18] Wgs84 - world geodetic system 1984. http://earth-info.nga.mil/GandG/wgs84/index.html.

[19] K. Beck. Extreme Programming explained: embrace change. Addison-Wesley, 2000.

[20] J. Blanchette and M. Summerfield. C++ GUI Programming with Qt4. Pretince Hall,2006.

[21] C. A. Brewer. Designing Better Maps - A Guide for GIS Users. 2005.

[22] S. Burbeck. Applications programming in smalltalk - 80(tm): How to use model-view-controller (mvc), 1987. http://st-www.cs.illinois.edu/users/smarch/st-docs/mvc.html.

42

Page 44: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

[23] P. H. Dana. Coordinate systems overview. http://www.colorado.edu/geography.

[24] D. E. W. E. J. Krakiwsky. Coordinate Systems in Geodesy. Department of Geodesy andGeomatics Engineering, University of New Brunswick, 1971.

[25] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusableobject-oriented software. Addison-Wesley Professional, 1995.

[26] R. Goldman and R. P. Gabriel. Innovation Happens Elsewhere: Open Source as BusinessStrategy. Morgan Kaufmann, 2005.

[27] S. Huddleston and K. Mehhorn. A new data structure for representing sorted lists. 1982.

[28] D. W. J. Krygier. Making Maps - A Visual Guide to Map Design for GIS. The GuildfordPress, 2005.

[29] P. Kearey, M. Brooks, and I. Hill. An Introduction to Geophysics Exploration. CambridgeUniversity Press, 2002.

[30] R. Pajarola. Large scale terrain visualization using the restricted quadtree triangulation.1999.

[31] M. A. Renato Pajaroja and R. Lario. Quadtin: Quadtree based triangulated irregularnetworks. 2002.

[32] G. Satir and D. Brown. C++: The Core Language. O’Reilly and Associates, 1995.

[33] W. Schroeder, K. Martin, and B. Lorensen. The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics. Kitware,Inc., 2002.

[34] D. Shepard. A two-dimensional interpolation function for irregulary-spaced data. 1968.

[35] I. Sommerville. Software Engineering. Addison-Wesley, 8th edition, 2007.

[36] R. K. B. Stephen D. Billings and G.N. Newsam. Interpolation of geophysical data usingcontinuous global surfaces. Geophysics, 67(6), 2002.

[37] P. W. W.H.F. Smith. Gridding with continuous curvature splines with tension. Geo-physics, 55, 1990.

[38] M. Woo. OpenGL Programmind Guide Version 1.2. Addison-Wesley, 1999.

43

Page 45: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

A. Figuras Ejemplo

Figura 17: Crear Proyecto

Figura 18: Trabajando en Proyecto

44

Page 46: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 19: Dialogo Agregar Planilla

Figura 20: Planilla Agregada

45

Page 47: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 21: Insertar Canal

Figura 22: Dialogo Insertar Canal

Figura 23: Canal Insertado

46

Page 48: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 24: Editar Formula Canal

Figura 25: Dialogo Editar Formula

Figura 26: Formula Editada

47

Page 49: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 27: Mostrar Perfil

Figura 28: Perfil Mostrado

48

Page 50: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 29: Varios Perfiles

Figura 30: Lınea Seleccionada

49

Page 51: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 31: Zoom in Perfil

Figura 32: Desplazar Extension Horizontal

50

Page 52: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 33: Extension completa Perfil

51

Page 53: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 34: Zoom out Perfil

Figura 35: Generar Grilla

Figura 36: Generar Mapa

52

Page 54: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 37: Mostrar Mapa1

Figura 38: Mostrar Mapa2

53

Page 55: IMPLEMENTACION DE UNA APLICACI ON GR AFICA PARA EL

Figura 39: Zoom Mapa

Figura 40: Rotar Mapa

54