Você está na página 1de 20

8.

PROGRAMA PARA ANLISIS DE MAREA

8.1. EL SOFTWARE LIBRE Y LAS LICENCIAS COPILEFT

Al momento de implementar el programa para el anlisis de las seales de marea, se plantea la necesidad de que ste no est ligado a productos comerciales, debido a la dificultad que implica en estos casos, los costos de licenciamiento y las dificultades legales en los que se puede incurrir en su distribucin a personas interesadas en el producto.

En el mundo del sistema operativo UNIX es frecuente el acceso al cdigo fuente de las aplicaciones, pues tradicionalmente las instalaciones se hacen compilando ste en la mquina local, permitiendo que se adapte de acuerdo a las necesidades particulares del usuario. Esta forma de trabajo permite la reutilizacin del cdigo, creando as una sinergia en el desarrollo de aplicaciones.

Esta ventaja fue la que la Fundacin del Software Libre aprovech para hacer de los entornos UNIX su plataforma de trabajo. As, el acceso por cualquier persona a las aplicaciones de cdigo abierto se facilita. La Fundacin del Software Libre distribuye sus aplicaciones bajo la licencia General Public Licence (GPL), la cual garantiza que cualquier programa que se distribuya bajo los trminos de sta debe garantizar la redistribucin de su cdigo fuente, e impide que cualquier persona al recibir un programa, lo redistribuya creando cualquier limitacin adicional.

113

Aplicaciones de gran importancia son desarrolladas por grupos independientes de programadores, en algunos casos durante su tiempo libre y otros patrocinados por empresas. Algunas de las aplicaciones ms importantes son, por ejemplo, el sistema operativo Linux desarrollado en 1991 por Linus Tolvards, que en los ltimos 10 aos ha crecido de manera exponencial y que inicialmente se dio en el mbito acadmico como pasatiempo o reto personal de algunos estudiantes y docentes. Posteriormente entre los proveedores de servicios de Internet (ISP) se comenz a emplear, fortalecindose como servidor de Internet, en donde a muy bajo costo se implementan servidores de correo, web, proxy, y gran cantidad de servicios en este campo.

Hasta hace dos aos las aplicaciones para Linux eran creadas bsicamente por personas aficionadas o profesionales, que dedicaban parte de su tiempo a elaborar los programas que requeran para su uso personal, de tal forma que el crecimiento se fortaleci durante sus inicios en temas relacionados con el Internet y los servicios que lo acompaan, mientras que aplicaciones en otros campos como el entorno de escritorio, aplicaciones de oficina u otras para usuario final se dejaron de lado, siendo stos pobres o inexistentes.

Debido a su rpida evolucin, ya como servidor de Internet, Linux tena pocas cosas nuevas que ofrecer. Por ello, desde hace dos aos se comenz a cambiar el rumbo y los esfuerzos se orientaron hacia el mercado de los escritorios. Dos grupos de trabajo iniciaron esta labor, comenzando primero el grupo de KDE el cual se basa en la librera Qt, la que originalmente era de cdigo propietario; el otro grupo, que, basndose en las herramientas construidas para un programa de manipulacin de grficas denominado GIMP, desarrollaron la librera GTK y el entorno de escritorio Gnome. Debido a la restriccin inicial a la que se enfrentaba KDE, Gnome cobr fuerza rpidamente alcanzando las caractersticas ofrecidas por KDE. Estos entornos de escritorio son actualmente una buena presentacin para Linux, pudiendo ser considerados como suficientemente amigables para un usuario medio.

114

Como plataforma de desarrollo, Linux ofrece mediante el software libre una gran cantidad de lenguajes de programacin de todo tipo, por ejemplo:

Perl: Maneja cadenas de caracteres y se emplea principalmente en paginas web. En este trabajo, se emplea este lenguaje para convertir los datos al formato requerido por el programa Gnotide.

PHP: Como el lenguaje Perl se emplea para desarrollar pginas web, permite crear enlaces a bases de datos y construccin de imgenes bajo demanda.

Shell: Este lenguaje permite la realizacin de scripts que facilitan el trabajo en el sistema. Tcl/Tk: Es un interesante lenguaje interpretado, que permite hacer interfaces grficas a programas sin tener que recurrir a las dificultades que implica elaborarlas en C. Octave: Permite trabajar con la misma filosofa del MatLab manejando una sintaxis muy parecida. FORTRAN: Soporta bsicamente la versin 77 pero tambin otros dialectos incluido el 90. C/C++: En el sistema operativo Linux se encuentra de manera estndar e inseparable el compilador gnu-gcc, el cual compila cdigo en C/C++. Esto es fundamental pues, como se ha mencionado anteriormente, las aplicaciones en UNIX y por supuesto en Linux, generalmente se deben compilar directamente en el sistema de destino.

