Detección de marea terrestre utilizando una red de monitoreo
Transcripción
Detección de marea terrestre utilizando una red de monitoreo
Tesis de Ingenierı́a en Agrimensura Detección de marea terrestre utilizando una red de monitoreo satelital continuo - Una aplicación en la República Argentina Departamento de Agrimensura Alumno: Javier J. Clavijo Director: Ing. Enrique E. D’Onofrio Co-Director: Agrim. Fernando A. Oreiro Buenos Aires, 23 de febrero de 2014 Índice general 1. Introducción y objetivos 7 2. Metodologı́a 10 2.1. Zona de estudio y datos utilizados . . . . . . . . . . . . . . . . . . . . . . 10 2.2. Diagrama de bloques de la metodologı́a aplicada . . . . . . . . . . . . . . 13 2.3. Procesamiento de los datos provenientes del Sistema de Posicionamiento Global (GPS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.1. Posicionamiento preciso a partir de datos GPS . . . . . . . . . . . 15 2.3.2. Elección de la duración de las sesiones . . . . . . . . . . . . . . . 16 2.3.3. Procesamiento cientı́fico con el software GPS Analisys at Masachussets Institute of Technology. . . . . . . . . . . . . . . . . 17 2.3.4. Obtención de series de altura. . . . . . . . . . . . . . . . . . . . . 19 2.3.5. Influencia de las condiciones atmosféricas sobre el resultado. . . . 20 2.4. Filtrado de los datos procesados. . . . . . . . . . . . . . . . . . . . . . . 21 2.5. Interpretación teórica de la marea . . . . . . . . . . . . . . . . . . . . . . 23 2.6. Análisis de series de altura . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.6.1. Modelado de la Marea Terrestre . . . . . . . . . . . . . . . . . . . 26 2.6.2. Detección de marea terrestre: correlación - autocorrelacion - Transformada Discreta de Fourier (DFT) . . . . . . . . . . . . . 28 2.6.3. Análisis armónico aplicando mı́nimos cuadrados. . . . . . . . . . . 29 3. Resultados 3.1. Procesamiento GPS y filtrado de los datos . . . . . . . . . . . . . . . . . 3.2. Detección de marea terrestre: autocorrelación . . . . . . . . . . . . . . . 3.3. Detección de marea terrestre a través de la Transformada Rápida de Fourier 3.4. Comparación de los resultados obtenidos con un modelo teórico de marea terrestre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Cálculo de amplitudes y fases de componentes en frecuencia de marea: análisis armónico y análisis espectral mediante transformada de Fourier. . 3.6. Comparación de resultados de amplitud medidos por análisis armónico y por DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 33 33 37 38 39 41 45 3.7. Análisis de las constantes armónicas obtenidas. . . . . . . . . . . . . . . 46 4. Discusión y conclusiones 51 5. Bibliografı́a 57 Anexos 62 A. Programas utilizados para el análisis de la series de altura. 63 A.1. vufabs.py : Rutinas para el cálculo de f , v y u . . . . . . . . . . . . . . . 63 A.2. harmonic.py : Rutinas para análisis armónico. . . . . . . . . . . . . . . . 68 A.3. fft pic tlkt3.py : Rutinas para el cálculo de amplitudes mediante la DFT de la función de autocorrelación. . . . . . . . . . . . . . . . . . . . . . . . 71 B. Ejemplos de archivos utilizados en el trabajo B.1. Archivos RINEX - Encabezado . . . . . . B.2. Archivos SiteLog de IGS . . . . . . . . . . B.3. Archivo .prt de salida de Glred . . . . . . B.4. Archivos de series de altura utilizados para 3 . . . . . . . . . . . . . . . . . . el análisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 75 76 78 78 Índice de figuras 2.1. Mapa de la zona de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Disponibilidad de los datos de las estaciones seleccionadas para el perı́odo (2010-2012) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Diagrama de flujo del procesamiento y análisis de los datos. . . . . . . . 2.4. Análisis de resolución de ambigüedades por longitud de sesión . . . . . . 2.5. Diagrama de flujo del procesamiento de datos GPS con el Software GAMIT 2.6. Comparación de variaciones en los datos con la actividad ionosférica . . . 2.7. Funcionamiento del filtrado estadı́stico de los datos . . . . . . . . . . . . 2.8. Geometrı́a del cálculo de la fuerza de marea . . . . . . . . . . . . . . . . 3.1. Histograma del resultado del procesamiento GPS. . . . . . . . . . . . . . 3.2. Gráfico cuantil-cuantil de datos de altura procesada. . . . . . . . . . . . . 3.3. Series de altura en función del tiempo . . . . . . . . . . . . . . . . . . . . 3.4. Comparación de serie de altura y función de autocorrelación . . . . . . . 3.5. Detalle de los perı́odos detectados en la función de autocorrelación . . . . 3.6. Ejemplo de funciones de autocorrelación . . . . . . . . . . . . . . . . . . 3.7. DFT de las series de altura para las estaciones SRLP y PEJO. . . . . . . 3.8. Ejemplos de series de altura y diferencias modeladas . . . . . . . . . . . . 3.9. Análisis de la correlación entre series de altura medidas y modeladas. . . 3.10. Distribución de los resultados del cálculo de las componentes de marea por análisis armónico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11. Ditribución de resultados del cálculo de las amplitudes de componentes de marea por DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12. Amplitud de las principales componentes de diferencia de marea medidas en cada sitio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13. Comparación de amplitudes obtenidas por análisis armónico y DFT . . . 3.14. Análisis de correlación entre las series de datos medidas y su autopredicción. 3.15. Análisis de correlación entre las series de diferencias de marea modeladas y las autopredicciones correspondientes. . . . . . . . . . . . . . . . . . . . 4 12 13 14 17 18 21 22 24 33 34 36 37 37 38 39 40 41 42 42 44 45 46 47 3.16. Diferencias de fase entre los datos medidos y modelados, por componente y sitio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.17. Comparación de constantes armónicas medidas y modeladas. . . . . . . . 3.18. Cartas de lı́neas cotidales . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.19. Cartas de curvas de isoamplitud . . . . . . . . . . . . . . . . . . . . . . . 4.1. Comparación entre correlación y autocorrelación de los datos . . . . . . . 4.2. Comparación de amplitudes medidas y modeladas en las ondas K1, K2 y S1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Cartas de residuales de amplitud. . . . . . . . . . . . . . . . . . . . . . . 4.4. Espectro de mediciones de TECv y de residuos de altura medida . . . . . 5 47 48 49 50 52 53 54 55 Índice de tablas 2.1. Resumen de estaciones RAMSAC utilizadas. . . . . . . . . . . . . . . . . 2.2. Ondas utilizadas en el análisis armónico . . . . . . . . . . . . . . . . . . 11 32 3.1. Sesiones procesadas por estación . . . . . . . . . . . . . . . . . . . . . . . 34 3.2. Resumen de desvı́os de series de altura y de diferencias de marea modelada 40 3.3. Resultados de componentes armónicas fase y amplitud, medidas por análisis armónico y DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6 1. Introducción y objetivos Las oscilaciones diarias de la marea han sido desde siempre un hecho familiar para aquellos que han vivido en las costas de mares que se abren sobre los océanos. Tanto la creciente como la bajante, y los cambios en las corrientes son fenómenos evidentes. Muestra del interés que despertó esta cuestión son las numerosas reglas con que, desde antiguo, se estableció una relación entre las mareas altas y las fases lunares, y que quedaron plasmadas en tablas y relojes de mareas [Cartwright y Melchior, 1999]. El estudio del origen de este fenómeno nos lleva a la consideración de la atracción gravitatoria que ejercen principalmente la Luna y el Sol sobre nuestro planeta, más particularmente sobre los mares. Fue Isaac Newton (1643-1727) en su obra Philosophiae Naturalis Principia Mathematica (“Principios matemáticos de la filosofı́a natural“, 1687) quien dio los principios en los que se basa la teorı́a de equilibrio o teorı́a estática de la marea. Más tarde, Pierre-Simon Laplace (1749-1827) amplió el estudio de las mareas desde un punto de vista dinámico. Ası́ como se define tradicionalmente a la marea como los cambios periódicos en el nivel de los mares debido a la acción gravitatoria de la Luna y el Sol, se puede también decir que las mareas de la Tierra son los movimientos producidos en la tierra firme, y cambios en su potencial gravitacional, a causa de las fuerzas gravitatorias de cuerpos externos. Estas fuerzas, actuando sobre la tierra en rotación, producen incluso movimientos en su eje [Agnew, 2007]. Para entender esto se debe considerar a la Tierra sólida como un cuerpo dinámico, que si bien es un medio significativamente más rı́gido que el agua, es también capaz de experimentar deformaciones. El estudio de la marea terrestre, a la vez que aporta al conocimiento de las caracterı́sticas fı́sicas de la Tierra, es necesario para eliminar su influencia sobre mediciones de otros fenómenos a través del modelado de la misma. Es también de utilidad correlacionar este fenómeno con otros fenómenos fı́sicos a partir de los modelos generados. El modelado de este fenómeno es aplicado a las mediciones del Sistema de Posicionamiento Global (GPS), en las cuales conocer las variaciones esperadas de la marea terrestre permite un ajuste más preciso de las mediciones, evitando tratarlas como simple error estadı́stico. Las ventajas de aplicar correcciones por marea durante el cálculo 7 preciso de mediciones GPS han sido ampliamente estudiadas, ver [Watson et al., 2006], [Xu, 2003], [King et al., 2008]. Dichas correcciones se calculan utilizando modelos teóricos que describen la marea desde un punto de vista fı́sico, y que permiten estimarla gracias a que, como ya se mencionó, la Tierra sólida es un medio mucho mas rı́gido que el agua, y no se ve afectado por las profundidades y geomorfologı́a de las cuencas oceánicas y las formas de las costas. Desde otro punto de vista es esperable poder estudiar la marea terrestre a partir de la medición GPS, siempre que se puedan aislar sus efectos de los producidos por otros fenómenos. En el estudio de la marea se han aplicado con éxito distintas técnicas sobre series de alturas medidas. Una de las principales herramientas, inicialmente aplicada a las mareas oceanicas, es el análisis armónico por mı́nimos cuadrados, que permite calcular, a partir de una serie de alturas, las amplitudes y fases de las ondas componentes de la marea [Foreman et al., 1977]. Esta metodologı́a ha sido aplicada con éxito a mediciones GPS de estaciones en tierra firme, abriendo el camino para realizar estudios en mayor profundidad de los fenómenos cı́clicos que las afectan. [Xu y Knudsen, 2000] detecta y describe la marea terrestre a partir de mediciones estáticas y cinemáticas GPS. [Schenewerk et al., 2001] realiza un estudio de la carga oceánica a partir de las mediciones de estaciones permanentes en Canadá. [Bogusz y Figurski, 2010] obtuvieron estimaciones para las principales ondas de marea a partir de medición de la red nacional polaca de estaciones GPS permanentes. A partir de estos estudios también se puede detectar la existencia de otros fenómenos que se traducen como un movimiento periódico aparente de las estaciones, y que sin embargo no estén relacionados con la marea, sino con elementos propios del sistema, como la periodicidad de las órbitas satelitales. Esto último se menciona en las conclusiones tanto de [Schenewerk et al., 2001] como en las de [Bogusz y Figurski, 2010]. En la Argentina existe una red de estaciones GPS permanentes sobre la cual es esperable que se puedan llevar a cabo estudios de este tipo, aunque debe destacarse que no se ha podido encontrar ninguna publicación en una revista cientı́fica sobre detección de marea terrestre a partir de datos GPS en la Argentina. La principal diferencia entre la Red Argentina de Monitoreo Satelital Continuo (RAMSAC), y las redes utilizadas en los trabajos mencionados anteriormente (redes nacionales Canadiense y Polaca) es, que por la extensión del territorio nacional argentino y por la reciente implementación del sistema, no se dispone de una alta densidad de estaciones comparable a la de esos otros casos. 8 En el presente trabajo se proponen los siguientes objetivos: 1. Realizar un procesamiento cientı́fico de los datos recolectados por estaciones seleccionadas de la red RAMSAC obteniendo series de alturas en función del tiempo sobre las que sea posible detectar y eventualmente medir los efectos de la marea terrestre. El procesamiento de los datos GPS se realizará en modo diferencial, calculando posiciones relativas (vectores) y fijándolas a un punto base. Utilizando este procedimiento el efecto que se pretende detectar en las series de altura no es el de la marea absoluta sobre el sitio estudiado sino el de la diferencia entre el desplazamiento vertical en dicho punto y el desplazamiento producido sobre la estación base por la marea terrestre. 2. Aplicar el análisis armónico por mı́nimos cuadrados junto con herramientas de análisis de señales, como la Transformada Discreta de Fourier (DFT) y la autocorrelación, con el objetivo de detectar y medir las señales periódicas que provoca la marea en las series de altura. 3. Comparar las mediciones realizadas con estimaciones teóricas obtenidas a partir del modelo IERS03 detallado en [McCarthy y Petit, 2004], buscando identificar de esta forma la correspondencia de los fenómenos detectados con la marea, y al mismo tiempo comprobando la existencia de otros fenómenos cı́clicos que interfieren en la medición. Este modelo permite el cálculo de desplazamientos absolutos producidos por la marea en un punto cualquiera, de modo que para comparar estos valores con los resultados obtenidos se debe realizar la diferencia entre el desplazamiento en el punto estudiado y el desplazamiento en la estación base. Este trabajo se enmarca en el proyecto UBACyT 20020100100840 correspondiente a la programación cientı́fica 2011-2014, radicado en el Instituto de Geodesia y Geofı́sica Aplicadas de la Facultad de Ingenierı́a de la Universidad de Buenos Aires. 9 2. Metodologı́a 2.1. Zona de estudio y datos utilizados Para realizar el presente estudio se utilizaron datos GPS obtenidos por estaciones permanentes de la RAMSAC. Esta red es administrada por el Instituto Geográfico Nacional (IGN) de la República Argentina, y constituye parte de la materialización del marco de referencia oficial de la República Argentina, denominado POSGAR07 (POSiciones Geodésicas ARgentinas 2007), que es a su vez coherente con el marco ITRF (International Terrestrial Reference Frame). Para mayor información sobre la red, su historia y objetivos ver [Laurı́a y Cimbaro, 1999]. Los datos de medición de la red se encuentran disponibles para su descarga en la página Web del IGN 1 , en formato RINEX (Receiver INdependent EXchange format). Éste es el formato estándar internacional para intercambio de datos GPS, diseñado especı́ficamente para poder ser utilizado como formato universal de intercambio, propuesto inicialmente en 1989 por el Instituto de Astronomı́a de la Universidad de Berna [Gurtner y Estery, 2007]. Se utilizaron datos de la red RAMSAC obtenidos durante los años 2010, 2011 y 2012. Se eligió este perı́odo debido a que en él las estaciones de la red presentan una mayor cantidad de mediciones simultáreas disponibles que en perı́odos anteriores. Se eligieron los archivos con intervalo de grabación de 15s o en su defecto de 5s. Para la elección de las estaciones se consideró que las mismas conservaran una distribución equidistante, para producir vectores procesados con errores relativos comparables, mejorando ası́ el ajuste planimétrico. Al mismo tiempo, para poder observar la propagación de la onda de marea, se eligió una red que conformara una extensión similar en dirección N-S y E-O, considerando las grandes longitudes de onda que presenta la marea. Del mismo modo, se privilegió aquellas estaciones con mejor disponibilidad temporal, para favorecer el cálculo de las distintas componentes de la marea de frecuencias próximas. Finalmente, se buscó la utilización de estaciones para las que se dispusiera de coordenadas en el marco ITRF08 para garantizar la calidad de las coordenadas a-priori 1 http://www.ign.gob.ar/NuestrasActividades/Geodesia/Ramsac/DescargaRinex 10 calculadas para las demás estaciones. Cabe aclarar que las distintas materializaciones del marco de referencia ITRF son utilizadas a modo de estándar por numerosos sistemas de navegación y posicionamiento, siendo además el marco de referencia que utiliza por defecto el software GAMIT (GPS Analisis at Massachusetts Institute of Technology), utilizado en el presente trabajo. Como resultado se eligieron 10 estaciones de la red RAMSAC que cumplen con los requisitos propuestos (Tabla 2.1), distribuyéndose las mismas en la zona central del paı́s (Figura 2.1), abarcando el polı́gono que conforman parte de las provincias de Buenos Aires, La Pampa, Mendoza, Córdoba, San Luis, y Santa Fe. Estación Latitud Longitud Altura Elipsoidal (H) No de Archivos UCOR -31o 26’ 05.85595” -64o 11’ 36.62015” 462.779 m 978 LPGS -34o -57o 55’ 56.27834” 29.875 m 1058 PEJO -35o 48’ 22.76858” -61o 53’ 40.69912” 110.152 m 813 SRLP -36o 37’ 17.39804” -64o 16’ 49.45677” 223.848 m 1072 LHCL -38o -65o 35’ 42.89001” 404.546 m 996 VBCA -38o 42’ 02.76549” -62o 16’ 09.21762” 59.479 m 1043 BCAR -37o 45’ 40.44083” -58o 18’ 03.94234” 150.394 m 1083 UNRO -32o 57’ 33.67055” -60o 37’ 42.33075” 66.872 m 1087 SL01 -33o -66o 18’ 50.43449” 864.784 m 1044 MZSR -34o 36’ 55.69485” -68o 20’ 03.51760” 730.614 m 702 54’ 24.28241” 00’ 09.57429” 09’ 22.88259” Tabla 2.1.: Estaciones RAMSAC seleccionadas. En la tabla se indica el nombre de cada estación, sus coordenadas geodésicas POSGAR07, y el número de archivos disponibles en el perı́odo estudiado (2010-2012). 11 Figura 2.1.: Ubicación de las estaciones de la red RAMSAC que se utilizaron para la detección de marea terrestre. 12 En la Figura 2.2 se puede observar una lı́nea del tiempo con la disponibilidad de datos para cada uno de los sitios estudiados. El total de archivos RINEX procesados en el presente trabajo es de 9876, sumando un total cercano a los 60 GB de información. Los archivos RINEX descargados contienen los datos de medición junto con metadatos de sitio, tipos de receptor y antena. La información orbital se obtuvo a través de archivos de efemérides precisas provistos por IGS (International GNSS Service) [Beutler et al., 1994], y descargados a través del propio software de procesamiento. La precisión de estas órbitas es superior a la emitida por los propios satélites y grabada en los archivos RINEX. Para un mayor orden en el procesamiento, en lugar de utilizar la información de antena proveniente de los archivos RINEX se utilizaron los archivos de formato .log (SiteLog) recomendado por IGS 2 , también provistos por el IGN. Figura 2.2.: Disponibilidad de los datos de las estaciones seleccionadas para el perı́odo (2010-2012) 2.2. Diagrama de bloques de la metodologı́a aplicada Para facilitar la comprensión de la metodologı́a del trabajo, la Figura 2.3 brinda un diagrama de bloques donde se muestra detalladamente cada uno de los pasos realizados para la detección de señales de marea terrestre a partir de mediciones GPS. 2 ftp://igscb.jpl.nasa.gov/pub/station/general/sitelog instr.txt 13 PROCESAMIENTO CON GAMIT Coordenadas a-priori ITRF08 Procesamiento GPS (GAMIT + Glred) Coordenadas a-priori para toda la red Archivos de medición RINEX Procesamiento GPS (GAMIT + Glred) Filtrado estadístico de los datos (Filtro 3 σ móvil) Series de tiempo filtradas Autocorrelación Serie de tiempo, 1 coordenada c/2 h Análisis armónico de mareas DFT + Detección de picos Amplitud y fase de las componentes armónicas Amplitud de componentes armónicas Periodicidades detectadas Construcción de la autopredicción Autopredicción de Δmarea Comparación PROGRAMA solid Modelo teórico IERS03 Series de Δmarea mdelada Análisis armónico de mareas Amplitud y fase de las componentes armónicas Correlación Figura 2.3.: Diagrama de flujo del procesamiento y análisis de los datos. 14 2.3. Procesamiento de los datos provenientes del Sistema de Posicionamiento Global (GPS). 2.3.1. Posicionamiento preciso a partir de datos GPS El posicionamiento GPS se basa en la medición de la distancia existente entre un satélite al momento de emitir señal, y un receptor en tierra al momento en que éste la recibe, conociéndose esta magnitud como pseudo-distancia. Para llevar esto a cabo se utiliza la señal que emiten, en dos frecuencias distintas, los satélites de la constelación Navstar. Esta señal se compone de un código binario pseudo-aleatorio, llamado código PRN (por Pseudo-Random Noise) modulado en fase sobre una portadora. La medición de pseudo-distancia puede realizarse sobre el código modulado, como es el caso del posicionamiento autónomo o navegación, o con mayor precisión sobre la fase de la portadora, como en el caso del posicionamiento diferencial, como se desarrollará en este trabajo. De este modo, se realiza la medición sobre la fase de ambas portadoras, denominándose cada observación realizada como una época de medición. Debido a que las observaciones se realizan sobre el desfasaje entre la señal recibida y una generada internamente por el receptor, es desconocida la cantidad inicial de ciclos enteros de cada portadora, imposible de medir en forma directa. Esta magnitud es llamada ambigüedad inicial de fase, y una vez que se logra calcular su valor las mediciones de fase pueden considerarse como mediciones de pseudo-distancia de alta precisión [Teunissen, 1998]. Para más información sobre resolución de ambigüedades ver: [Blewitt, 1989], [Teunissen, 1995] y [Ge et al., 2005]. La precisión del procesamiento de estos datos depende de la precisión con que se calculen las órbitas, el éxito que se tenga en resolver la ambigüedad inicial de fase y la precisión con que se modelen las fuentes de error del sistema. En éste caso se utilizaron las órbitas precisas calculadas por el IGS y se utilizaron los modelos de errores atmosféricos y de carga oceánica provistos por el software GAMIT. Para poder resolver las ambigüedades de fase y eliminar errores de sincronismo producidos entre los satélites y los receptores, el procesamiento se realiza a partir de la construcción de sistemas de ecuaciones que se conocen como de simples, dobles y triples diferencias [Xu, 2003], [Hofmann-Wellenhof et al., 1993], [Remondi, 1985], combinando las observaciones realizadas en forma simultánea desde dos o más receptores durante un tiempo determinado de observación. A este intervalo de tiempo se le denomina una sesión de observación. Este tipo de sistemas lleva a la resolución del posicionamiento en forma relativa, es decir calculando vectores y redes de vectores entre puntos. 15 Existe gran cantidad de modelos de procesamiento de datos GPS, sin embargo, todos pueden encuadrarse en un sistema de ecuaciones del siguiente tipo: y = Aa + Bb + e (2.1) Donde y es el vector de datos de observación, a y b son vectores incógnita, y e es el vector de ruido (residuos). Usualmente el vector y consiste en residuales (observado − modelado) de dobles diferencias de fase, para todas las épocas de la sesión. El vector a contiene entonces las incógnitas de ambigüedad de fase de dobles diferencias, expresadas en unidades de ciclos, sabiendo a-priori que son valores enteros. Mientras tanto, el vector b contiene el resto de las incógnitas a ser estimadas, a saber: componentes x, y, z del vector procesado, parámetros de retardo atmosférico, y otras incógnitas de modelado de errores [Teunissen, 1997]. De este modelo de procesamiento se desprende que, dada la cantidad de incógnitas que genera el sistema, la utilización de un número reducido de observaciones de fase transforma en crı́tica la resolución de la ambigüedad inicial, siendo indispensable su resolución para eliminar incógnitas aumentando la redundancia del sistema, y obteniendo ası́ un correcto ajuste de la solución. En consecuencia, en vectores de longitudes como las que se utilizan en el presente trabajo, la duración de las sesiones de observación debe ser elegida comprobando que no se dificulte la correcta resolución de las ambigüedades. 2.3.2. Elección de la duración de las sesiones En el caso que se estudia en este trabajo, las sesiones deben ser lo más cortas posible y al mismo tiempo garantizar una precisión del resultado suficiente como para observar las oscilaciones de la marea terrestre. Para evaluar la capacidad de resolución de ambigüedades en función de la longitud de las sesiones en la red estudiada se realizó un procesamiento de una muestra reducida de los datos, obteniendo el porcentaje de ambigüedades resueltas en el procesamiento. Se procesaron datos de los primeros 150 dı́as del año 2010, con distintas longitudes de sesión. Para cada longitud de sesión se calculó el promedio de la cantidad de ambigüedades resueltas por sesión en los 150 dı́as. La Figura 2.4a muestra el resultado de este procesamiento en función de la duración de la sesión. La Figura 2.4b muestra el resultado del cálculo teórico de la probabilidad de resolución correcta de ambigüedades en función de la duración de la sesión realizado en [Teunissen et al., 1998], para dos valores distintos de error en las lecturas, utilizando como indicador de error el desvı́o estándar de las lecturas sobre código (σp ). 16 1. 0 0. 9 σ =10cm Probability of success p 0. 8 0. 7 σ =15cm p 0. 6 0. 5 0. 4 0. 3 (a) 0 100 200 300 400 500 Number of epochs 600 700 800 (b) Figura 2.4.: (b) Probabilidad de resolución correcta de ambigüedades en función del número de épocas [Teunissen et al., 1998]. (a) Ambigüedades resueltas en función de la duración de las sesiones para la primera mitad de 2010 (1 constituye el total de las ambigüedades) El resultado del procesamiento, tal como se ve en la Figura 2.4, es comparable con la predicción teórica, y permite buscar la duración óptima de la sesión. Teniendo en cuenta estos resultados, y considerando los antecedentes de [Bogusz y Figurski, 2010], [King et al., 2000], [Melbourne et al., 2002] y [Araszkiewicz et al., 2010], se decidió utilizar sesiones de 2 horas (480 épocas de 15 segundos), suficientes como para identificar hasta las componentes sexto-diurnas de la onda de marea [Pugh, 1996], y asegurando una cantidad satisfactoria de resolución de ambigüedades. 2.3.3. Procesamiento cientı́fico con el software GPS Analisys at Masachussets Institute of Technology. GAMIT es un paquete de software para análisis integral de datos GPS desarrollado por el Masachussets Institute of Technology (MIT) junto con el Harvard-Smithsonian Center for Astrophysics (CfA), y la Scripps Institution of Oceanography (SIO) para estimación de coordenadas y velocidades de una estación, representación estocástica o funcional de deformación post-sı́smica, retardos atmosféricos, órbitas satelitales y parámetros de orientación terrestre. El software se compone principalmente de programas escritos y compilados en lenguaje C o Fortran, que son controlados por scripts escritos en C-shell, un lenguaje interpretado de scripting para sistemas UNIX. La Figura 2.5 muestra el diagrama de flujo del procesamiento completo. Para mayor detalle sobre los tipos de archivos y el manejo interno del programa ver [Herring et al., 2010b] [Herring et al., 2010a]. 17 Sh_gamit Crea estructura de directorios y enlaces a archivos de datos (RINEX) Descarga efemérides .sp3 Genera archivos de configuración para los demás programas makexp makej Crea directivas para makex y fixdrv Crea archivos J- de parámetros de reloj de los satélites extrayéndolos de las efemérides arc fixdrv makex Genera efemérides tabulares de las órbitas satelitales Crea directivas para arc, model, autcln y solve Crea archivos I- de reloj ajustados a un polinomio, a partir de archivos K- Crea archivos de muestreo uniforme (X-) a partir de los RINEX Crea archivos K- de reloj a partir de los archivos J- model autcln solve Modela las observaciones de fase y obtiene residuales de fase “Observado-Calculado” y derivadas parciales (archivos C-) Limpia los archivos C- de saltos de ciclos y datos erróneos etiquetando épocas fallidas Estima parámetros de: -Ambigüedades -Modelado de errores -Coordenadas Iteración Glred Ajuste completo de la red incluyendo restricciones definidas por el usuario en las coordenadas y pesos de cada estación Series de coordenadas ajustadas Figura 2.5.: Diagrama de flujo del procesamiento de datos GPS con el Software GAMIT 18 Para configurar el procesamiento se partió de los archivos de configuración estándar de GAMIT. Se modificaron las opciones de modelado de errores, desactivando el modelo de marea terrestre, y activando el modelo de carga oceánica. Para mejorar la resolución del sistema en sesiones cortas se realizó un procesamiento inicial de sesiones diarias, determinando coordenadas a-priori precisas para todos los puntos, reduciendo el entorno de linealización con el que trabaja el programa model, y mejorando en consecuencia el trabajo del programa autcln, fase crı́tica en este tipo de procesos [Herring et al., 2010b]. En este primer procesamiento se utilizó el archivo estándar de coordenadas a-priori itrf08 soam.apr, que incluye tres de las estaciones utilizadas, y como resultado se generó un nuevo archivo conteniendo coordenadas de las restantes. El archivo de información de receptores y antena station.info fue generado a partir de los archivos .log en formato del IGS provistos por el IGN mediante la herramienta sh upd stnfo. Para el procesamiento final no se fijó la posición de ninguno de los puntos, y se les asignó errores a-priori similares. Posteriormente, para el ajuste de la red con el programa glred se utilizo como estación base fija a UNRO, la de mayor cobertura temporal entre las elegidas, refiriendo todas las fluctuaciones medidas a este punto de referencia, para simplificar su análisis. 2.3.4. Obtención de series de altura. El resultado del procesamiento completo, salida del programa Glred, es un archivo .prt(Anexo B) conteniendo, para la red procesada, la información correspondiente a las estaciones y sesiones incluidas, y la solución del ajuste de cada estación, presentando las coordenadas a-priori, coordenadas procesadas, y coordenadas ajustadas en cada sesión, junto con el error estadı́stico surgido del ajuste por mı́nimos cuadrados. En el presente estudio se realizó el análisis de marea sobre la componente vertical de las coordenadas (altura elipsoidal), ignorando las coordenadas Este y Norte, cuyo análisis excede los objetivos del trabajo. Los archivos de salida de Glred fueron procesados con las herramientas sed 3 y awk 4 , para obtener series de altura en forma de listados separados por coma (Anexo B) , conteniendo fecha y hora, coordenada ajustada, ajuste realizado e incertidumbre estadı́stica de la coordenada, expresando todas las variables en metros. Debido a que se realizó el procesamiento GPS en forma diferencial, calculando una red de vectores, las series de altura obtenida están referidas a la altura de la estación 3 4 http://www.gnu.org/software/sed/ http://www.gnu.org/software/gawk/manual/gawk.html 19 utilizada como base (UNRO). En consecuencia la serie de altura de dicha estación es constante, y por este mismo motivo, no se incluye en el análisis para detectar marea terrestre. Al fijarse la posición de la estación base, los efectos de la marea sobre ésta se propagan a las demás estaciones, mitigando los efectos observables de la marea. Es decir, que sobre las estaciones analizadas no podrá observarse el desplazamiento absoluto de la marea terrestre sino la diferencia entre el desplazamiento en dicha estación y el producido en la base UNRO. Sabiendo que el desplazamiento producido por la marea es una función armónica del tiempo, y que la suma de funciones armónicas de iguales frecuencias produce asimismo señales en la misma frecuencia [Giancoli y Teng, 2000], es correcto aplicar a las series de diferencia de marea un análisis similar al que se puede realizar sobre series de marea medida en forma absoluta. 2.3.5. Influencia de las condiciones atmosféricas sobre el resultado. Es importante destacar que, si bien existe gran cantidad de errores que pueden ser modelados e incluidos como incógnita de procesamiento, existen otros cuya influencia es impredecible, y por esto mismo no pueden ser modelados. El principal de estos errores es el retardo ionosférico. Con el objetivo de minimizar su influencia se utiliza como dato observado una combinación de las fases medidas sobre las dos ondas portadoras, aprovechando las propiedades dispersivas de este medio [King et al., 1985]. Sin embargo, cuando se trabaja con sesiones cortas este error no llega a ser anulado, provocando que, en perı́odos donde la ionosfera presenta una mayor actividad electrónica, el ruido presente en el sistema sea alto, produciendo resultados de menor calidad. En efecto, en el presente trabajo, se observan aumentos en la varianza de los datos procesados en distintos perı́odos, en forma que no es atribuible a la marea terrestre, fenómeno que nos ocupa. Un parámetro que sirve para medir la actividad ionosférica es el Contenido Total Electrónico Vertical (vTEC). Este parámetro indica, para un punto de la superficie terrestre, la cantidad de electrones que hay presentes en la ionosfera en una sección de un metro cuadrado directamente en forma vertical sobre el punto. Para comparar la varianza que presentan los datos GPS procesados con la actividad ionosférica se utilizó como estimador el desvı́o estándar del vTEC sobre toda la zona de estudio. Este desvı́o estándar fue calculado para cada semana, utilizando para ello mediciones de vTEC dadas en forma de grilla de un grado de separación, con un dato cada hora. Dichos datos fueron obte- 20 nidos de los mapas SAIM (South American regional Ionosphere Maps), producidos por el grupo GESA (Georreferenciación Satelitaria) de la Universidad Nacional de La Plata, usando el modelo LPIM (La Plata Ionospheric Model) [Brunini y Azpilicueta, 2009], disponibles en forma pública en internet 5 . Asimismo, para los datos GPS procesados se obtuvo también el desvı́o estándar semanal de todas las series como parámetro indicador. La Figura 2.6 muestra el resultado de esta comparación, donde se identifica una correspondencia entre ambos indicadores. Figura 2.6.: Comparación de los desvı́os estándar de los datos GPS medidos y de vTEC calculados en forma semanal. 2.4. Filtrado de los datos procesados. Una vez obtenidas las series de altura, deben filtrarse eliminando todos aquellos datos provenientes de sesiones en las que no se haya podido calcular la posición de la estación base, ya sea por ausencia de archivos o por error en la observación. Estos datos, al no tener referencia, carecen de sentido dentro de la serie y deben ser eliminados. Por otro lado, existen sesiones que, si bien pueden ser resueltas, no lo son de manera adecuada, ya sea por resolver insuficiente cantidad de ambigüedades o por fijarlas a valores erróneos, produciendo resultados fuera del rango en el que oscila la serie. Siendo que la incidencia de las mismas no es considerable en el total de la muestra (en el orden del %2) se decidió utilizar un filtro que las descarte en lugar de crear procesamientos particulares para resolverlas individualmente. 5 http://cplat.fcaglp.unlp.edu.ar/ 21 En ausencia de ruido, las alturas de marea presentan una distribución de probabilidad normal [Pugh y Vassie, 1978], lo cual permite aplicar el criterio de Gauss para filtrado de muestras estadı́sticas, descartando valores por fuera de m ± 3σ, donde m es la media de la muestra y σ es el desvió estándar, sin que esto degrade la calidad de la muestra. Para la muestra estudiada, considerando que presenta una varianza variable como se mostró en 2.3.5, se diseñó un filtro de 3σ con varianza móvil, utilizando como σ de referencia un desvı́o estándar local, calculado para una ventana de 400 observaciones. En la Figura 2.7 se ejemplifica la aplicación del filtro sobre la estación LHCL. (a) Serie de altura obtenida del procesamiento GPS (c) Serie de altura filtrada (b) Umbral de filtrado. Figura 2.7.: Ejemplo de filtrado de los datos procesados para la estación LHCL. (a) datos obtenidos del procesamiento GPS, marcando con un cı́rculo aquellos que corresponden a sesiones donde no se pudo procesar la base. (b) serie luego de eliminar los datos sin base válida, junto con el umbral de filtrado por 3σ móvil. (c) resultado final del filtrado de los datos. 22 2.5. Interpretación teórica de la marea La fuerza gravitacional ejercida por la Luna y el Sol sobre la Tierra puede descomponerse en una parte principal, que afecta la órbita terrestre en el espacio, y una menor remanente: la fuerza Luni-Solar de marea. Ésta no resulta en una fuerza neta sobre la Tierra sino que induce una deformación (marea terrestre), cambios en la orientación de la Tierra en el espacio (precesión y nutación), y cambios en la velocidad de rotación de la Tierra [Wahr, 1981]. La fuerza de marea puede describirse como el gradiente de un potencial de marea, consistente el mismo en una suma de términos que son una función armónica del tiempo, teniendo los senos y cosenos que la constituyen argumentos que implican combinaciones lineales de las frecuencias orbitales del Sol y la Luna. La deformación producto de la marea se interpreta como la convolución del campo potencial, producido por esta fuerza, con funciones de transferencia para una Tierra no rı́gida. La descripción formal de estas funciones de transferencia fue realizada por [Love, 1909] demostrando que los efectos pueden ser representados por un conjunto de números adimensionales, conocidos como números de Love. Más tarde [Shida y Matsuyama, 1912] agregó un nuevo número de Love, el cual era necesario para obtener una completa descripción de la respuesta de la Tierra sólida a las mareas. Posteriormente éste desarrollo se extendió a una Tierra elı́ptica y rotacional [Wahr, 1981] [Dehant et al., 1999]. El potencial de marea se obtiene siguiendo el desarrollo de [Munk y Cartwright, 1966]. Si Mext es la masa de un cuerpo externo, el potencial gravitacional (Vtot ) que genera ésta masa en un punto ubicado sobre la superfı́cie de la tierra O es: Vtot = GMext 1 GMext p = 2 ρ R 1 + (a/R) − 2(a/R) cos α (2.2) Siguiendo la Figura 2.8, a es la distancia de O al centro de la tierra (C), ρ es la distancia de O a M , y α es el ángulo determinado por O, el centro de la tierra y el centro del cuerpo M . G es la constante de gravitación universal. Si se realiza el desarrollo de Legendre de la raı́z cuadrada en la ecuación (2.2), según [Munk y Cartwright, 1966], se obtiene: Vtot ∞ GMext X a n = Pn (cos α) R n=0 R 23 (2.3) Earth O a C Moon M R Figura 2.8.: A la izquierda la geometrı́a del problema para calcular la fuerza de marea en el punto O de la superficie terrestre. La figura derecha muestra el campo de fuerzas (o aceleraciones) generadas por la Luna y el Sol sobre la tierra. La escala del vector más largo corresponde 1,14 µms−2 en el caso de la Luna y 0,51 µms−2 para el Sol [Agnew, 2007]. Donde el termino n = 0 es constante en el espacio, con lo cual su gradiente (la fuerza) es cero, y puede ser despreciado. El termino n = 1 corresponde a una fuerza constante en dirección a M , que es la fuerza orbital, y debemos eliminar para considerar sólo la fuerza generadora de marea. Luego los siguientes términos corresponden a P2 (cos α) = (1/2)(3 cos α2 − 1) y P3 (cos α) = (1/2)(5 cos α3 − 3 cos α), y representan más de el %99 de la fuerza de marea. Evaluando la magnitud de los valores de a (radio terrestre) y R (distancia Tierra-Luna) se obtiene que a/R ≈ 1/60, lo cual indica que los términos de (2.3) decrecen rápidamente al aumentar n, implicando que se obtiene un modelo preciso considerando sólo los términos n = 2 y n = 3 de la serie. En el caso del Sol a/R ≈ 1/23000 resultando el término de grado 2 mucho mayor que todos los demás [Agnew, 2007]. A partir de la ecuación resultante se construye el análisis de las series altura y también el modelado de la marea. 2.6. Análisis de series de altura El análisis de las series de altura se realiza partiendo de la ecuación (2.3), donde cada término de la serie es una función armónica de α, que a su vez depende de los distintos parámetros orbitales del cuerpo externo generador de la marea. Los cuerpos que se consideran para el desarrollo son la Luna y el Sol, ya que la influencia de los planetas es despreciable, debido a su distancia y masa. Siguiendo esta hipótesis, se descompone a la marea en una serie finita de términos del tipo Rj ∗ sin(σj t + αj ), donde la velocidad angular de cada componente (σj ) es función de las velocidades con las que varı́an los parámetros orbitales de la Luna y el Sol. A los efectos del análisis de la marea son seis los parámetros orbitales que describen completamente la posición tanto de la Luna como del Sol. Estas son el ángulo horario de la Luna (τ ), la longitud media de la Luna (s), la longitud media del Sol (h), la longitud media del perigeo lunar (p), la 24 longitud negativa del nodo ascendente de la órbita lunar (n′ ), y la longitud media del perigeo solar (p′ )[Pugh, 1996]. La marea queda expresada entonces según la ecuación (2.4), donde x(t) es la altura instantanea, Rj es la amplitud de la componente, y αj es su fase referida al origen de tiempo adoptado, ωτ , ωs , ωh , ωp , ωn′ , y ωp′ son las velocidades angulares de los parámetros orbitales, y i0 ...i5 son enteros pequeños que corresponden a cada componente, llamados números de Doodson [Doodson, 1921]. x(t) = N X Rj ∗ cos(σj t + αj ) (2.4) i=1 σj = i0 ∗ ωτ + i1 ∗ ωs + i2 ∗ ωh + i3 ∗ ωp + i4 ∗ ωn′ + i5 ∗ ωp′ Para mas detalle sobre los parámetros orbitales, sus velocidades, y el desarrollo completo en serie del potencial de marea ver [Pugh, 1996] [Doodson, 1921], [Cartwright y Edden, 1973], y [Schureman, 1994]. Partiendo de esta base teórica existen distintos enfoques para el análisis de registros de medición de altura de marea, siendo los principales el de (a) análisis espectral, determinando Amplitud = f (w) ya sea a través de la transformada de Fourier discreta o de otros métodos [Franco, 1982] [Trupin y Wahr, 1990], (b) el método de respuesta, que estudia la marea como la respuesta en frecuencia de un sistema al potencial de marea [Munk y Cartwright, 1966], y (c) el método de análisis armónico, donde se realiza un ajuste de los datos relevados a una serie de componentes armónicas de frecuencia fija, determinadas por el desarrollo del potencial de marea, utilizando el criterio de mı́nimos cuadrados [Foreman et al., 1977] [Foreman et al., 2009]. Considerando que los datos corresponden al muestreo discreto, ya sea uniforme o no, de una señal continua, que es la altura de marea, se pueden aplicar a su estudio las herramientas propias del análisis de señales, tales como la correlación, la autocorrelación o los periodogramas. En el presente trabajo se utiliza la correlación como herramienta para comparar las diferencias de marea medidas con el modelo teórico de IERS (International Earth Rotation Service). Se calcula también la función de autocorrelación de cada una de las muestras, buscando comprobar la existencia de señales periódicas dentro de la misma, especialmente aquellas que corresponden a las frecuencias de marea. Se utilizó la Transformada Discreta de Fourier para individualizar componentes armónicas de frecuencias caracterı́sticas de la marea en las series de marea modelada, ası́ como en las series de altura medidas, aunque sobre estas últimas no en forma directa sino a través de su función de autocorrelación. Finalmente, se realizó el análisis armónico de las series medidas y 25 modeladas, determinando en cada caso las amplitudes y fases de las ondas componentes de la marea. De esta manera se obtuvieron parámetros que se comparan entre sı́ para analizar el comportamiento del fenómeno, y para contrastar las mediciones con el modelo teórico. 2.6.1. Modelado de la Marea Terrestre La respuesta de una Tierra Esférica, No-Rotacional, Elástica e Isotrópica (SNREI por sus siglas en inglés) a la fuerza de marea puede modelarse, como ya se mencionó, a través de los números de Love. Si el potencial en un punto de colatitud θ y longitud φ es V (θ, φ)/g, donde g es la aceleración gravitatoria terrestre, la distorsión producida se traduce en un desplazamiento radial hn V (θ, φ)/g y un desplazamiento horizontal ln (∇1 V (θ, φ)/g), donde ∇1 es el gradiente en el plano tangente a la esfera [Agnew, 2007]. los números hn y ln son los números de Love. En el presente trabajo, para obtener las estimaciones teóricas de marea terrestre, se utilizó el modelo propuesto por el IERS en “IERS Conventions 2003”, especificado teóricamente en [McCarthy y Petit, 2004]. Este modelo considera una Tierra en rotación, ligeramente elı́ptica, afectada por su propia gravedad, en equilibrio hidrostático, y linealmente elástica, tal como la describe [Smith, 1974]. El cálculo de desplazamiento se realiza en pasos. En primer lugar se aplican las ecuaciones (2.5) y (2.6), para calcular los desplazamientos debidos a los términos de grado 2 y 3 respectivamente del potencial de marea. Estas ecuaciones provienen de aplicar los números de Love a la ecuación (2.3). En estas ecuaciones los números de Love h2 , l2 , h3 y l3 utilizados no son los nominales calculados para una Tierra SNREI, sino que surgen de aplicar a éstos una corrección para tener en cuenta la forma elipsoidal de la Tierra. − ∆→ r = 3 2 1 h i X 3 GMj Re4 (2.5) + 3l2 R̂j · r̂ R̂j − R̂j · r̂ r̂ R̂j · r̂ − h2 r̂ GM⊕ Re3 2 2 j=2 P3 − ∆→ r = j=2 GMj Re5 GM⊕ Re4 3 3 5 R̂j · r̂ − R̂j · r̂ + h3 r̂ 2 2 2 3 h i 15 +l3 R̂j · r̂ − R̂j − R̂j · r̂ r̂ 2 2 Donde: 26 (2.6) GMj = Parámetros Gravitacionales de la Luna (j = 2) o del sol (j = 3) GM⊕ = Parámetros gravitacionales de la Tierra R̂j , Rj = Vector unitario del geocentro a la Luna o el Sol y la magnitud de ese vector. Re = Radio ecuatorial terrestre, r, r̂ = Vector unitario del geocentro al punto estudiado y la magnitud de ese vector. h2 = Número de Love nominal de grado 2 l2 = Número de Shida nominal de grado 2 Una vez realizado este cálculo, se computan correcciones debido a las variaciones en los números de Love que se producen al considerar a la Tierra en rotación, ligeramente elı́ptica, afectada por su propia gravedad, en equilibrio hidrostático, y linealmente elástica. Estas variaciones se encuentran estudiadas en [Wahr, 1981] [Dehant et al., 1999], y [Mathews et al., 1995] entre otros. Las correcciones mencionadas se realizan en dos pasos, el primero considerando las dependencia de los números de Love con la latitud, y la parte imaginaria de los mismos, que genera un desfasaje en los desplazamientos con respecto al potencial de marea. El segundo paso considera la dependencia de los números de Love con respecto a la frecuencia, debido a la resonancia de la Tierra. La formulación matemática de estas correcciones está detallada en [McCarthy y Petit, 2004]. La implementación del modelo que se utilizó en este trabajo fue realizada por Dennis Milbert, en lenguaje de programación FORTRAN77, siguiendo las especificaciones de IERS, utilizando como base el programa realizado por Veronique Dehant, disponible en internet en forma libre6 . El programa resultante tiene por nombre solid.exe, el código fuente (solid.f ) y el ejecutable de la implementación de Milbert se encuentran disponibles en su página web7 . Ambos programas mencionados se basan en el trabajo de modelado de la marea terrestre realizado por [Dehant et al., 1999], validado por [Baker y Bos, 2003], utilizado por [Agnew, 2007] entre otros. El proceso de cálculo que utilizan es similar al propuesto por IERS, realizando sólo pequeñas modificaciones en la distribución de los términos, que no influyen en el resultado final. El código fuente solid.f agrega al código de Dehant el cálculo de la posición del Sol y la Luna a través de efemérides analı́ticas, propuestas en [Montenbruck y Pfleger, 2000], [Montenbruck y Eberhard, 2000], resultando 6 7 https://github.com/tomojitakasu/RTKLIB/blob/master/lib/iers/src/dehanttideinel.f http://home.comcast.net/ dmilbert/softs/solid.htm 27 en la capacidad de obtener las desviaciones de marea terrestre a partir de una posición geodésica y un tiempo UTC. Esta implementación final en el programa solid.exe fue validada en [Tuttas, 2011], siendo comparado entre otros modelos con el incluido por el software BERNESSE de procesamiento GPS de la Universidad de Berna. 2.6.2. Detección de marea terrestre: correlación - autocorrelacion - Transformada Discreta de Fourier Para realizar la comparación directa entre los datos procesados y las diferencias de marea modelada se utilizó el coeficiente de correlación estándar (r) [Pearson, 1920], [Lee Rodgers y Nicewander, 1988]. Se calculó la correlación entre las señales medidas y las modeladas, para distintos valores de retardo o adelanto (α), obteniendo r(α) con el objetivo de medir la correspondencia entre ambas, y la posible existencia de retardo entre ellas. Para detectar la periodicidad de las series de marea medida se utilizó la función de autocorrelación. Esta función toma para cada valor de desfasaje (τ ) en horas el equivalente a calcular la correlación estadı́stica de la serie consigo misma, desfasada en τ horas. En caso de existir periodicidad dentro de la serie relevada, esto se verá reflejado en una periodicidad de similar frecuencia de la función de autocorrelación. Las componentes no periódicas de la señal analizada no se propagan a la función de autocorrelación, debido a que por su naturaleza aleatoria, no se correlacionan consigo mismas una vez desfasadas. Por último es importante destacar que, aún cuando las series de datos medidas presentan discontinuidad, e incluso perı́odos de varios dı́as sin datos, la función de autocorrelación queda definida en forma continua para toda la serie. Para detectar señales de frecuencias compatibles con la marea en las series de altura medidas, se utilizó la Transformada Discreta de Fourier (DFT por sus siglas en inglés), que se define como la conversión de una función del dominio del tiempo (Amplitud = f (t)), al dominio de la frecuencia (Amplitud = f (ω)) [Bracewell, 1986]. Existen diversos algoritmos para calcular la DFT [Burrus y Parks, 1991]. Se utilizó el algoritmo de Transformada Rápida de Fourier (FFT) para analizar las series modeladas, detectando en forma rápida las principales componentes presentes en el caso de estudio, ası́ como sus amplitudes estimadas. Es importante aclarar que la FFT sólo puede calcularse sobre series de datos que se encuentren muestreadas en forma regular y continua, es decir, con intervalo de muestreo constante, y sin saltos. Estas condiciones se cumplen para las series de datos modelados, pero no para las series observadas, que tienen muestreo regular, 28 pero tienen datos faltantes a lo largo de todo el intervalo de estudio. Para poder realizar el análisis espectral de las series de altura se trabajó con la función de autocorrelación. La misma cumple las condiciones de estar muestreada a intervalos regulares, y en forma continua para |τ [hs]| < longserie [hs]. Además la función de autocorrelación cumple la propiedad de que su TF(Transformada de Fourier) es igual la a función de densidad espectral de potencia (PSD) de la señal sobre la que se calculó, según el teorema de Wiener-Khirchin-Einstein [Wiener, 1930]. Dado que se define la función de potencia de una señal como el cuadrado de su amplitud, y la PSD es el módulo de su TF, la relación que existe entre la función de autocorrelación (R(τ )) y la TF de la señal original es la ecuación (2.7), lo cual permite obtener la DFT de la señal original a partir de la DFT de su función de autocorrelación. |T F (x(t))| = |T F (R(τ ))|1/2 (2.7) Para reducir la distorsión conocida como efecto leakage (fuga) en las DFT, producido por trabajar sobre series finitas de datos, se utilizó el proceso de ventana sobre la muestra antes de realizar la transformada. La ventana utilizada fue la ventana de Hann, para un estudio en detalle de este efecto y de las formas de tratarlo ver [Harris, 1978]. Se utilizó además un algoritmo de detección de picos sobre las DFT para identificar y separar las componentes en frecuencia de marea presentes tanto en el modelo como en las series de altura. Con el objetivo de validar la metodologı́a, y la independencia de los resultados con respecto a la distribución de los datos faltantes, se evaluó la repetitividad de las amplitudes calculadas para distintos muestreos de los datos. Para ello, se repitieron los cálculos utilizando 100 subconjuntos distintos de los datos, obtenidos de tomar la mitad de los datos al azar cada vez. Luego, se compararon estos resultados con el obtenido utilizando toda la muestra en el proceso. 2.6.3. Análisis armónico aplicando mı́nimos cuadrados. El análisis armónico de marea consiste esencialmente en ajustar los datos medidos a una función del tipo de la ecuación (2.4). Por cada onda que se incluya en el análisis se calculará una constante distinta R y otra α. Las ondas que se incluyen en el análisis deben ser seleccionadas en base a la frecuencia de muestreo y a la longitud de la serie medida, debido a que series de tiempo muy cortas no permiten separar ondas de frecuencias 29 muy cercanas. Para ello se utiliza el criterio de Rayleigh [Pugh, 1996], incluyendo en el análisis solo aquellas ondas que, en la longitud completa de la serie, llegan a separarse, de otras de velocidades próximas, en más de un ciclo. No obstante de aplicar este criterio debe tenerse en cuenta que la combinación de ondas incluidas en el análisis con otras no incluidas de frecuencias similares producen un efecto de modulación, resultando en una onda cuya amplitud y fase varı́an en el tiempo. En consecuencia, las constantes armónicas calculadas no resultaran las correspondientes a esta sino a las de la onda modulada. Para corregir este efecto Godin propuso formar grupos “clusters” de ondas y corregir la modulación con factores numéricos. La ecuación de onda queda entonces reformulada de la siguiente manera: x(t) = N X fj Rj ∗ sin(σj t + uj + αj ) (2.8) i=1 Dentro de cada cluster se toma una componente principal y componentes satélites, calculándose factores f y u para corregir la modulación que producen las componentes satélite sobre la amplitud y fase de la principal respectivamente. La inclusión de estos factores se llama corrección nodal, o modulación satelital (”sattelite modulation“) [Foreman et al., 2009]. A estas correcciones se les agrega un último factor, para expresar los retardos de fase de las componentes en un sistema absoluto en lugar de referirlos al tiempo de la serie medida. Esta corrección se conoce como argumento de equilibrio (V0 ), y corresponde a la fase particular de esa componente en el meridiano 0◦ según el desarrollo de la marea de equilibrio [Schureman, 1994], calculada para el momento que se tome como origen de tiempo de la serie. Cuando se trabaja con series de datos más largas que un año, no es posible asumir que f o u sean constantes para toda la serie. En consecuencia deben ser incluidas en el ajuste como función del tiempo. Para ello se propone realizar el ajuste utilizando la ecuación (2.9), donde v(t) corresponde al argumento de equilibrio de la componente para el tiempo t, mientras que f (t) y u(t) son las componentes de modulación satelital calculadas para el tiempo t. x(t) = N X fj (t)Rj ∗ cos(v(t) + u(t) + αj ) (2.9) i=1 De esta manera, se realizan las correcciones por modulación dentro del mismo ajuste, y el resultado obtenido corresponde con la amplitud y retardo de fase verdaderos de 30 las componentes, medidas en un sistema de referencia absoluto. En el presente trabajo se realizo el ajuste por mı́nimos cuadrados de los datos partiendo de la ecuación (2.9), descomponiéndola en componente seno y coseno en lugar de amplitud y fase, e incluyendo además un término de nivel medio (N m) y uno de tendencia lineal (T end), para considerar una posible tendencia en los datos, resultando en la ecuación (2.10). x(t) = N m + T end ∗ t + PN i=1 fj (t) (Aj ∗ sin(v(t) + u(t)) + (2.10) +Bj ∗ cos(v(t) + u(t))) Se utilizó el algoritmo de Levenberg-Marquardt [Marquardt, 1963] para el ajuste, permitiendo esto darle peso a los datos, utilizando para ello los errores estadı́sticos (σ) correspondientes a cada valor de las series, estimados por GAMIT durante el procesamiento. Esto constituye una diferencia con el análisis tradicional, donde todos los datos son tomados en idénticas condiciones con el mismo instrumento, y en consecuencia tienen peso similar. Para el cálculo de f , v y u se utilizó el algoritmo escrito en FORTRAN por MG Foreman [Foreman et al., 1977], disponible en el archivo subs.f del paquete tidpack, que se encuentra en la página de la oficina de pesca y océanos del gobierno de Canadá (Fisheries and Oceans Canada) 8 . Para elegir las ondas a utilizar en el análisis se estudiaron las series de altura procesada y de marea modelada a través del programa solid para la estación MZSR, que resulta ser la más lejana a la base, y por ello la que mayores amplitudes debe presentar. Se buscaron ondas en frecuencia de marea a través de la DFT, y del análisis armónico utilizando las 146 ondas que incluye el paquete tidpack. En base a las amplitudes resultantes se decidió utilizar en el análisis las ondas indicadas en la Tabla 2.2. Cabe aclarar que si bien la componente S1 es prácticamente nula en el modelo, no lo es en las muestras medidas, y por eso se la incluyó en el análisis. Se realizó el análisis para las series medidas y modeladas, comparando los resultados entre sı́. Con el objetivo de validar la metodologı́a, y la independencia de los resultados con respecto a la distribución de los datos faltantes, se evaluó la repetitividad de las amplitudes calculadas para distintos muestreos de los datos. Para ello, se realizaron los cálculos de componentes de la marea utilizando 30 subconjuntos distintos de los datos, obtenidos de tomar la mitad de los datos al azar cada vez. Luego, se compararon estos resultados con el obtenido utilizando toda la muestra en el proceso. 8 http://www.pac.dfo-mpo.gc.ca/science/oceans/tidal-marees/index-eng.html 31 Componente Frecuencia [◦ /h] M2 28.9841042 S2 30.0000000 N2 28.4397295 K2 30.0821373 K1 15.0410686 O1 13.9430356 P1 14.9589314 Q1 13.3986609 S1 15.0000000 Tabla 2.2.: Ondas utilizadas en el análisis armónico y su frecuencia. A partir de las constantes armónicas resultado del análisis se construyó la autopredicción de cada serie, comparando luego ésta con las series de altura medida y modelada, a través de la correlación temporal. Con el fin de realizar una interpretación espacial de los resultados se obtuvieron, por interpolación con el método Kriging [Stein, 1999], cartas de lı́neas cotidales y de lı́neas de isoamplitud de cada componente, calculadas utilizando los datos medidos y modelados, obtenidos del análisis armónico. Para la comparación de los resultados del análisis armónico entre los datos medidos y modelados se utilizó el RMSmisfit por componente y sitio entre los resultados de una y otra muestra. El RM SM isf it viene dado según la ecuación (2.11), donde R1 y α1 son la amplitud y fase de una componente obtenida a partir de una serie de altura medida, mientras que R2 y α2 son la amplitud y fase de la misma componente, obtenida a partir de la serie de diferencias de marea modelada. q RM Smisf it = (R1 cos(α1 ) − R2 cos(α2 ))2 + (R1 sin(α1 ) − R2 sin(α2 ))2 (2.11) Se calculó el RSS (Root Sum of Squares) por componente, considerando todos los sitios, según la ecuación (2.12), donde Si es cada sitio analizado y NS es el total de los v sitios analizados. u NC uX 2 Rss =t RM S (2.12) sitio M isf it Ci i=0 Se calculó el RSS (Root Sum of Squares) por sitio, considerando todas las componentes, según la ecuación (2.13), donde Ci es cada sitio analizado y Nc es el total de los v sitios analizados. u NS uX 2 RM S (2.13) =t Rss M isf it Si componente i=0 32 3. Resultados 3.1. Procesamiento GPS y filtrado de los datos Para este trabajo se realizó el procesamiento de las 13152 sesiones disponibles inicialmente. De este procesamiento se obtuvieron valores de altura y error estadı́stico (σ) para cada estación elegida, quedando 12482 sesiones válidas para la estación base UNRO. La Figura 3.1 muestra el histograma bidimensional de apartamiento de la altura procesada en cada sesión respecto de la coordenda a-priori y el error estimado por el software de procesamiento para cada sesión. Se observa en este gráfico que las observaciones se concentran en σ cercanos a los 2 centı́metros y en valores de altura centrados en [media ± 5cm], con apartamientos mayores a medida que aumenta el σ. Figura 3.1.: Histograma de apartamiento de la altura a-priori y error estimado de procesamiento A las series de datos procesadas se les aplicó un filtro de varianza móvil. Para mostrar los efectos del filtro sobre la serie de datos se presenta en la Figura 3.2 el gráfico cuantilcuantil, con los cuantiles de la distribución real de los datos en función de los de la distribución normal estándar. La semejanza entre ambas distribuciones se refleja en la alineación de los puntos sobre una recta. Puede notarse que los datos no filtrados presentan una mayor cantidad de valores extremos, que se alejan de la distribución de la normal. 33 Figura 3.2.: Gráfico cuantil-cuantil elaborado a partir de los datos de altura procesados comparada con la distribución normal estándar, antes y después de la aplicación del filtro. Se utilizaron los datos de altura de todas las series, restando en cada caso la media de la serie, para hacer comparables las series. La Tabla 3.1 resume la cantidad de sesiones procesadas por estación, dependiendo de la disponibilidad de datos, detallando la cantidad de sesiones que no tuvieron error ni falta de datos en el procesamiento de la base UNRO, la cantidad de datos que fueron eliminados al aplicar el filtro por 3σ móvil, el porcentaje de la muestra que representan, y la cantidad resultante de sesiones utilizadas para el análisis y detección del efecto de la marea terrestre. Estación Sesiones Procesadas Con base válida Filtradas % filtradas Utilizadas UCOR 10401 9960 MZSR 8259 7848 144 1.45 % 9816 158 2.01 % LPGS 11590 11106 7690 177 1.59 % 10929 PEJO 9485 9038 157 1.74 % 8881 VBCA 12005 11485 136 1.18 % 11349 11461 SRLP 12132 11619 158 1.36 % BCAR 12853 12309 161 1.31 % 12148 SL01 11726 11223 121 1.08 % 11102 LHCL 11790 11279 149 1.32 % 11130 UNRO 12482 UNRO es la estación Base. Tabla 3.1.: Cantidad de sesiones procesadas, con base válida, filtradas, el porcentaje que estas representan, y cantidad de sesiones utilizadas en el análisis 34 Las Figuras 3.3b y 3.3a presentan las series de tiempo resultantes de la aplicación del filtro, para todas las estaciones. (a) Series de las estaciones BCAR, SL01, LHCL, SRLP 35 (b) Series de las estaciones MZSR, LPGS, PEJO, VBCA, UCOR Figura 3.3.: Series medidas de altura en función del tiempo para cada estación. Las alturas se calcularon refiriéndolas a UNRO como base, fijando la posición de dicha estación. 36 3.2. Detección de marea terrestre: autocorrelación En la Figura 3.4 se grafica parte de la serie de altura de la estación MZSR y de su función de autocorrelación. Si bien las magnitudes no son comparables (altura [metros] contra coeficiente de correlación [adimensional]), si pueden compararse las periodicidades, que se ven resaltadas en la función de autocorrelación. R_MZSR MZSR(t) 730.70 0.0002 730.65 Altura Correlación 0.0004 0.0000 730.60 0.0002 730.55 0.0004 4600 4650 4700 4750 Tiempo/Retardo [h] 4800 4850 4900 Figura 3.4.: Parte de la función de Autocorrelación para la serie de altura de la estación MZSR, comparada con la misma serie de alturas. En la Figura 3.5 se resaltan las distintas periodicidades encontradas en la función de autocorrelación, compatibles con el perı́odo de la onda de marea. 0.0004 R_MZSR(T) ~12 h 0.0003 Autocorrelacion 0.0002 0.0001 0.0000 0.0001 0.0002 ~24 h 0.0003 ~6 h 8350 8400 8450 8500 Retardo [h] Figura 3.5.: Detalle de los perı́odos detectados en la función de autocorrelación 37 La Figura 3.6 representa parte de las funciones de autocorrelación de tres estaciones distintas, con el objetivo de mostrar la similitud entre ellas. Cabe aclarar que esta similitud fue observada en las nueve series. LPGS SL01 UCOR 0.00015 Correlación 0.00010 0.00005 0.00000 0.00005 0.00010 0.00015 11100 11150 11200 Retardo [h] 11250 11300 Figura 3.6.: Ejemplo de parte de las funciones de Autocorrelación de las estaciones LPGS, SL01 y UCOR. 3.3. Detección de marea terrestre a través de la Transformada Rápida de Fourier Se utilizó el algoritmo de transformada rápida de Fourier sobre las funciones de autocorrelación para hallar las DFT de las distintas series. Sobre estas DFT se realizó una detección de picos para identificar en las series la presencia de señales en las frecuencias de las ondas componentes de marea. En las Figuras 3.7a y 3.7b se representa la detección de componentes en las estaciones SRLP y PEJO. Este método permitió detectar las principales componentes de la marea en todas las estaciones evaluadas. Comparando las amplitudes de las distintas componentes de la diferencia de marea entre los sitios SRLP y PEJO en la Figura 3.7 se puede notar que las mismas tienen una amplitud mayor en SRLP que en PEJO, que está mas alejada de la base. 38 (a) DFT de la serie de altura de la estación SRLP. (b) DFT de la serie de altura de la estación PEJO. Figura 3.7.: DFT de las series de alturas medidas correspondientes a las estaciones SRLP y PEJO, calculadas a partir de las funciones de autocorrelación. 3.4. Comparación de los resultados obtenidos con un modelo teórico de marea terrestre. Se realizó el modelado de la marea para los diez sitios procesados, utilizando el programa solid.exe. Los valores obtenidos del modelo son valores de marea absoluta en un punto, para hacerlos comparables a los obtenidos por el procesamiento GPS se realizó la diferencia de marea de cada sitio con respecto a la base, UNRO. Esto es necesario debido a que sobre las series de altura medida, al estar referidas a la base UNRO, no se refleja el efecto absoluto de la marea sino la diferencia entre el desplazamiento de cada estación con el de la base. En la Figura 3.8 se graficaron la serie de altura medida, y la serie de diferencias de marea modelada, superpuestas, para las estaciones UCOR y PEJO. Se observa en cada caso una correspondencia entre ambas series. 39 Figura 3.8.: Parte de las series de altura de las estaciones UCOR y PEJO, junto con las diferencias de marea modeladas para dichas estaciones. Se restaron las diferencias de marea modelada a las series de altura medida y se verificó una disminución en el desvı́o estándar de la serie resultante (Tabla 3.2), atribuible esto a que la influencia de la marea está presente en las mismas. Sitio BCAR LHCL LPGS MZSR PEJO SL01 SRLP UCOR VBCA σAlturas 0.0252 0.0324 0.0208 0.0463 0.0193 0.0308 0.0301 0.0224 0.0321 σ∆ modeladas 0.0127 0.0185 0.0094 0.0241 0.0074 0.0178 0.0137 0.0119 0.0135 σ(Alturas−∆ modeladas) 0.0228 0.0275 0.0186 0.0382 0.0181 0.0245 0.0268 0.0184 0.0290 Tabla 3.2.: Desvı́os estándar de las series de altura medidas (Alturas), de diferencias de marea modelada (∆ modeladas) y de las series residuales (Alturas − ∆ modeladas). Se graficó (Figura 3.9) el coeficiente de correlación estándar (ρ) entre las series medidas y modeladas, calculándolo para desfasajes (lag) de entre +12h y -12h entre las mismas. Se calculó el lag que produjo máxima correlación y el valor de ρ correspondiente. 40 (a) Correlación Alturas Medidas - ∆M area Modelada Sitio BCAR LHCL LPGS MZSR PEJO SL01 SRLP UCOR VBCA (b) Detalle Picos de Correlación Lag 4 17 -15 -15 11 15 7 3 3 Correlación 0.34 0.43 0.44 0.45 0.46 0.53 0.57 0.57 0.61 (c) Valores máximos de correlación Figura 3.9.: Correlación temporal entre las series de altura y las diferencias de marea modeladas 3.5. Cálculo de amplitudes y fases de componentes en frecuencia de marea: análisis armónico y análisis espectral mediante transformada de Fourier. Se aplicó a las series de altura medida y a las series de diferencias de marea modelada el método de análisis armónico por mı́nimos cuadrados para calcular las componentes armónicas correspondientes a las diferencias de marea. Para validar la independencia del resultado con respecto a la distribución no homogenea de los datos se realizaron 30 repeticiones del análisis tomando en cada ocasión sólo la mitad de los datos, en forma aleatoria. Se calcularon en cada repeteción los coeficientes (A y B) de los términos coseno y seno de la ecuación 2.10 para cada componente de la marea en cada sitio. Se calculo el desvı́o de estos coeficientes con los correspondientes A y B resultantes de procesar toda la serie. Estos devios están graficados como puntos en la parte central de la Figura 3.10. En la misma Figura se presentan los histogramas, en escala de color, por cada una de ambos coeficientes (A y B) para cada sitio. 41 Figura 3.10.: Distribución de los resultados del cálculo de componentes de la marea por análisis armónico, realizado para 30 repeticiones. Se calcularon también las amplitudes de las componentes a partir de la medición de los picos en las DFT de las series de altura. Como validación de esta metodologı́a, al igual que en el caso anterior, se realizaron 100 repeticiones, tomando sólo la mitad de los datos cada vez, en forma aleatoria. En la Figura 3.11 se graficaron los histogramas para cada sitio y componente de los resultados de este análisis. Figura 3.11.: Distribución de los resultados del cálculo de amplitud de las componentes de las diferencias de marea con DFT, realizado para 100 repeticiones. 42 Las Tablas 3.3a y 3.3b muestran, las amplitudes y fases calculadas por análisis armónico y las amplitudes calculadas a través de la DFT, para cada componente detectada de las diferencias de marea en cada sitio. Sitio M2 [mm|◦ ] S2 [mm|◦ ] K1 [mm|◦ ] O1 [mm|◦ ] N2 [mm|◦ ] P1 [mm|◦ ] K2 [mm|◦ ] Q1 [mm|◦ ] S1 [mm|◦ ] SRLP 14.4 243.2 9.9 246.3 6.8 301.2 5.3 291.0 2.6 238.8 3.8 280.1 5.6 329.3 1.2 293.3 5.4 270.4 PEJO 7.7 3.0 270.9 3.8 305.2 2.4 273.3 1.5 272.9 2.0 230.7 2.8 31.2 0.2 284.4 4.4 280.8 4.9 14.0 5.7 186.3 3.3 174.6 1.9 5.0 1.8 186.9 2.8 36.4 0.5 198.6 2.3 264.2 263.4 LPGS 10.0 7.7 UCOR 14.0 199.1 7.0 195.8 8.8 336.3 3.7 348.7 2.5 199.4 3.0 320.9 0.9 329.6 0.6 345.2 1.6 272.7 20.7 216.2 9.7 216.6 9.6 325.5 5.9 327.3 3.6 212.4 3.9 315.1 3.6 279.2 1.3 320.3 1.5 250.1 VBCA 17.5 270.0 6.7 280.1 9.7 SL01 307.1 4.9 266.7 2.5 252.6 3.6 221.6 4.1 79.3 0.8 262.3 4.7 281.5 MZSR 27.9 223.9 13.5 215.7 15.8 323.8 8.6 318.2 4.9 225.2 5.0 290.8 6.2 306.6 1.3 342.8 6.1 273.0 BCAR 12.2 340.4 5.1 333.3 6.5 185.0 4.5 212.9 2.4 335.0 3.8 201.5 3.8 9.3 0.7 216.5 5.9 290.8 LHCL 19.5 245.9 9.6 241.5 9.3 303.2 6.8 290.2 3.7 246.4 3.9 269.5 5.8 338.8 1.0 301.3 5.7 275.9 Q1 [mm] S1 [mm] 4.2 (a) Resultados obtenidos a través de análisis armónico Sitio M2 [mm] S2 [mm] K1 [mm] O1 [mm] N2 [mm] P1 [mm] K2 [mm] SRLP 14.1 10.5 6.9 5.0 2.6 3.7 5.3 1.4 PEJO 7.4 3.1 3.6 2.2 1.6 2.0 2.6 0.5 4.1 LPGS 10.4 4.8 6.1 3.1 2.1 2.3 3.8 0.6 1.0 UCOR 14.2 7.4 8.5 3.3 2.2 2.4 1.5 0.7 1.5 SL01 21.5 10.5 9.3 5.6 3.9 3.7 4.8 1.5 1.1 VBCA 16.1 6.6 10.2 4.2 2.8 4.0 4.4 1.4 4.9 MZSR 30.6 13.8 14.1 9.8 6.0 4.4 7.8 1.5 4.7 BCAR 12.1 4.7 7.8 4.3 2.5 5.0 4.6 0.7 5.8 LHCL 18.8 10.0 9.0 6.2 3.7 4.7 7.6 1.2 4.0 (b) Resultados obtenidos a partir de DFT Tabla 3.3.: Resultados de amplitud y fase de las componentes de diferencia de marea obtenidas a partir de las series de altura medidas, a través del método de análisis armónico (a) y a través de DFT (b) (sólo amplitudes). 43 En la Figura 3.12 se representan, sobre el mapa del area de estudio, en gráfico de barras, las amplitudes de las 5 principales componentes de diferencia de marea para cada sitio, calculadas por análisis armónico. Figura 3.12.: Amplitud de las principales componentes de diferencia de marea medidas en cada sitio 44 3.6. Comparación de resultados de amplitud medidos por análisis armónico y por DFT En la Figura 3.13 se graficó la comparación de amplitudes de las componentes de diferencia de marea identificadas en las series de altura medida y en las series modeladas a través de los métodos de análisis armónico (AA) y transformada discreta de Fourier (DFT). Se representaron en La Figura 3.13a los valores de amplitud obtenidos por un método en función del otro. La equivalencia entre métodos se ve representada entonces cuando los puntos representados se distribuyen cercanos a la recta de pendiente unitaria. La Figura 3.13b representa la comparación de las amplitudes de componentes medidas y de componentes modeladas, obtenidas a través del análisis armónico. En la figura 3.13b se comparan las amplitudes de componentes medidas y de componentes modeladas, obtenidas a través de la DFT. (a) Comparación amplitudes medidas DFT vs AA (b) Amplitudes medidas vs Modeladas (AA) (c) Amplitudes medidas vs Modeladas (DFT) Figura 3.13.: Comparación de amplitudes obtenidas por análisis armónico y DFT 45 3.7. Análisis de las constantes armónicas obtenidas. A partir de las constantes armónicas calculadas a través del análisis armónico se construyó la autopredicción correspondiente a la marea para cada serie de datos medida. Se compararon las autopredicciones con las series medidas utilizando el coeficiente de correlación de la misma forma que se utilizó en el ı́tem 3.4, el resultado se presenta en la Figura 3.14 (a) Correlación entre autopredicción y alturas medidas Sitio BCAR LHCL LPGS MZSR PEJO SL01 SRLP UCOR VBCA (b) Detalle de picos de correlación Lag -4 5 -1 -1 5 -1 4 -3 2 Correlación 0.48 0.59 0.46 0.59 0.37 0.63 0.50 0.61 0.48 (c) Valores máximos de correlación Figura 3.14.: Correlación entre las series de altura medidas y las autopredicciones de diferencia de marea obtenidas de las mismas a través del método de análisis armónico, en función del desfasaje entre las mismas, medido en minutos. Utilizando la misma metodologı́a se compararon las autopredicciones con las series de diferencias de marea modelada. El resultado se muestra en la Figura 3.15. Se observa que la correlación es mayor entre la autopredicción y el modelo que en los otros casos, debido a que en este caso se están comparando señales armónicas puras, sin incluir el ruido de la medición. 46 (a) Correlación entre autopredicción y ∆M area modelada Sitio BCAR LHCL LPGS MZSR PEJO SL01 SRLP UCOR VBCA (b) Detalle de picos de correlación Lag 10 -11 13 -8 -2 -4 -8 -7 -14 Correlación 0.88 0.87 0.95 0.93 0.84 0.94 0.87 0.91 0.84 (c) Valores máximos de correlación Figura 3.15.: Correlación entre las autopredicciones de diferencia de marea obtenidas de las series de altura a través del método de análisis armónico, y las series de diferencia de marea modeladas, en función del desfasaje entre las mismas, medido en minutos. La Figura 3.16 muestra las diferencias de fase entre las componentes medidas y modeladas para cada serie de diferencias de marea. Se notan mayores desfasajes en las componentes K2 y S1. Figura 3.16.: Diferencias de fase entre los datos medidos y modelados, por componente y sitio. 47 En la Figura 3.17a se grafican las amplitudes de las componentes identificadas en las series procesadas (lı́nea) y en las diferencias de marea modeladas (barras) para cada sitio y componente. Se observan, al igual que en las diferencias de fase, las mayores diferencias en las componentes K2, S1, y en menor medida en K1. La componente S1, a pesar de estar presente en los datos medidos, no se identifica en el análisis armónico del modelo. Se calculó el RMSmisfit (error absoluto), entre las componentes medidas y modeladas. Se representaron los resultados en la Figura 3.17b. Se graficaron además, en lı́nea, el RSS por componente (azul) y sitio (verde). Este parámetro da una estimación del error de cada componente para todos los sitios, y de cada sitio para todas las componentes. Amplitudes Modeladas Amplitudes Medidas 30 Amplitud [mm] 25 20 15 10 5 0 M2 K1 MZSR LHCL SL01 SRLP VBCA io t Si BCAR S2 O1 S1 Comp onente K2 P1 UCOR LPGS N2 Q1 PEJO (a) Comparación de Amplitudes obtenidas por análisis armónico 10 8 t io 6 Si 4 RMS Mis fit [mm] 14 12 RS S Co m po ne nt e RS S 2 0 S it io MZSR VBCA LHCL SRLP BCAR PEJO UCOR SL01 LPGS K2 S1 K1 P1 M2 Co m po ne S2 nt e O1 N2 Q1 (b) RMSmisfit para cada sitio y componente (en barras), y RSS según sitios (lı́nea verde) y según componentes (lı́nea azul). Calculados para las amplitudes procesadas con respecto de las modeladas. Figura 3.17.: Comparación de amplitudes (a) de las componentes de las diferencias de marea, y (b) resumen de errores, calculados por sitio y por componente. 48 Se confeccionaron mapas de curvas de igual fase de las diferencias de marea (lı́neas cotidales) para cada componente, aplicando el método de interpolación conocido como Kriging. En la Figura 3.18 se graficaron superpuestas las lineas cotidales corespondientes a los datos medidos y modelados. Figura 3.18.: Lı́neas cotidales por componente, en rojo las correspondientes a las series de diferencia de marea modeladas, en negro las correspondientes a las series de altura medida. Los valores están expresados en grados. 49 Se confeccionaron mapas de curvas de isoamplitud de las diferencias de marea para cada componente, aplicando el mismo método de interpolación que en los mapas de lı́neas cotidales. En la Figura 3.19 se graficaron superpuestas las lineas de isoamplitud corespondientes a los datos medidos y modelados. Figura 3.19.: Curvas de isoamplitud de marea por componente, en rojo las correspondientes a las series de diferencia de marea modeladas, en negro las correspondientes a las series de altura medida. Los valores están expresados en milı́metros. Se observa en las Figuras 3.18 y 3.19 que las componentes que presentan mayores diferencias entre los valores modelados y medidos son K1, K2 y S1. En menor medida se hallan diferencias en las amplitudes de la onda S2 en algunos puntos. 50 4. Discusión y conclusiones A partir del análisis de las series de altura obtenidas del procesamiento cientı́fico de datos GPS medidos por la red RAMSAC fue posible detectar y medir los efectos de la marea terrestre. En la Figura 3.1 donde se representa el histograma bidimensional de apartamiento de la altura procesada en cada sesión respecto de la coordenda a-priori y el error estimado por el software de procesamiento para cada sesión, se observa que en la zona donde hay mayor frecuencia de datos no coindiden los intervalos de ambas variables. Para valores de σ entre aproximadamente 0 cm y 3 cm el intervalo que corresponde a los apartamientos es de entre −5 cm y +5 cm. Dado que el σ representa al error de procesamiento es esperable que los valores sean menores a los apartamientos debido a que en estos ultimos está incluida la señal de marea. El indicio de la presencia de efecto de la marea sobre la altura medida utilizando un modelo teórico se observa en la Figura 3.9, donde se destaca que la mayor correlación entre las series de altura medidas y las de diferencias modeladas de marea se da cuando no existe corrimiento (lag) entre ambas series. Se observan picos de correlación para corrimientos que coinciden con el perı́odo de la onda de la marea semidiurna (∼ 12 hs). Por otra parte, se puede comparar la función de correlación entre las diferencias de marea (∆marea) medidas y modeladas para una estación con la función de autocorrelación de las mismas diferencias de marea modeladas. En caso de que la influencia de la marea en la serie medida sea idéntica a la modelada, la función de correlación entre ambas series debe ser equivalente a la autocorrelación de la serie modelada, aunque atenuada por la presencia de ruido. Esta comparación se realizó para la estación LHCL, en la Figura 4.1, mostrando que existe una influencia de la marea sobre las alturas medidas que es comparable a las diferencias de marea modeladas. 51 Figura 4.1.: Función de correlación entre la series de alturas medidas y modeladas de la estación LHCL junto con la función de autocorrelación de las alturas modeladas para dicha estación. En todas las estaciones se pudo detectar señales periódicas correspondientes a las frecuencias propias de las principales componentes de la marea. Para ello se utilizó la DFT sobre las funciones de autocorrelación de las series de alturas mdidas (Tabla 3.3b) y el análisis armónico por el método de los cuadrados mı́nimos (Tabla 3.3a). Se pudo comprobar, a través de la comparación con el modelo teórico, que las amplitudes detectadas se corresponden con el efecto esperable de la marea terrestre en las estaciones analizadas. A partir de las Figura 3.10, donde se graficó la distribución de los resultados de realizar 30 repeteciones del cálculo de los coeficientes A y B que surgen del análisis armónico, tomando en forma aleatoria la mitad de los datos medidos, y de la Figura 3.11, donde se representó la distribución de los resultados de realizar 100 repeticiones del cálculo de las amplitudes de las componentes de marea, se pudo comprobar que ambos métodos producen resultados satisfactorios a pesar de la presencia y distinta distribución de los datos faltantes en el muestreo. De la comparación de los resultados de amplitud para las distintas componentes de marea individualizadas en las series de altura a través de ambos métodos utilizados se verificó que los resultados producidos son compatibles (Figura 3.13a). Se debe tener en cuenta que los resultados de amplitud obtenidos a través de la DFT están afectados por el hecho de que la frecuencia fundamental no es un submultiplo de las frecuencias de las ondas componentes de la marea. Además, los resultados obtenidos a través de la DFT no son corregidos por modulación satelital (ver ı́tem 2.6.3). Éstas son posibles causas de diferencias entre ambos métodos, especialmente en las componentes de mayor amplitud (M2 por ejemplo). 52 La comparación de las constantes armónicas de diferencia de marea detectadas en las series de altura con las modeladas a través del programa solid muestra una coincidencia buena en general, aunque con desviaciones importantes en las componentes K1, K2 y S1. En la Figura 4.2 se repite la comparación de amplitudes modeladas y medidas obtenidas por análisis armónico, resaltando estas tres componentes. Figura 4.2.: Comparación de amplitudes medidas y modeladas de diferencias de marea en todas las estaciones, resaltando las componentes K1, K2 y S1, que presentan mayores desvı́os. A partir de las pendientes de las rectas de regresión mostradas en la Figura 4.2 se observa que considerando solo las seis componentes restantes se ajustan casi perfectamente las amplitudes medidas a las modeladas, mientras que considerando solo éstas tres el ajuste es pobre. En las cartas de lı́neas cotidales y de lı́neas de isoamplitud (Figuras 3.19 y 3.18) se observa correspondencia, entre componentes modeladas y calculadas, especialmente en las componentes M2, S2 y O1, cabiendo aclarar que M2 es la onda que mayores amplitudes presentó, y que estas tres están entre las cinco principales ondas en todos los sitios. Se detecta en las cartas también una correspondencia, aunque no tan fuerte, en las componentes P1, Q1 y N2, que presentando en general menores amplitudes que las tres antes mencionadas son mas susceptibles a la influencia del ruido propio de la medición. En las componentes K1, K2 y S1 se ven grandes diferencias, tanto en fases como en amplitudes, entre las series medidas y las series modeladas, probablemente ocasionadas por fenómenos de similares periodicidades que interfieren en la medición. 53 Para ilustrar la distribución de las diferencias de amplitud de las distintas componentes entre los datos medidos y las series modeladas se presenta en la Figura 4.3 graficado en escala de color el residuo de amplitud por componente (amplitud medida - amplitud modelada). Figura 4.3.: Residuales de amplitud para el area de trabajo. Se observan diferencias puntuales en algunas componentes (M2 por ejemplo) , y en forma generalizada en otras (K2 y S2 por ejemplo). Es importante destacar que las diferencias en las componentes K1 y K2 derivadas de mediciones GPS fueron detectadas en varios trabajos, y se plantea su origen en distintos fenómenos, como la coincidencia de los perı́odos orbitales de los satélites Navstar con el perı́odo de la onda K1 [Schenewerk et al., 2001], destacándose también que estas ondas pueden estar afectadas por la resonancia del núcleo lı́quido terrestre, cuyo efecto es difı́cil de modelar [Bogusz y Figurski, 2010]. 54 En cuanto a las diferencias encontradas en la onda S1, se plantea la hipótesis de que las mismas sean efecto de la acción de la ionosfera sobre la medición GPS, dado que la utilización de sesiones cortas aumenta la influencia de este fenómeno. Para buscar esta correspondencia se analizó el espectro de las mediciones horarias de TECv promedio de la zona (ver ı́tem 2.3.5) provistas en los mapas SAIM, a través de la DFT. En la Figura 4.4 se representa el espectro de TECv junto con los espectros de los residuos de las series de altura de PEJO y BCAR, calculados restando la serie de diferencia de marea modelada a la serie de altura medida. (a) Espectro de las mediciones de TECv obtenidas de los mapas SAIM, calculado a través de la DFT. (b) Espectro de los residuos de las series de altura de la estación PEJO. (c) Espectro de los residuos de las series de altura de la estación BCAR. Figura 4.4.: Comparación del espectro de las mediciones de TECv con los espectros de los residuos de las estaciones PEJO y BCAR. 55 Puede observarse que existen en el espectro de las mediciones de TECv componentes en frecuencias de marea, principalmente S1 (diurna solar) debido a que la actividad electrónica en la ionosfera esta ligada directamente a la influencia de los efectos magnéticos del Sol, siendo esta una probable causa de los altos residuos encontrados en la componente S1. Como posible herramienta para un mayor estudio de las diferencias encontradas se plantea realizar un procesamiento de sub-redes aisladas contiguas que formen un recorrido cerrado, donde se puedan evaluar las diferencias entre las coordenadas de partida y de llegada, diferencias que al corresponder a una misma estación no puedrán atribuirse a movimientos de la estación sino a influencias de factores externos que sesgan la medición. Como un trabajo futuro se propone analizar estos resultados para mejorar la precisión con la que obtienen las amplitudes y fases de las componentes de marea. Por otro lado, se propone utilizar una mayor cantidad de estaciones de la red RAMSAC, y experimentar con distintas longitudes de sesión, por ejemplo utilizando sesiones de 3 hs superpuestas [Bogusz y Figurski, 2010], logrando una resolución temporal de 1 h en las series de altura. Esto permitirá una mejor descripción del fenomeno de la marea terrestre en el territorio argentino y una visión completa del espectro de marea (hasta componentes de periodo = 2 hs). Finalmente, se propone estudiar la factibilidad de utilizar la técnica de procesamiento puntual preciso, que tal como indica [Sato et al., 2008] permite medir el efecto de la marea terrestre en forma absoluta. Se destaca que este procedimiento no fue utilizado en esta tesis debido a que está en etapa de desarrollo, y se ve afectado fuertemente por los fenómenos atmosféricos, teniendo que utilizar sesiones de hasta 8 hs para poder resolver la posición en forma correcta [Wang, 2013]. 56 5. Bibliografı́a [Agnew, 2007] Agnew, D. (2007). Earth tides. Treatise on Geophysics, 3(06):163–195. [Araszkiewicz et al., 2010] Araszkiewicz, A., Bogusz, J., Figurski, M., y Szafranek, K. (2010). Application of short-time gnss solutions to geodynamical studies. Acta Geodynamica et Geomaterialia, 7(3):295–302. [Baker y Bos, 2003] Baker, T. F. y Bos, M. S. (2003). Validating earth and ocean tide models using tidal gravity measurements. Geophysical Journal International, 152(2):468–485. [Beutler et al., 1994] Beutler, G., Mueller, L., y Neilan, R. (1994). The international gps service for geodynamics (igs): Development and start of official service on january 1, 1994. Bulletin Geodesique, 68:1. [Blewitt, 1989] Blewitt, G. (1989). Carrier phase ambiguity resolution for the global positioning system applied to geodetic baselines up to 2000 km. Journal of Geophysical Research: Solid Earth (1978–2012), 94(B8):10187–10203. [Bogusz y Figurski, 2010] Bogusz, J. y Figurski, M. (2010). Short-period information in gps time series. ARTIFICIAL SATELLITES, 45(3):119–128. [Bracewell, 1986] Bracewell, R. N. (1986). The Fourier transform and its applications, volume 31999. McGraw-Hill New York. [Brunini y Azpilicueta, 2009] Brunini, C. y Azpilicueta, F. J. (2009). Accuracy assessment of the gps-based slant total electron content. Journal of Geodesy, 83(8):773–785. [Burrus y Parks, 1991] Burrus, C. y Parks, T. W. (1991). DFT-FFT and Convolution Algorithms: theory and Implementation. John Wiley & Sons, Inc. [Cartwright y Edden, 1973] Cartwright, D. y Edden, A. C. (1973). Corrected tables of tidal harmonics. Geophysical Journal International, 33(3):253–264. [Cartwright y Melchior, 1999] Cartwright, D. E. y Melchior, P. (1999). Tides: a scientific history, volume 7. Cambridge Univ Press. 57 [Dehant et al., 1999] Dehant, V., Defraigne, P., y Wahr, J. (1999). Tides for a convective earth. Journal of Geophysical Research: Solid Earth (1978–2012), 104(B1):1035–1058. [Doodson, 1921] Doodson, A. T. (1921). The harmonic development of the tidegenerating potential. Proceedings of the Royal Society of London. Series A, 100(704):305–329. [Foreman et al., 2009] Foreman, M., Cherniawsky, J., y Ballantyne, V. (2009). Versatile harmonic tidal analysis: Improvements and applications. Journal of Atmospheric and Oceanic Technology, 26(4):806–817. [Foreman et al., 1977] Foreman, M. G. G. et al. (1977). Manual for tidal heights: analysis and prediction. Pacific Marine Science Report, 77. [Franco, 1982] Franco, A. d. S. (1982). Tides—fundamentals, analysis and prediction. Ocean Engineering, 9(4):407–408. [Ge et al., 2005] Ge, M., Gendt, G., Dick, G., y Zhang, F. (2005). Improving carrierphase ambiguity resolution in global gps network solutions. Journal of Geodesy, 79(13):103–110. [Giancoli y Teng, 2000] Giancoli, D. C. y Teng, X. (2000). Physics for scientists and engineers with modern physics. [Gurtner y Estery, 2007] Gurtner, W. y Estery, L. (2007). Rinex-the receiver independent exchange format-version 3.00. Astronomical Institute, University of Bern and UNAVCO, Bolulder, Colorado. [Harris, 1978] Harris, F. J. (1978). On the use of windows for harmonic analysis with the discrete fourier transform. Proceedings of the IEEE, 66(1):51–83. [Herring et al., 2010a] Herring, T., King, R., y McClusky, S. (2010a). GAMIT reference manual. Mass Inst. of Technol. [Herring et al., 2010b] Herring, T., King, R., y McClusky, S. (2010b). Introduction to GAMIT/GLOBK. Mass Inst. of Technol. [Hofmann-Wellenhof et al., 1993] Hofmann-Wellenhof, B., Lichtenegger, H., y Collins, J. (1993). Global Positioning System. Theory and Practice. Springer, Wien (Austria). [King et al., 2000] King, M., Nguyen, L. N., Coleman, R., y Morgan, P. (2000). Strategies for high precision processing of gps measurements with application to the amery ice shelf, east antarctica. GPS Solutions, 4(1):2–12. 58 [King et al., 2008] King, M. A., Watson, C. S., Penna, N. T., y Clarke, P. J. (2008). Subdaily signals in gps observations and their effect at semiannual and annual periods. Geophysical Research Letters, 35(3). [King et al., 1985] King, R., Masters, E., Rizos, C., Stolz, A., y Collins, J. (1985). Surveying with gps. [Laurı́a y Cimbaro, 1999] Laurı́a, E. y Cimbaro, S. (1999). Proyecto ramsac. Revista Cartográfica, Instituto Panamericano de Geografı́a e Historia, (68). [Lee Rodgers y Nicewander, 1988] Lee Rodgers, J. y Nicewander, W. A. (1988). Thirteen ways to look at the correlation coefficient. The American Statistician, 42(1):59– 66. [Love, 1909] Love, A. (1909). The yielding of the earth to disturbing forces. Proceedings of the Royal Society of London. Series A, 82(551):73–88. [Marquardt, 1963] Marquardt, D. W. (1963). An algorithm for least-squares estimation of nonlinear parameters. Journal of the Society for Industrial & Applied Mathematics, 11(2):431–441. [Mathews et al., 1995] Mathews, P., Buffett, B., y Shapiro, I. (1995). Love numbers for a rotating spheroidal earth:new definitions and numerical values. Geophysical research letters, 22(5):579–582. [McCarthy y Petit, 2004] McCarthy, D. y Petit, G. (2004). Iers conventions (2003), iers technical note no. 32. Verlag des Bund. f. Kartographie u. Geodäsie, Frankfurt am Main. [Melbourne et al., 2002] Melbourne, T. I., Webb, F. H., Stock, J. M., y Reigber, C. (2002). Rapid postseismic transients in subduction zones from continuous gps. Journal of Geophysical Research, 107(B10):2241. [Montenbruck y Eberhard, 2000] Montenbruck, O. y Eberhard, G. (2000). Satellite orbits: models, methods, and applications. Springer. [Montenbruck y Pfleger, 2000] Montenbruck, O. y Pfleger, T. (2000). Astronomy on the personal computer. Springer. [Munk y Cartwright, 1966] Munk, W. H. y Cartwright, D. E. (1966). Tidal spectroscopy and prediction. Philosophical Transactions for the Royal Society of London. Series A, Mathematical and Physical Sciences, pages 533–581. 59 [Pearson, 1920] Pearson, K. (1920). Notes on the history of correlation. Biometrika, 13(1):25–45. [Pérez y Granger, 2007] Pérez, F. y Granger, B. E. (2007). IPython: a system for interactive scientific computing. Computing in Science and Engineering, 9(3):21–29. [Pugh y Vassie, 1978] Pugh, D. y Vassie, J. (1978). Extreme sea levels from tide and surge probability. Coastal Engineering Proceedings, 1(16). [Pugh, 1996] Pugh, D. T. (1996). Tides, surges and mean sea-level (reprinted with corrections). John Wiley & Sons Ltd. [Remondi, 1985] Remondi, B. W. (1985). Global positioning system carrier phase: Description and use. Bulletin géodésique, 59(4):361–377. [Sato et al., 2008] Sato, T., Miura, S., Ohta, Y., Fujimoto, H., Sun, W., Larsen, C., Heavner, M., Kaufman, A., y Freymueller, J. (2008). Earth tides observed by gravity and gps in southeastern alaska. Journal of Geodynamics, 46(3):78–89. [Schenewerk et al., 2001] Schenewerk, M., Marshall, J., y Dillinger, W. (2001). Vertical ocean-loading deformations derived from a global gps network. Journal of the Geodetic Society of Japan, 47(1):237–242. [Schureman, 1994] Schureman, P. (1994). Manual of harmonic analysis and prediction of tides. US Department of Commerce, Coast and Geodetic Survey. [Shida y Matsuyama, 1912] Shida, T. y Matsuyama, M. (1912). Change of the plumb line referred to the axis of the earth as found from the results of the internazional latitude observations. Memoirs of the College of Science and Engineering, 4:277–284. [Smith, 1974] Smith, M. L. (1974). The scalar equations of infinitesimal elasticgravitational motion for a rotating, slightly elliptical earth. Geophysical Journal International, 37(3):491–526. [Stein, 1999] Stein, M. L. (1999). Interpolation of spatial data: some theory for kriging. Springer. [Teunissen, 1995] Teunissen, P. (1995). The least-squares ambiguity decorrelation adjustment: a method for fast gps integer ambiguity estimation. Journal of Geodesy, 70(1-2):65–82. [Teunissen, 1997] Teunissen, P. (1997). Some remarks on gps ambiguity resolution. Artificial Satellites, 32(3):119–130. 60 [Teunissen, 1998] Teunissen, P. J. (1998). Gps carrier phase ambiguity fixing concepts. In GPS for Geodesy, pages 319–388. Springer. [Teunissen et al., 1998] Teunissen, P. J., Odijk, D., y Joosten, P. (1998). A probabilistic evaluation of correct gps ambiguity resolution. In PROCEEDINGS OF ION GPS, volume 11, pages 1315–1324. INSTITUTE OF NAVIGATION. [Trupin y Wahr, 1990] Trupin, A. y Wahr, J. (1990). Spectroscopic analysis of global tide gauge sea level data. Geophysical Journal International, 100(3):441–453. [Tuttas, 2011] Tuttas, S. (2011). Joint gravimetric and geometric survey of geophysical signals: Feasibility study for the TERENO alpine and prealpine Ammer observatory. Institut für Astronomische und Physikalische Geodäsie (IAPG). [Wahr, 1981] Wahr, J. M. (1981). Body tides on an elliptical, rotating, elastic and oceanless earth. Geophysical Journal International, 64(3):677–703. [Wang, 2013] Wang, G. (2013). Millimeter-accuracy gps landslide monitoring using precise point positioning with single receiver phase ambiguity (ppp-srpa) resolution: a case study in puerto rico. Journal of Geodetic Science, 3(1):22–31. [Watson et al., 2006] Watson, C., Tregoning, P., y Coleman, R. (2006). Impact of solid earth tide models on gps coordinate and tropospheric time series. Geophysical Research Letters, 33(8):L08306. [Wiener, 1930] Wiener, N. (1930). Generalized harmonic analysis. Acta Mathematica, 55(1):117–258. [Xu, 2003] Xu, G. (2003). Gps theory, algorithms and applications. [Xu y Knudsen, 2000] Xu, G. y Knudsen, P. (2000). Earth tide effects on kinematic/static gps positioning in denmark and greenland. Physics and Chemistry of the Earth, Part A: Solid Earth and Geodesy, 25(4):409–414. 61 Anexos 62 A. Programas utilizados para el análisis de la series de altura. Para el análisis de las series de altura se programaron rutinas con el lenguaje de programación python 1 , utilizando principalmente las librerı́as numpy 2 para manejo de datos numéricos, pandas 3 para carga y manejo de series de tiempo, scipy 4 para el ajuste por mı́nimos cuadrados, y matplotlib 5 para la generación de las figuras que se incluyeron en el trabajo. El manejo y análisis de los datos se realizó a través del intérprete interactivo ipython 6 [Pérez y Granger, 2007], partiendo de una serie de rutinas que se programaron para el análisis de series de tiempo según se describe en la sección de metodologı́a. El código de estas rutinas se agrupó en tres archivos, que se presentan anexos, siendo importante destacar que las contenidas en el archivo vufabs.py están basadas en parte del paquete tidpack programado originalmente en FORTRAN por M. G. Foreman [Foreman et al., 1977]. A.1. 1 2 3 vufabs.py : Rutinas para el cálculo de f , v y u import numpy as np import pandas as pd import re 4 5 6 7 8 9 10 class const: # Clase para una componente armonica de la marea def __init__(self,KON,II,JJ,KK,LL,MM,NN,SEMI,NJ): # Carga los parametros de la componente principal, #NJ se mantiene para conservar la forma. self.name = KON 1 http://pandas.python.org/ http://www.numpy.org/ 3 http://pandas.pydata.org/ 4 http://scipy.org/ 5 http://matplotlib.org/ 6 http://ipython.org/ 2 63 11 12 13 self.doods = np.array([II,JJ,KK,LL,MM,NN]) self.phase = SEMI self.satelites = [] 14 15 16 17 18 def addsat(self,LDEL,MDEL,NDEL,PH,EEIR): # addsat Agrega un satelite (clase satelite) # a partir de sus parametros. self.satelites.append(satelite(LDEL,MDEL,NDEL,PH,EEIR)) 19 20 21 22 23 24 25 26 27 def mod(self,LAT,orbits): # mod devuelve la modulacion de una componente para determinados # parametros orbitales (orbits) vtot=np.sum(self.doods*orbits)+self.phase #modulacion principal #VDBL=II(K)*TAU+JJ(K)*S+KK(K)*H+LL(K)*P+MM(K)*ENP+NN(K)*PP+SEMI(K) #~ vv=frac(vtot) #~ iv = (np.int(vtot)/2)*2 vv = vtot 28 29 30 31 32 33 34 35 36 37 sumc=1. sums=0. for sat in self.satelites: # acrega la modulacion de c/satelite termc, terms = sat.modsat(LAT,orbits) sums+=terms sumc+=termc f=np.sqrt(sumc**2+sums**2) #SQRT(SUMC*SUMC+SUMS*SUMS) v=vv u=np.arctan2(sums,sumc)/(2.*np.pi) #ATAN2(SUMS,SUMC)/TWOPI 38 39 return f, v, u 40 41 42 43 def vel(self,dorbs): #Devuelve la velocidad de la onda para un momento en ciclos por hora return np.sum(self.doods * dorbs) / (365. * 24.) 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 class satelite: #Clase para cada componente satelite de una principal. def __init__(self,LDEL,MDEL,NDEL,PH,EEIR): # los primeros tres parametros son la variacion de los numeros # de Doodson con respecto a la principal self.doodd = np.array([0,0,0,LDEL,MDEL,NDEL]) # PH es la correccion de fase self.phased = PH # EEIR es la correccion de amplitud mas indicacion si se corrige # por latitud if isinstance(EEIR,basestring): self.ampd,self.latcorr = EEIR.split(’R’) self.ampd,self.latcorr = float(self.ampd), int(self.latcorr) else: self.ampd, self.latcorr = EEIR, 0 #Devuelva los componentes de modulacion de una onda satelite # termc(coseno) y tems(seno) def modsat(self,LAT,orbits): #orbis, np.array de parametros orbitales: tau,s,h,p,enp,pp SLAT = np.pi*LAT/180. if self.latcorr == 1: #correcciones por latitud 64 66 67 68 69 70 71 72 73 74 75 ampcor = self.ampd*0.36309*(1.-5.*SLAT*SLAT)/SLAT elif self.latcorr == 2: ampcor = self.ampd*2.59808*SLAT else: ampcor = self.ampd uutot=np.sum(self.doodd * orbits)+self.phased uu=frac(uutot) #deja la fraccion de ciclo. termc=ampcor*np.cos(uu*2*np.pi) #un solo termino de SUMC terms=ampcor*np.sin(uu*2*np.pi) #un solo termino de SUMS return termc, terms 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 class shallowconst: #clase para las componentes de aguas someras. def __init__(self,KON,*args): self.name = KON # contri es un listado de ondas y coeficientre con los que # contribuye cada una self.contri = zip(*[iter(args)]*2) #recibe list [onda, coef] *n def mod(self,LAT,orbits): f = 1.0 v = 0.0 u = 0.0 for onda in self.contri: #acumula las contribuciones de todas f1, v1, u1 = onda[0].mod(LAT,orbits) f *= f1**np.abs(onda[1]) v += v1*onda[1] u += u1*onda[1] return f, v, u #calcula la velocidad de la onda. def vel(self,dorbs): omega = 0. for onda in self.contri: omega += onda[0].vel(dorbs)*onda[1] return omega 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 class ConstPACK: #~Una clase para toda la informacion de las componentes. #~ Lectura de Tide5n (modificado) def __init__(self,archivo): lector = open(archivo) self.componentes = {} kon = ’vacio’ shflag=0 for linea in lector.readlines(): konp = kon if re.match(’CORTEE’,linea): # fin de componentes puras, pasa a componentes de Aguas # someras. shflag=1 elif shflag == 0: kon, resto = linea.split(None,1) cort=spltnum(resto) if kon != konp: #si el nombre es nuevo es nueva componente, carga self.componentes[kon] = const(kon,*cort) 65 else: 121 #sino es una linea de satelite for sat in zip(*[iter(cort)]*5): #cada linea de satelites reshape a n*5, y #luego los carga self.componentes[kon].addsat(*sat) 122 123 124 125 126 127 else: #Componentes de agua somera kon, basura, resto = linea.split(None,2) cort=spltnum(resto) cort.reverse() #~ print cort for i in range(len(cort)): if isinstance(cort[i], basestring): cort[i] = self.componentes[cort[i]] #~ print cort self.componentes[kon] = shallowconst(kon,*cort) 128 129 130 131 132 133 134 135 136 137 138 lector.close() 139 140 141 142 143 144 145 #devuelve F,v y u para una componente, el tiempo lo recibe en # horas desde 1900-01-01 00:00-Z0 def facts(self,hr,kon,lat): d1 = (hr/24.)+0.5 #las efemerides necesitan dias desde 1900 0.5 orbs, dorbs = astr(d1) return self.componentes[kon].mod(lat,orbs) 146 147 148 149 150 151 152 #devuelve w en c/h para una componente, el tiempo lo recibe en # horas desde 1900-01-01 00:00-Z0 def omega(self,hr,kon): d1 = (hr/24.)+0.5 #las efemerides necesitan dias desde 1900 0.5 orbs, dorbs = astr(d1) return self.componentes[kon].vel(dorbs) 153 154 155 156 157 158 159 160 161 162 163 164 165 # devuelve los f,v y u pero en un array para un array de horas def factsarr(self,hrs,kons,lat): f = pd.DataFrame(index=hrs,columns=kons) v = f.copy() u = f.copy() for hora in hrs: d1 = (hora/24.)+0.5 #las efemerides usan h desde 1900 0.5 orbs, dorbs = astr(d1) for kon in kons: f.ix[hora][kon], v.ix[hora][kon], u.ix[hora][kon] = \ self.componentes[kon].mod(lat,orbs) return f.astype(float), v.astype(float), u.astype(float) 166 167 168 169 170 171 172 173 174 175 #devuelve para un array de horas valores de un polinomio que ajusta # a la serie de f,v y u, funciona bien hasta 3 a~ nos de largo seguro. def factspol(self,hrs,kons,lat): f, v, u = self.factsarr(np.linspace( \ np.min(hrs),np.max(hrs),600).astype(int),kons,lat) pf, pv, pu = [], [], [] #~ Se hacen listas para que conserven el orden y no se necesita #~ llamarlas sueltas, asique dict. no aportaria nada. for kon in f: 66 176 177 178 179 pf.append(np.poly1d(np.polyfit(f.index,f[kon],6))) pv.append(np.poly1d(np.polyfit(v.index,v[kon],6))) pu.append(np.poly1d(np.polyfit(u.index,u[kon],6))) return pf, pv, pu 180 181 182 183 184 #~ def dint(a): #~ #Este funcion trunca, tiene el nombre por compatibilidad con FORTRAN #~ return np.trunc() 185 186 187 def frac(a): return a - np.trunc(a) 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 def astr(d1): # las efemerides necesitan dias desde 1900 0.5 # this subroutine calculates the following five ephermides # of the sun and moon # tau = lunar time # h = mean longitude of the sum # pp = mean longitude of the solar perigee # s = mean longitude of the moon # p = mean longitude of the lunar perigee # enp = negative of the longitude of the mean ascending node # and their rates of change. # Units for the ephermides are cycles and for their derivatives # are cycles/365 days # The formulae for calculating this ephermides were taken from # pages 98 and 107 of the Explanatory Supplement to the # Astronomical Ephermeris and the American Ephermis and # Nautical Almanac (1961) ####################### 10-2013 modificado ############################# #~ agregado, calculo de tau, calculo como np.array, y devuelve v y u #~ enteros sin truncar, para poder interpolar despues d2=d1*1.e-4 f=360.e0 f2=f/365.e0 h=279.696678e0+.9856473354e0*d1+2.267e-05*d2*d2 pp=281.220833e0+4.70684e-05*d1+3.39e-05*d2*d2+7e-08*d2**3 s=270.434164e0+13.1763965268e0*d1-8.5e-05*d2*d2+3.9e-08*d2**3 p=334.329556e0+.1114040803e0*d1-7.739e-04*d2*d2-2.6e-07*d2**3 enp=-259.183275e0+.0529539222e0*d1-1.557e-04*d2*d2-5e-08*d2**3 orbits = np.array([s,h,p,enp,pp])/f 218 219 220 221 222 223 224 dh=.9856473354e0+2.e-8*.00002267e0*d1 dpp=.0000470684e0+2.e-8*.0000339e0*d1+3.e-12*.00000007e0*d1**2 ds=13.1763965268e0-2.e-8*.000085e0*d1+3.e-12*.000000039e0*d1**2 dp=.1114040803e0-2.e-8*.0007739e0*d1-3.e-12*.00000026e0*d1**2 dnp=+.0529539222e0-2.e-8*.0001557e0*d1-3.e-12*.00000005e0*d1**2 dorbits = np.array([ds,dh,dp,dnp,dpp])/f2 225 226 227 228 229 230 d1fr=d1-0.5 #~ para calcular TAU, se usa d1, pero cuenta #~ desde mediodia de 1899-31-12 tau=d1fr+orbits[1]-orbits[0] #d1fr+h-s dtau=365.+dorbits[1]-dorbits[0] 67 orbits = np.insert(orbits,0,tau) dorbits = np.insert(dorbits,0,dtau) return orbits, dorbits 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 def num(st): # Cambia el tipo de dato a una string, Int si se puede, sino Float y si # fallan ambas devuelve la string talcual. try: return int(st) except ValueError: try: return float(st) except ValueError: return st def spltnum(st): # Corta una string en numeros y los devuelve en lista, pero con el tipo # de datos que corresponde (int, float o string) splitted = st.split() for i in range(len(splitted)): splitted[i] = num(splitted[i]) return splitted A.2. 1 2 harmonic.py : Rutinas para análisis armónico. from vufabs import * from scipy.optimize import curve_fit, minimize 3 4 5 6 7 def a_horas(tiempo): #pasa un tiempo datetime64 de numpy a numero de horas desde 1900.0 return (tiempo - np.datetime64(’1900-01-01T00:00:00Z’)) \ / np.timedelta64(1, ’h’) 8 9 10 11 12 13 14 def onda_marea(ondas,hind,lat,pack,metodo=’comp’):#hind,lat,pack): # Funcion generadora de funciones "onda", cada una a modelar, en la # definicion se especifica ondas, latitud, un intervalo o serie en # horas desde 1900-0.0, y un objeto ConstPack para cargar la informacion pf, pv, pu = pack.factspol(hind,ondas,lat) pvu = [a + b for a, b in zip(pv, pu)] # suma polinomios 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ########################### PARA MODULACION DIRECTA ################ #~ f, v, u = pack.factsarr(hind,ondas,lat) # #~ f = f # #~ vu = v+u # def onda(hrs,*args): # funcion de onda de marea los argumentos son: # (nivel medio, tendencia lineal, a para todas las componentes, # b para todas las componentes) trend = args[1] n=len(ondas) nmed = args[0] a = args[2:n+2] b = args[n+2:n*2+2] 68 29 30 31 32 #aca evalua pv y pvu para los valores de indice ###################### con Modulacion ########################## #~ arg=vu.ix[hrs].values*2.*np.pi # Modulacion directa #~ fs=f.ix[hrs].values 33 34 35 36 37 38 39 40 41 42 43 ########## Modulacion con polinomios ######## arg=[] # f=[] # for poly in pvu: # arg.append(poly(hrs)) for poly in pf: # f.append(poly(hrs)) arg=((np.array(arg).transpose())#%1 # )*2*np.pi fs=np.array(f).transpose() # # # # 44 45 46 47 48 49 50 51 52 53 if metodo == ’sep’: # en lugar de a y b a es fase y b amplitud return nmed + trend * (hrs-hrs[len(hrs)/2]) + \ np.sum(fs * np.abs(b) * np.cos(arg+a), axis=1) #np.abs para evitar amplitudes negativas cuando ajusta. ##################### por componentes ########################## else: # por defecto a y b son componentes seno y coseno. return nmed + trend * (hrs-hrs[len(hrs)/2]) + \ np.sum(fs* a* np.sin(arg) + fs* b* np.cos(arg), axis=1) 54 55 56 57 58 59 60 61 62 63 64 65 66 67 ##################### Sin Modulacion ########################### #~ arg=[] # #~ for poly in pv: # #~ arg.append(poly(hrs)) #~ arg=((np.array(arg).transpose())#%1 # #~ )*2*np.pi #~ if metodo == ’sep’: # #~ return nmed + trend * (hrs-hrs[len(hrs)/2]) + \ # #~ np.sum(b * np.sin(arg+a), axis=1) ##################### por componentes ########################## #~ else: # #~ return nmed + trend * (hrs-hrs[len(hrs)/2]) + \ # #~ np.sum(a * np.sin(arg) + b * np.cos(arg)) 68 69 return onda 70 71 72 73 74 75 76 77 78 79 80 81 82 83 class marea_an: # clase con herramientas de analisis, se crea con una serie de alturas # y una latitud y un objeto ConstPACK def __init__(self,serie,lat,pack): self.pack = pack self.lat = lat self.index = a_horas(serie.index.values) self.ini, self.end = self.index[0], self.index[1] try: # Si la serie tiene dos columnas asumo que la segunda es el sigma self.serie = serie.iloc[:,0] self.sigma = serie.iloc[:,1] except ValueError: 69 # # # # 84 85 86 # si no, el sigma se pone a todos 1, todos pesos equivalentes self.serie = serie self.sigma = 1 87 88 89 90 91 92 93 94 95 96 97 98 99 100 def armfit(self,ondas,p0=’’,metodo=’comp’): #analisis armonico, se pasa al objeto inicializado la lista de ondas #y eventualmente el vector de valores iniciales p0 onda = onda_marea(ondas,self.index,self.lat \ ,self.pack,metodo=metodo) # crea la onda a la que se ajusta a = self.serie.values ind = self.index y = a[~np.isnan(a)] #elimina valores nulos x = ind[~np.isnan(a)] if isinstance(p0,basestring): p0= np.concatenate(([self.serie.mean(),0.], # NIV MED, TEND np.ones(len(ondas))*0.1, # a / Fases np.ones(len(ondas))*0.1)) # b / amplitudes 101 102 103 104 105 106 107 108 109 if isinstance(self.sigma, np.ndarray): # hace el ajuste con pesos si sigma es un array. sig = self.sigma.values sig = sig[~np.isnan(a)] popt, pcov = curve_fit(onda, x, y, p0=p0, sigma=sig) else: # Caso contrario ajusta sin pesos. popt, pcov = curve_fit(onda, x, y, p0=p0) 110 111 112 113 114 115 #almacena las ondas que uso, la funcion de onda y las constantes #armonicas para poder analizar y hacer la autoprediccion self.kons = ondas self.armconst = popt self.func_onda = onda 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 terms = popt[:2] comps = popt[2:] comps = comps.reshape(2,len(comps)/2) #### Por separado #### if metodo == ’sep’: comps = pd.DataFrame( \ {’fases’+self.serie.name[:4]:((comps[0]+1.)%1.)*360., \ ’amps’+self.serie.name[:4]:comps[1]}, index=ondas) #### Por Componentes #### else: amps = np.sqrt(comps[0] ** 2. + comps[1] ** 2.) fases = ((np.arctan2(comps[0],comps[1]) \ / (2*np.pi) + 1) % 1) * 360. comps = pd.DataFrame({’fases’+self.serie.name[:4]:fases, \ ’amps’+self.serie.name[:4]:amps}, index=ondas) 132 133 return terms, np.abs(comps) 134 135 136 137 138 def autop(self,hrs): # crea la autoprediccion, usando la funcion de onda y las # componentes armonicas que se le pasaron return self.func_onda(hrs,*self.armconst) 70 A.3. fft pic tlkt3.py : Rutinas para el cálculo de amplitudes mediante la DFT de la función de autocorrelación. 1 2 import pandas as pd import numpy as np 3 4 5 def nonan(a): return a[~np.isnan(a)] 6 7 8 # un filtro media movil con ventana variable para filtrar los picos # antes de comparar si se quieren eliminar algo de Ruido. 9 10 11 12 13 14 15 16 17 18 def fil_std2(ar, sig, win=400): # Filtro de Varianza Movil #~ niv_med = ar.mean() ar2 = pd.stats.moments.rolling_std(ar, win, center=True, min_periods=win/4) # Varianza Movil ar2 = pd.stats.moments.rolling_mean(ar2, win/4 , center=True, min_periods=1) # Suaviza la varianza ar2 = (ar2.fillna(method=’pad’)).fillna(method=’bfill’) # Completa el final de la curva-filtro ar2 = ar2 * sig # gerena la linea de corte a x sigma 19 20 21 ar_co = ar.copy() ar_co[ np.logical_or(ar_co > ar2, ar_co < -ar2) ] = np.nan 22 23 return ar_co #+ niv_med 24 25 26 27 28 def det_pic(alts,hrs,pack,win=0,desvs=2, corte=0.00001, nom=’’, force=[]): # Funcion de deteccion de picos donde cambia de signo la derivada, # y compara con las ws de marea. 29 30 31 32 33 #Filtra si se especifica ventana. if win != 0: altfil = fil_std2(fil_std2(alts,desvs+1,win=win),desvs,win=win) alts = alts[np.isnan(altfil)] 34 35 36 37 38 # crea el marcador, con 1 en los valores que x_i-1 < x_i > x_i+1 c = np.concatenate(([0,0],alts.values,[0,0]),) ant = c[1:-1] - c[:-2] sig = c[1:-1] - c[2:] 39 40 41 42 marc = (ant / np.abs(ant) + sig / np.abs(sig))/2 marc[marc < 0.] = 0 marc = marc[1:-1] 43 44 45 picos = alts[marc==1] picos = picos[picos > corte] 46 47 48 #deja solamente diurnos y Semi picos = picos[picos.index > 10] 71 49 picos = picos[picos.index < 40] 50 51 52 53 54 55 56 57 58 59 60 #crea df con todas las velocidades en grados ws=[] if len(force) == 0: b = pack.componentes.keys() else: b = force for i in b: ws.append(pack.omega(hrs,i)) wsdf = pd.DataFrame({’omega’:ws}, index=b) wsdf = wsdf*360 61 62 63 64 65 66 67 68 69 onda, velocidad, diferencia, amplitud = [],[],[],[] # asigna a cada pico detectado la frecuencia que le corresponde for i in range(len(picos)): difs = np.abs(wsdf-picos.index[i]) onda.append(difs.idxmin().values[0]) velocidad.append(wsdf.ix[difs.idxmin()].values[0,0]) diferencia.append(difs.min().values[0]) amplitud.append(picos[i]) 70 71 72 73 result= pd.DataFrame({’velocidad’+nom:velocidad, # transforma el ’diferencia’+nom:diferencia, # resultado en un ’amplitud’+nom:amplitud}, index=onda) # Dataframe 74 75 76 77 78 result.sort(columns=’diferencia’+nom,ascending=True,inplace=True) #toma El pico que mas cerca esta de la frecuencia correspondiente picos = result.groupby(result.index).first().sort( columns=’amplitud’+nom, ascending=False) 79 80 81 82 83 84 85 86 87 88 89 90 if len(force) != 0: #si se forzaron componentes for i in force: if i not in picos.index.values: #si el pico no existe interpola la fft a la frecuencia pedida wmega = pack.omega(hrs,i)*360 temp = alts.append(pd.Series(np.nan, index=[wmega])).sort_index() temp = temp.interpolate(method=’index’) picos = picos.append(pd.DataFrame( {’amplitud’+nom : temp[wmega]}, index=[i])) print nom,i,": forzado ", temp[wmega] 91 92 93 return picos #~ resuelve los picos, si filtro filtra la fft, sino con umbral. 94 95 96 def a_horas(tiempo): return (tiempo - np.datetime64(’1900-01-01T00:00:00Z’)) / np.timedelta64(1, ’h’) 97 98 99 100 101 102 103 class fft_serie: # Clase para el analisis con DFT, carga una serie de tiempo/altura, y se # pasa un objeto pack con informacion de ondas. autocorr calcula la # autocorrelacion de una serie, fft calcula la fft, si es autcor=True # calcula primero la autocorrelacion si no esta calculada, y de ahi saca # la FFT Picos llama al detector de picos para devolver un df con la 72 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 # altura de los picos detectados. def __init__(self,serie,lat,pack): self.serie = serie[ serie.first_valid_index():serie.last_valid_index()] self.lat = lat self.pack = pack self.hora = a_horas(serie.index.values[len(serie)/2]) self.corr = 0. def autocorr(self,paso=2): #~ Calcula la autocorrelacion, y la devuelve, paso es cantidad #~ de horas del intervalo de muestreo. corr = pd.Series(0., index=np.arange(-len(self.serie)+1, len(self.serie),1)) for i in corr.index: if i < 0: emp = self.serie[:i].values emp2 = self.serie[-i:].values elif i > 0: emp = self.serie[i:].values emp2 = self.serie[:-i].values elif i == 0: emp = self.serie[:].values emp2 = emp 127 emp3 = (emp-emp.mean()) * (emp2 - emp2.mean()) corr[i] = emp3.mean() 128 129 130 131 132 corr.index = corr.index*paso return corr 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 def fft(self, autcor=False, paso=2.): # Calcula la fft, si autcor=true entonces de la # autocorrelacion, si no hay la genera. Fs = 360/paso if autcor: # DFT de la muestra a partir de la autocorrelacion if ~isinstance(self.corr, pd.Series): self.corr = self.autocorr(paso=paso) n = len(self.corr) n2 = len(nonan(self.serie)) MUE = self.corr*(np.hanning(n) ** 2) cofft = np.fft.hfft(MUE[n/2:]) cofft = cofft[range(n/2)] cofSQ = np.sqrt(np.abs(cofft)*n)*2.0*2.0/(n) #el n "desnormaliza el periodograma", pasa a fft con la raiz # el primer 2 compensa el hann, afuera 2/long serie # normaliza la FFT frq = np.arange(n) T = (n) / Fs frq = frq/T frq = frq[range(n/2)] Y = cofSQ[range(n/2)] 156 157 158 else: # Calcula la fft de la muestra como se la pasa 73 159 160 161 162 163 164 165 166 167 168 serie = self.serie serie[np.isnan(serie)] = serie.mean() n = len(serie) # length of the signal k = np.arange(n) T = n/Fs frq = k/T # two sides frequency range frq = frq[range(n/2)] # one side frequency range Y = np.fft.fft(serie*np.hanning(n))*2/(n/2) # fft computing and normalization Y = np.absolute(Y[range(n/2)]) 169 170 171 self.fftv = pd.Series(Y, index=frq) return pd.Series(Y, index=frq) 172 173 174 175 176 177 def picos(self, **kwargs): # metodo de deteccion de picos, llama a la funcion det_pic con los # parametros del objeto de clase fft_serie. return det_pic(self.fftv, self.hora, self.pack, **kwargs) #def det_pic(alts,hrs,pack,win=0,desvs=2,corte=0.0001): 74 B. Ejemplos de archivos utilizados en el trabajo B.1. Archivos RINEX - Encabezado A continuación se incluye a modo de ejemplo el encabezado del archivo RINEX correspondiente a un dı́a de observación de la estación LPGS. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2.11 OBSERVATION DATA G (GPS) RINEX VERSION / TYPE teqc 2009Mar23 20100613 03:07:48UTCPGM / RUN BY / DATE MSXP|IAx86-PII|bcc32 5.0|MSWin95->XP|486/DX+ COMMENT teqc 2008Oct2 Luciano Pedro Oscar 20100613 01:17:22UTCCOMMENT Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT teqc 2008Oct2 Luciano Pedro Oscar 20100613 01:15:48UTCCOMMENT BIT 2 OF LLI FLAGS DATA COLLECTED UNDER A/S CONDITION COMMENT LPGS MARKER NAME 41510M001 MARKER NUMBER L. Mendoza GFZ/FCAG-UNLP OBSERVER / AGENCY 1118 AOA BENCHMARK ACT 3.3.32.3N REC # / TYPE / VERS 367 AOAD/M_T NONE ANT # / TYPE 2780102.9896 -4437418.9149 -3629404.5253 APPROX POSITION XYZ 0.0460 0.0000 0.0000 ANTENNA: DELTA H/E/N 1 1 WAVELENGTH FACT L1/2 7 L1 L2 C1 P2 P1 S1 S2 # / TYPES OF OBSERV 15.0000 INTERVAL P1 = P1 TurboRogue; = Y1 Benchmark COMMENT L1 = L1(P1) TurboRogue; = L1(Y1) Benchmark COMMENT P2 = P2 TurboRogue; = Y2 Benchmark COMMENT L2 = L2(P2) TurboRogue; = L2(Y2) Benchmark COMMENT SNR is mapped to RINEX snr flag value [0-9] COMMENT L1 & L2: min(max(int(snr_dBHz/6), 0), 9) COMMENT Forced Modulo Decimation to 5 seconds COMMENT Forced Modulo Decimation to 15 seconds COMMENT 2010 6 12 0 0 0.0000000 GPS TIME OF FIRST OBS \END OF HEADER Cabe aclarar que en cada archivo RINEX se escribe la información de antena (ANT # / TYPE), y la posición aproximada de la estación (APROX POSITION XYZ), y que en 75 caso de generar los archivos de información de antena y de coordenadas a-priori a partir de estos encabezados se obtiene una entrada de información por cada dı́a procesado, siendo en la mayorı́a de los casos la misma información duplicada. B.2. Archivos SiteLog de IGS Los archivos .log son formularios que contienen la información de una estación, incluyendo la forma de materialización, coordenadas aproximadas, tipo de receptor y antena, indicando perı́odos de servicio en caso de que halla habido cambios. A partir de estos formularios se generaron los archivos de información de antenas para el procesamiento con GAMIT. 1 LPGS Site Information Form International GPS Service See Instructions at: ftp://igscb.jpl.nasa.gov/pub/station/general/sitelog_instr.txt 2 3 4 5 6 7 [...] 8 9 2. Site Location Information 10 City or Town : La Plata State or Province : Buenos Aires Country : Argentina Tectonic Plate : SOUTH AMERICAN Approximate Position (ITRF) X coordinate (m) : 2780102.9896 Y coordinate (m) : -4437418.9149 Z coordinate (m) : -3629404.5253 Latitude (N is +) : -345424.28 Longitude (E is +) : -0575556.28 Elevation (m,ellips.) : 29.9 Additional Information : 11 12 13 14 15 16 17 18 19 20 21 22 23 24 3. GNSS Receiver Information 3.1 Receiver Type Satellite System Serial Number Firmware Version Elevation Cutoff Setting Date Installed Date Removed Temperature Stabiliz. Additional Information 25 26 27 28 29 30 31 32 33 34 : : : : : : : : : ROGUE SNR-8000 GPS 285 3.2 1995-05-20 1999-09-09T13:00Z none 76 35 36 [...] 37 38 3.6 39 40 41 42 43 44 45 46 Receiver Type Satellite System Serial Number Firmware Version Elevation Cutoff Setting Date Installed Date Removed Temperature Stabiliz. Additional Information : : : : : : : : : JAVAD TRE_G3TH DELTA GPS+GLO+GAL 218 3.4.4b0 0 2012-10-04T12:00Z : : : : : : : : : : : : : : JAV_RINGANT_G3T NONE 344 BAM 0.0690 0.0000 0.0000 0 deg NONE 47 48 4. GNSS Antenna Information 49 50 [...] 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 4.4 Antenna Type Serial Number Antenna Reference Point Marker->ARP Up Ecc. (m) Marker->ARP North Ecc(m) Marker->ARP East Ecc(m) Alignment from True N Antenna Radome Type Radome Serial Number Antenna Cable Type Antenna Cable Length Date Installed Date Removed Additional Information 2012-10-04T12:00Z 66 77 B.3. Archivo .prt de salida de Glred En los archivos .prt que constituyen el resultado del procesamiento, cada sesión procesada resulta en un bloque de texto como el que sigue para cada estación procesada: 1 2 3 4 5 6 7 8 9 10 Int . SRLP_GPS 2224229.69240 -4617565.96170 -3783897.72410 -0.00573 -0.00697 -0.00152 2011.121 13. SRLP_GPS X coordinate ( m ) 2224229.69127 -0.00754 2.88686 14. SRLP_GPS Y coordinate ( m ) -4617565.41926 0.53465 2.13634 15. SRLP_GPS Z coordinate ( m ) -3783897.64461 0.07779 2.48143 Unc . SRLP_GPS 2224229.69127 -4617565.41926 -3783897.64461 -0.00573 -0.00697 -0.00152 2010.001 2.8869 2.1363 2.4814 Apr . SRLP_GPS 2224229.69127 -4617565.41926 -3783897.64461 -0.00573 -0.00697 -0.00152 2010.001 2.8869 2.1363 2.4814 Loc . SRLP_GPS N coordinate ( m ) -4076686.87387 -0.22545 3.08150 Loc . SRLP_GPS E coordinate ( m ) 264 21103.7 2774 0.22523 3.08026 Loc . SRLP_GPS U coordinate ( m ) 223.40221 -0.43635 0.26791 NE , NU , EU position correlations -0.0000 0.0173 -0.0180 Las coordenadas finales de la estación están marcadas con la etiqueta “Loc.”, siendo en nuestro caso sólo utilizada la altura elipsoidal (U). B.4. Archivos de series de altura utilizados para el análisis Las series de altura procesadas se almacenaron en archivos separados por comas como el del ejemplo que sigue, siendo luego utilizados por las rutinas programadas en el lenguaje de programación python a través de la librerı́a de manejo de datos pandas. 1 2 3 4 5 6 7 Tiempo 2010/01/02 2010/01/03 2010/01/03 2010/01/03 2010/01/03 2010/01/03 , Altura , Ajuste, Sigma 22:59,404.57504,0.03781,0.02286 00:59,404.52825,-0.00899,0.01957 02:59,404.52254,-0.01472,0.01945 04:59,404.48066,-0.05663,0.01962 06:59,404.50925,-0.02807,0.02003 08:59,404.54149,0.00423,0.02646 78