Como alternativas principales para el desarrollo del programa de anlisis de marea, se dispone de los lenguajes Fortran y C. El primero tiene muy buen soporte para la parte numrica, pero la informacin sobre creacin de interfaces o creacin de archivos grficos es escasa. El lenguaje C, en cambio, a pesar de su mayor complejidad, cuenta 115

con buen soporte tanto en la documentacin, como en las libreras disponibles para una muy amplia gama de actividades, tales como anlisis numrico, creacin de grficos 2D y 3D, redes, programacin en paralelo, e interfaces grficas. Adicionalmente bajo C estn desarrolladas la mayor parte de aplicaciones con licencia GPL (General Public Licence) y la documentacin est disponible en Internet de manera gratuita.

Debido al amplio soporte que tiene C en los entornos Linux/UNIX, se decidi emplearlo como lenguaje de desarrollo por encima de otros como Fortran, que como ya se mencion, en Linux cuenta con pocas herramientas para su trabajo y la documentacin es limitada; tampoco se incluyeron alternativas que cubren los lenguajes propietarios como el Matlab o IDL que requieren la instalacin de un interprete con un elevado costo.

A pesar de la gran facilidad de uso que puede tener IDL o MatLab, esta alternativa fue descartada debido a que es una tecnologa propietaria, lo cual implica estar sujetos a las condiciones que imponga el proveedor del programa. Al ser aplicaciones interpretadas no permiten la distribucin de ejecutables que sean independientes del intrprete, y por lo tanto, todo usuario del programa desarrollado estara obligado a poseer una licencia de IDL o Matlab, la cual incrementara los costos, por lo que la distribucin del programa se vera seriamente afectada.

8.2.

HERRAMIENTAS EMPLEADAS PARA LA ELABORACIN DEL PROGRAMA

Dentro de la propuesta de desarrollar un programa para el anlisis de mareas, mediante las herramientas que brinda el software libre (cobijadas por la licencia GPL), se ha requerido el empleo de las siguientes: Sistema operativo Linux con distribucin RedHat 7.0 http://www.redhat.com/ 116

Compilador gcc-2.96-69 http://www.gnu.org/

Depuradores de cdigo: lclint-2.4b-1, gdb-5.0-7, memprof 0.3.0, ddd-3.2.1-6 http://www.gnu.org/software/gdb/gdb.html http://www.gnu.org/software/ddd/

Entorno RAD (rapid aplication development): glade-0.5.9-3 Librera para generar archivos en formato png: gd-1.8.3-4 http://www.boutell.com/gd/ Librera para desarrollo de la GUI (interfaz grfica): GTK+, GDK. GUI Toolkit (licencia lgpl) http://www.gtk.org/

8.3. LIBRERAS CREADAS PARA EL PROGRAMA

Las funciones matemticas para la transformada de Fourier, de onditas, y la manipulacin de matrices (producto, inversa, solucin de sistemas de ecuaciones, etc.) fueron programadas, debido a que si bien, existen varias libreras disponibles para cada uno de estos procedimientos que podan ser empleadas de manera gratuita, requeran de un aprendizaje especfico. Adicionalmente, de tales libreras slo se empleaban unas pocas de sus funciones, por lo que no se justificaba el esfuerzo de integrarlas con el programa.

Las funciones creadas se han agrupado en libreras que permitirn su reutilizacin en otros proyectos que puedan requerirlo, tenindose las siguientes libreras importantes:

l_abrir_archivo: Contiene el cdigo necesario para leer los archivos en el formato de lectura preestablecido, el cual se explica ms adelante.

117

l_gd_graphics: Contiene el cdigo para crear y guardar las grficas en archivo con el formato png.

l_gtk_graphics: Contiene el cdigo para crear las grficas que sern desplegadas en pantalla.

l_astronomia: Ante la ausencia de libreras de funciones astronmicas o de buenos ejemplos de cdigo abierto, se programaron algunas funciones astronmicas basndose en los algoritmos propuestos por Jean Meeus [Meeus, 2000]. Esta librera contiene las funciones astronmicas necesarias para el clculo de las posiciones del Sol y la Luna, as como los elementos de las rbitas.

l_fft: Funciones relacionadas con la Transformada rpida de Fourier y de Onditas.

l_matrices: Funciones para la manipulacin de matrices y vectores, permitiendo las operaciones bsicas, as como la solucin de sistemas de ecuaciones y la factorizacin de Cholesky.

l_minimos: Funciones para realizar el ajuste de los datos a una funcin mediante la tcnica de los mnimos cuadrados.

l_preprocesamiento: Funciones para la verificacin de la calidad de los datos suministrados.

118

8.4. MANUAL DE USUARIO

8.4.1. Requerimientos Gnotide ha sido desarrollado en un computador personal Pentium III de 800 Mhz, con 384Mb de RAM, empleando la distribucin RedHat 7.0. Se requiere de 1Mb en disco duro para la instalacin del programa. El programa fue ejecutado tambin en un ordenador Pentium de 133 Mhz y 64 Mb de RAM. considerablemente menor. Pero con un rendimiento

Para su compilacin e instalacin, se requiere tener instalado el compilador gcc, las libreras estndar del sistema y, adicionalmente, la librera gd 1.8.3 o superior para que soporte formato PNG, y de la GTK 1.2.8. para la interfaz grfica.

8.4.2. Instalacin Los pasos requeridos para la instalacin del programa son los siguientes: 1. Descomprima el archivo suministrado (gnotide-0.0.1.tar.gz) mediante gunzip #>gunzip gnotide-0.0.1.tar.gz 2. Desempaquete el archivo resultante con tar. #>tar xvf gnotide-0.0.1.tar 3. Cambie al directorio resultante. #>cd gnotide-0.0.1 4. Ejecute el script de configurar el programa. #>./configure

119

5. Compile el programa. #>make 6. Instale el programa (se requiere tener permisos de administrador para ello) #>make install

8.4.3. Ejecucin del programa Para ejecutar el programa desde la lnea de comandos: #>gnotide Al inicializar el programa aparece la ventana principal como se muestra en la Figura 8.1:

FIGURA 8.1. Ventana Principal

En esta ventana principal se muestran todos los mdulos que conforman el programa Gnotide. El mdulo Abrir (abrir archivo) se debe ejecutar en primer lugar para obtener la informacin bsica contenida en el archivo de datos. Los dems mdulos se pueden ejecutar en la secuencia que el usuario desee, pues son independientes entre s.

120

Los mdulos implementados se listan a continuacin:

1. Abrir: Abrir archivo de datos. 2. Graficar: Graficar la serie de datos. 3. Fourier: Clculo de la Transformada rpida de Fourier.

4. Onditas: Clculo de la Transformada de Onditas. 5. Ajustar: Ajuste de un listado de constituyentes astronmicas a la serie de datos por el mtodo de los mnimos Cuadrados. 6. Predecir: Generacin de una serie de niveles de agua a partir de un grupo dado de armnicos astronmicos.

A continuacin se describen cada uno de los mdulos, indicando las posibilidades que cada uno brinda.

8.4.3.1. Abrir Al seleccionar el botn de abrir, se despliega un selector de archivos como el que se muestra en la Figura 8.2:

121

FIGURA 8.2. Seleccin de archivo

En este programa, como en cualquier otro, se puede seleccionar el archivo deseado que cumpla con el formato de datos del programa. El archivo de datos debe ser de tipo texto.

FORMATO DE DATOS El formato requerido en este programa debe tener un encabezado como el descrito a continuacin:

titulo: Ttulo del estudio. nombre: Nombre de quien hace el estudio. estacion: Nombre de la estacin. latitud: Latitud de la estacin. longitud: Longitud de la estacin. zona horaria: Zona horaria de la estacin. intervalo: Intervalo de medicin entre registro y registro (en minutos).

122

unidad: Unidad de medida utilizada en el registro de la altura de marea. Se debe ingresar como m para metro. datum: Plano de referencia, este es de carcter informativo as que puede ser omitido. datos: Esta palabra indica que se inician los registros de datos de medicin, siempre debe aparecer y no puede existir espacio entre esta palabra y los registros de niveles. aaaa mm dd hh mm xxxx: Registro, cada uno por lnea y separado por espacios con los datos: ao, mes, da, hora, minuto y altura de marea. fin: Indica que la serie termin, esta palabra no puede ser omitida.

Ejemplo de un archivo de registros:

titulo:Estudio de Mareas nombre:Departamento de estudios marinos estacion:Mareografo Principal latitud: 3.54 longitud: 77.99 zona horaria: -6 intervalo: 60 unidad:m datum:MLLW datos: 1999 1 1 0 0 2 1999 1 1 1 0 1.866 1999 1 1 2 0 1.5 1999 1 1 3 0 1 1999 1 1 4 0 .5 1999 1 1 5 0 .134 1999 1 1 6 0 0 1999 1 1 7 0 .134 1999 1 1 8 0 .5 fin:

El usuario debe tener especial cuidado con las etiquetas principales. Ellas son en minscula y deben estar sucedidos por dos puntos (:), sin ningn espacio intermedio, de no ser as se incurre en un error. El programa funciona a pesar de que el usuario no incluya el encabezado. En este caso, asume que la latitud, longitud y zona horaria 123

toman un valor de cero, y la unidad de medida igual a metro. Sin embargo, nunca deben omitirse las etiquetas intervalo, dato: y fin:.

Una vez se abre el archivo, se muestra un reporte (Figura 8.3) sobre la informacin contenida en l, el cual se da en dos apartes. En la primera parte del reporte se muestra la informacin bsica leda. Esta informacin es:

FIGURA 8.3 Reporte de la lectura de archivo

Ttulo: Estudio de mareas Nombre: Universidad Nacional de Colombia Nombre de la Estacin: Key West 8724580 Latitud: 24,550000 Longitud: -81,800000 Zona Horaria: -5 Intervalo de Medida: 60,0 minutos Altura Media: 0,000 m Nmero Datos: 285110

En la segunda parte del reporte se presenta la informacin relacionada con una evaluacin que se hace de la calidad de los datos. 124

El programa hace una verificacin sobre los datos, buscando en ellos tramos con informacin faltante o duplicada. La primera verificacin que hace el programa, es que dado un tiempo de muestreo y un perodo de registros, se cuente con suficientes datos para llenar el intervalo. A continuacin se verifica que el intervalo de tiempo entre dato y dato se cumpla evitando as datos duplicados o faltantes.

En caso de tener registros faltantes en la serie de mediciones, se debe ingresar el dato faltante con el valor 9999 para indicarle al programa que el usuario conoce la inexistencia. En este caso el programa reporta tramos de registros completos y de registros faltantes y hace un tratamiento diferente al momento de graficar.

Un ejemplo de los resultados entregados en esta parte del reporte se da a continuacin:

Calidad en los Datos: No cumple la cantidad de datos para llenar el intervalo. Este mensaje se causa porque el dato inicial o final estn asociados a fechas que no les corresponde, o porque existan datos repetidos o faltantes dentro del intervalo. Cumple la secuencia de tiempo. Presenta mltiples tramos con informacin y huecos en las alturas de mareas.

Tramo 1 tiene 8295 datos (345,62 das) Tramo 2 tiene 33 datos faltantes (1,38 das) Tramo 3 tiene 43832 datos (1826,33 das) Tramo 4 tiene 344 datos faltantes (14,33 das) Tramo 5 tiene 60262 datos (2510,92 das) Tramo 6 tiene 754 datos faltantes (31,42 das) Tramo 7 tiene 171590 datos (7149,58 das) Se puede distinguir entre frecuencias con delta f mayor a: 0,001263/h 125

Frecuencia Nyquist: 180,000000/h

8.4.3.2. Graficar

FIGURA 8.4 Grfica de la serie de datos

Para graficar la serie de datos se presiona el botn graficar de la ventana principal. Aparece una ventana como la que se muestra en la Figura 8.4, en donde el usuario puede elegir el intervalo de datos que desea observar mediante los calendarios que se encuentran en la parte inferior.

Para elegir el tramo a graficar el usuario cuenta con diferentes opciones, una de ellas es cambiar la fecha inicial y/o final hasta lo deseado (para que modificacin haga efecto debe presionar el botn de calendario). El botn interno graficar, permite la

actualizacin de la grfica una vez que se eligen los nuevos extremos de la serie.

En la grfica, los tramos faltantes se visualizan por un rectngulo verde, lo cual facilita la seleccin de tramos completos para realizar el anlisis posterior en el programa. Se debe tener en cuenta que, al seleccionar un nuevo tramo dentro de este mdulo ste queda fijo para su utilizacin por los otros mdulos del programa, excepto para el mdulo de prediccin. 126

El botn Guardar que aparece en esta ventana (ver Figura 8.4) permite exportar el grfico visualizado en la pantalla en formato PNG para ser incluido en otras aplicaciones, textos o reportes.

8.4.3.3. Fourier El mdulo de la Transformada rpida de Fourier se ejecuta desde la ventana principal, mediante el botn Fourier.

FIGURA 8.5. Clculo del espectro de la seal

Los resultados del clculo de la Transformada rpida de Fourier se presentan en tres sectores de la ventana, tal como se muestra en la Figura 8.5. En el primer sector se grafica la raz cuadrada de la suma de cuadrados de los coeficientes de Fourier (norma Euclidea) vs la frecuencia. Debido a que las amplitudes se acumulan preferiblemente en las frecuencias diurnas, semidiurnas y de largo perodo, muchos coeficientes asociados a constituyentes de agua somera no se pueden apreciar debidamente. Para mejorar la resolucin de la grfica anterior, se muestra en el segundo sector de la ventana una 127

grfica de los logaritmos de los cuadrados de los coeficientes de Fourier vs la frecuencia, permitiendo de esta manera una identificacin de grupos de frecuencias, que si bien no presentan la mayor importancia en el ajuste, si pueden representar fenmenos astronmicos o de otra ndole que permiten un anlisis ms completo de la informacin. En el sector inferior de la ventana se despliega un listado con los valores individuales de las frecuencias y, asociadas a ellas, la norma al cuadrado y el valor del estadstico F.

As como en la ventana Graficar en este caso, se puede seleccionar un rango para el calculo de la TRF mediante los calendarios presentes en esta ventana y exportar tanto los grficos como el listado de frecuencias en archivos independientes.

8.4.3.4. Onditas

FIGURA 8.6 Transformada de Onditas

Al ejecutar el mdulo Onditas de la ventana principal, se calcula la Transformada de Onditas para la serie de datos leda de un archivo o para el tramo seleccionado por el usuario. La Figura 8.6 muestra el resultado de ejecutar este mdulo.

128

8.4.3.5. Ajustar Al llamar este mdulo de la ventana principal, se despliega un ventana como la que se muestra en la Figura 8.8 el botn Seleccionar permite al usuario escoger las constituyentes astronmicas, a usar en el ajuste, de un listado de constituyentes que aparecen en una ventana auxiliar como se muestra en la Figura 8.7.

FIGURA 8.7 Seleccin de frecuencias

Esta ventana nombra cada frecuencia astronmica con un nmero ordinal, seguido de su nombre internacional. Si una frecuencia particular no tiene asignado un nombre especfico, entonces aqu se nombra como nnn. Finalmente, se tiene el nombre dado por Shureman [Shureman,1958] y en la ltima columna se encuentra la frecuencia en /h.

Al seleccionar las frecuencias, el programa verifica que se cumplan el criterio de Nyquist y el perodo sindico para el tramo seleccionado. resultados que se muestran en la ventana de la Figura 8.8. Una vez elegidas las frecuencias se procede a calcular, presionando el botn Procesar, y se producen los

129

FIGURA 8.8 Procesamiento de la seal por medio de los mnimos cuadrados

En el primer sector de la ventana, se despliega la serie empleada en el ajuste en color azul, y la serie ajustada en rojo. En el sector central, se tiene la grfica de los errores, punto a punto, en el ajuste (valor medido menos valor ajustado) y en el sector inferior se reportan los resultados del ajuste: en primer lugar los estadsticos que miden la bondad del mismo, y luego las amplitudes y fases asociadas a cada una de las frecuencias. Como en los mdulos anteriores el usuario es libre de definir el tamao de la serie de daros a utilizar en el ajuste de mnimos cuadrados mediante la utilizacin de las funciones calendario que aparecen en la parte inferior de la ventana.

8.4.3.6. Predecir En este mdulo se obtiene la prediccin de niveles de marea para una lista de frecuencias, amplitudes y rangos de tiempo dadas por el usuario. Si durante el proceso de anlisis de una serie de niveles de agua se ha ejecutado con anterioridad el mdulo de ajuste, el mdulo de prediccin presenta la serie ajustada para el mismo intervalo de tiempo que el de la serie utilizada en el ajuste (ver Figura 8.10).

130

Usando este mdulo de prediccin se pueden modificar, a juicio del usuario, las frecuencias, las amplitudes, los intervalos de tiempo y el nmero de armnicos usando el botn de Seleccionar dentro de esta ventana. Se despliega en este caso una ventana como la que se muestra en la Figura 8.9. Esta es la utilidad desde el punto vista ingenieril de este mdulo.

FIGURA 8.9 Seleccin de frecuencias para la prediccin

En la Figura 8.9 se ilustra la seleccin de frecuencias para la prediccin. A diferencia de la ventana implementada para el mdulo de ajuste, se incluye ahora la posibilidad de modificar manualmente la amplitud y la fase asociada a cada componente. As, el usuario puede modificar a su juicio los resultados obtenidos mediante la regresin o incluir nuevos componentes.

131

FIGURA 8.10. Ventana de prediccin

En la Figura 8.10, se muestra la ventana de prediccin, en la cual al igual que en el resto de mdulos, el usuario puede escoger las fechas para trabajar, salvo que en este caso no tiene las limitantes en cuanto al inicio o final de la serie de datos originales, para realizar la prediccin.

132

Você também pode gostar