This repository has been archived by the owner on Nov 18, 2023. It is now read-only.
/
Tesis.Rmd
2591 lines (2144 loc) · 184 KB
/
Tesis.Rmd
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
title: Estudio de los mecanismos físicos asociados con el patrón de onda 3 de la circulación atmosférica del HS
author: "Elio Campitelli"
date: ''
output:
pdf_document:
citation_package: natbib
fig_height: 8
fig_width: 8
includes:
in_header: header.tex
keep_tex: yes
latex_engine: xelatex
number_sections: yes
csl: Papers/mi-meteorologica3.csl
bibliography:
- Papers/Biblio.bib
- Papers/packages.bib
documentclass: book
editor_options:
chunk_output_type: console
geometry: inner = 3cm, outer = 2.5cm, top = 2.5cm, bottom = 2.5cm
lang: es-AR
link-citations: yes
classoption: a4paper,12pt,oneside
params:
draft: no
biblio-style: apalike-es
---
<!-- knit: (function(file, encoding, ...) { -->
<!-- rmarkdown::render(file, encoding = encoding, -->
<!-- output_dir = "docs/")}) -->
```{r setup, include=FALSE}
# Notification
start.time <- unclass(Sys.time())
min.time <- 10
knit_doc <- knitr::knit_hooks$get("document")
knitr::knit_hooks$set(document = function(x) {
took <- unclass(Sys.time()) - start.time
if (unclass(Sys.time()) - start.time >= min.time) {
notify("Done knitting!",
paste0("Took ", round(took), " seconds"),
time = 5)
}
knit_doc(x)
})
knitr::opts_chunk$set(tidy = FALSE,
echo = FALSE,
cache = TRUE,
force.cap = TRUE,
fig.class = "pagewidth",
fig.ncol = 1,
fig.publish = TRUE,
cache.lazy = TRUE,
cache.path = "cache/tesis/",
fig.path = "fig/tesis/",
out.extra = " ",
warning = FALSE,
message = FALSE)
library(tufte)
library(data.table)
library(ggplot2)
library(dplyr)
library(metR)
library(WaveletComp)
library(patchwork)
library(circular)
# knitr::write_bib(c("base", "data.table", "ggplot2", "WaveletComp", "metR", "circular"),
# file = "Papers/packages.bib")
source("scripts/helperfun.R")
# Plot thingys
data.world <- BuildMap(res = 1, smooth = 1)
map.world <- geom_map2(data.world)
map.SH <- geom_map2(data.world[lat %between% c(-90, 0)])
options(OutDec = ",")
subset_data <- list(lat = c(-90, 0),
time = lubridate::as_datetime(c("1985-01-01",
"2014-12-01")))
pres <- ReadNetCDF("DATA/NCEP Reanalysis/pres.mon.mean.nc",
subset = subset_data)
pres.mean <- pres[, .(pres = median(pres)), by = lat]
pres.mean <- rbind(data.table(lat = 0.0, pres = Inf),
pres.mean,
data.table(lat = -90.0, pres = Inf))
surface <- geom_polygon(data = pres.mean, aes(y = pres), fill = "white",
alpha = 0.9, color = "gray30", size = 0.5)
pres <- pres[, .(pres = mean(pres)), by = .(lon, lat)]
theme_elio <- theme_minimal(base_size = 11) +
theme(legend.position = "bottom", legend.box = "vertical",
panel.spacing.y = unit(5, "mm"),
panel.spacing.x = unit(5, "mm"),
legend.spacing = unit(2, "mm"),
plot.margin = grid::unit(rep(3, 4), "mm"),
legend.title = element_blank(),
legend.box.spacing = unit(3, "mm"),
legend.margin = margin(t = -5),
panel.grid = element_line(color = "gray50", size = 0.2, linetype = 3),
panel.ontop = TRUE)
theme_set(theme_elio)
# For vertical cross-sections
coord_latlev <- function(ratio = 20, ...) coord_fixed(ratio = ratio, ...)
coord_lonlev <- function(ratio = 20*4, ...) coord_fixed(ratio = ratio, ...)
## Hooks.
## Force captions
plot_hook <- knitr::knit_hooks$get("plot")
knitr::knit_hooks$set(
plot = function(x, options) {
if (options$force.cap == TRUE & is.null(options$fig.cap)) {
stop("All figures must have captions.")
}
if (params$draft == TRUE) {
options$fig.cap <- paste0(options$fig.cap, " - fig:",
knitr::opts_current$get("label"))
}
if (options$fig.publish == FALSE) {
options$fig.cap <- paste0(options$fig.cap, " - SÓLO BORRADOR")
}
if (options$fig.publish == TRUE) {
plot_hook(x, options)
}
}
)
knitr::knit_hooks$set(
rotate = function(before, options, envir) {
if (before) {
return("\\begin{landscape}")
} else{
return("\\end{landscape}")
}
}
)
## Figure classes
DefineClass <- function(class.opts) {
class.name <- deparse(substitute(class.opts))
class.fun <- function(options) {
class <- options[[class.name]]
class <- class.opts[[class]]
options[names(class)] <- class
options
}
invisible(knitr::opts_hooks$set(
setNames(list(class.fun), class.name)))
}
page.width <- 210 - 30 - 25
text.width <- page.width - 20
text.height <- page.height <- 297 - 25 - 25
fig.class <- list(
pagewidth = list(
fig.width = page.width/25.4,
out.width = paste0(page.width, "mm"),
# fig.align = "center",
fig.env = "figure*",
out.extra = " "
),
textwidth = list(
fig.width = text.width/25.4,
out.width = paste0(text.width, "mm"),
fig.env = "figure",
fig.align = "center",
out.extra = " "
),
fullpage = list(
fig.width = (page.height)/25.4,
fig.height = (page.width - 10)/25.4,
out.width = paste0(page.height, "mm"),
fig.align = "center",
rotate = TRUE,
out.extra = ""
# out.extra = "angle=90"
),
vfullpage = list(
fig.width = page.width/25.4,
fig.height = (page.height - 20)/25.4,
out.width = paste0(page.width, "mm"),
fig.align = "center"
),
halfpage = list(
# out.width = "7.3cm",
fig.width = (page.width/2)/25.4,
out.width = paste0(page.width/2, "mm")
),
medium = list(
fig.width = 8,
fig.height = 4,
# out.width = "\\textwidth",
# out.height = "0.25\\textheight",
fig.align = "center")
)
DefineClass(fig.class)
setDTthreads(3)
```
```{r read-ncep, cache = FALSE}
ncep.f <- memoise(function(subset = subset_data) {
ncep <- ReadNetCDF("DATA/NCEP Reanalysis/hgt.mon.mean.nc",
subset = subset, vars = c(gh = "hgt"))
setnames(ncep, c("level", "time"), c("lev", "date"))
ncep <-
ncep[, t := ReadNetCDF("DATA/NCEP Reanalysis/air.mon.mean.nc",
out = "vector", subset = subset)[[1]]] %>%
.[, u := ReadNetCDF("DATA/NCEP Reanalysis/uwnd.mon.mean.nc",
out = "vector", subset = subset)[[1]]] %>%
.[, v := ReadNetCDF("DATA/NCEP Reanalysis/vwnd.mon.mean.nc",
out = "vector", subset = subset)[[1]]]
vars <- c("gh", "t", "u", "v")
vars.z <- paste0(vars, ".z")
ncep[, c(vars.z) := lapply(.SD, Anomaly), by = .(lat, lev, date),
.SDcols = -"lon"]
ncep[, date := as.Date(date), by = date]
return(ncep)
})
ncep <- ncep.f()
```
```{r calc-ncep-mean}
ncep.mean <- ncep[, lapply(.SD, mean),
by = .(lat, lon, lev, month(date))]
ncep.mean.season <- ncep.mean[, lapply(.SD, mean),
by = .(lon, lat, lev,
season(month, lang = "es"))]
```
```{r calc-eta-ncep}
ncep.mean.season[, zeta := Vorticity(u + v ~ lon + lat, cyclical = TRUE,
sphere = TRUE),
by = .(lev, season)]
ncep.mean.season[, zeta.dy := Derivate(zeta ~ lon + lat,
cyclical = c(FALSE, FALSE),
sphere = TRUE)[[2]],
by = .(lev, season)]
ncep.mean.season[, eta.dy := zeta.dy + f.dy(lat)]
a <- 6371000
ncep.mean.season[, k := sqrt(eta.dy/u)*(a*cos(lat*pi/180))]
ncep.mean.season[, k.full := ifelse(is.na(k) | k > 10, -1, k)]
ncep.mean.season <- ncep.mean.season
```
\frontmatter
\begin{titlepage}
\centering
\includegraphics[width=0.2\textwidth]{logoUBA} \hfill \includegraphics[width=0.2\textwidth]{logoDCAO} \par
\vspace{0.5cm}
{\scshape\LARGE Universidad de Buenos Aires \\
\large Facultad de Ciencias Exactas y Naturales \\
Departamento de Ciencias de la Atmósfera y los Océanos \par}
\vspace{0.5cm}
{\scshape\Large Tesis de Licenciatura en Ciencias de la Atmósfera\par}
\vspace{1cm}
{\huge\bfseries Estudio de los mecanismos físicos asociados con el patrón de onda 3 de la circulación atmosférica del HS\par}
\vspace{1.5cm}
{\Large Tesista: Elio \textsc{Campitelli} \\
Directora: Dra. Carolina Susana \textsc{Vera} \\
Asistente: Dr. Leandro \textsc{Díaz}
\par}
\vfill
% Bottom of the page
{\large --2018--\par}
\end{titlepage}
\chapter*{Agradecimientos}
A mis directores, Carolina y Leandro, que me guiaron en este interminable proceso de aprender a investigar que recién comienza. Espero haber logrado que estén orgullosos de mí y poder seguir haciéndolo en el futuro.
A los docentes del DCAO, DF y DM que me dieron los conocimientos necesarios para poder a empezar a aprender a investigar. Ningún libro de texto tiene el factor humano de esta facultad.
A todas las personas detrás de los paquetes que hicieron posible esta tesis. Hadley Wickham y los colaboradores de `ggplot2`, el motor detrás de todos los gráficos de la tesis y que me permitió interiorizarme con la gramática de los gráficos. Matt Dowle cuyo paquete, `data.table` me permitió analizar millones de datos con una pequeña y anciana laptop. Y al autor de `knitr`, Yihui Xie, quien diseñó una forma elegante de unificar código y texto para una ciencia reproducible.
A Alexandra Elbakyan. Gracias a ella pude acceder a gran parte del conocimiento previo que alimentó esta tesis.
A ese elemento emergente que es la comunidad de StackOverflow. Mi capacidad de resolver los problemas de mi código se reduce considerablemente cuando no tengo acceso a esa extensión de mi cerebro.
A mi familia. Mi mamá, que me enseñó lo que es el condicionamiento clásico, mi papá, que un día me sentó en una plaza de San Juan para hablarme de la gravitación, a Enrique, que me mostró la maleabilidad del plomo, y a Goyo, que me ayudó a aprender a leer con la "J" de "joder".
A mis amigos que están ahí hace más de 15 años, acompañando en los momentos difíciles de la vida y en los momentos fáciles. Son un grupo de personas increíble que es más que la suma de sus partes.
A Pao, quien hace mi vida infinitamente más rica. No hay nada más hermoso que aprender y entender (parte) el cosmos con ella. Gracias a ella soy una mejor persona y un mejor científico.
\newpage
\newgeometry{inner=3.5cm, outer=3.5cm}
\chapter*{Resumen}
Este trabajo estudia las características observadas de la onda cuasiestacionaria 3 (QS3) en el HS a partir del reanálisis del NCEP/NCAR y analiza preliminarmente experimentos de sensibilidad realizados utilizando el modelo SPEEDY del ICTP. Los resultados obtenidos muestran que la QS3 explica una parte importante de la circulación del HS entre 40°S y 60°S y presenta ciclos anuales tanto en su amplitud como en su fase. Se encontró que la variabilidad estacional de la QS3 se describe mejor a partir de una clasificación alternativa (EFM, AM, JJ, ASO, ND). El análisis de sus condiciones de estacionariedad sugiere que la QS3 es más estacionaria al sur del Índico que al sur del Pacífico. Regresiones obtenidas a partir de un índice de actividad de la QS3 con diferentes variables meteorológicas muestran que, según el mes, la QS3 está asociada tanto con estructuras de ondas planetarias de escala hemisférica como con trenes de onda más localizados. Esto sugiere un grado importante de heterogeneidad en los procesos vinculados a su generación, indicando la posibilidad de que la descripción de la onda 3 a partir de la descomposición de Fourier esté capturando un número de fenómenos independientes.
Una validación del modelo SPEEDY muestra que éste desarrolla la QS3, aunque su desempeño fue muy variable según la estación y su inclinación con la latitud es contraria a la observada en NCEP. El análisis preliminar de los experimentos de sensibilidad sugiere que las anomalías zonales de geopotencial en latitudes medias y altas del HS son sensibles a las condiciones de contorno inferior. En particular la amplitud de la QS1 disminuye significativamente cuando se eliminan las asimetrías zonales de la temperatura de la superficie del mar, consistente con estudios previos que resaltaban el rol de los trópicos en la generación de este patrón. Asimismo, cuando se elimina la interacción suelo-atmósfera sobre las zonas continentales, la amplitud de la QS3 aumenta en invierno y disminuye en primavera debido, principalmente, a cambios en la estacionariedad de la onda. Este resultado permite concluir que la interacción con el suelo es importante para definir la localización de la QS3 y no tanto su amplitud, y que las variaciones estacionales son importantes
\restoregeometry
\setcounter{tocdepth}{3}
\tableofcontents
\listoffigures
\newpage
\mainmatter
# Introducción
La variabilidad del clima en el sur de Sudamérica (SSA) es afectada tanto por la variabilidad en regiones de latitudes medias y polares como, remotamente, por las condiciones del clima en regiones tropicales y subtropicales [ej. @Vera2006]. La influencia de éstas últimas ha sido y es estudiada más extensamente debido a que exhiben altos niveles de predictibilidad asociados, en escalas estacionales con el fenómeno del Niño-Oscilación del Sur (ENSO, por sus siglas en inglés) y en escalas intraestacionales, con la oscilación de Madden-Julian (MJO, por sus siglas en inglés). Sin embargo, estudios recientes de la variabilidad climática en las regiones subpolares y polares del Hemisferio Sur (HS) destacan la actividad del Modo Anular del Sur (SAM, por sus siglas en inglés) como una fuente de variabilidad climática de significativa influencia sobre los continentes del HS y en particular en SSA (ej. @Silvestri2009 en escalas interanuales y @Alvarez2014 en escalas intraestacionales).
La distribución espacial del SAM en su fase positiva se caracteriza por una anomalía negativa de presión o altura geopotencial sobre el continente antártico y anomalías de signo opuesto en latitudes medias. Esta estructura zonalmente simétrica generalmente está asociada con un patrón de onda planetario de números de onda zonal entre 3 y 4. La alternancia del signo entre las anomalías polares y extratropicales del SAM se asocia con intensificaciones y debilitamiento de los vientos Oestes que caracterizan las latitudes medias del HS. Si bien hay evidencia de que los flujos de cantidad de movimiento por las ondas planetarias de baja frecuencia son importantes en los procesos de intensificación y debilitamiento de los Oestes [@Lorenz2001; @Simpson2013] las causas por las cuales estas variaciones se asocian con el desarrollo de la QS3 aún no se conocen con certeza.
Las ondas planetarias de número de onda 1 y 3 (QS1 y QS3) son las principales asimetrías zonales presentes en el flujo medio del HS [@Loon1972; @Trenberth1980a]. Estas ondas zonales tienden a ser cuasi-estacionarias y exhiben importantes variabilidades temporales en su amplitud y fase [@Loon1972]. En particular, se ha documentado que la QS3 presenta una estructura barotrópica equivalente con variabilidad en escalas diarias-semanales [@Kidson1988], estacionales [@Mo1985] y más largas [@Karoly1989]. @Mo1985 mostraron que existen ubicaciones preferenciales para los centros de acción de la QS3. Sin embargo, por la antigüedad de muchos de estos trabajos, sus climatologías tienen limitaciones inherentes a la poca cantidad de datos disponible en el HS previo a la era satelital.
@Trenberth1985 mostraron una recurrencia importante en la ocurrencia de anticiclones de bloqueo simultáneos en diferentes regiones del HS (sur de Sudamérica, sur de Nueva Zelanda y porción central del Océano Indico) favorecida por el establecimiento de un patrón de QS3, aunque dejaron abierta la posibilidad de que éste se trate de un tren de ondas localizado en vez de una verdadera onda zonal. Desde ese momento hasta la actualidad, diferentes estudios se concentraron en entender la influencia de los bloqueos sobre el clima de Sudamérica y su relación con la QS3 [ej. @Rao2004] o de su efecto en el hielo marítimo [ej. @Raphael2007] pero, como se mencionó anteriormente, muy poca atención ha recibido el estudio de las causas que dan lugar al establecimiento de este patrón en un primer lugar. @Quintanar1995 realizaron experimentos de sensibilidad tratando de identificar los factores importantes en el mantenimiento de la QS1. Encontraron que las condiciones térmico-orográficas sobre la Antártida no eran suficientes para explicar la QS1 de latitudes subpolares, por lo que concluyeron que los forzantes remotos debían jugar un papel importante. @Wang2013 encontraron que la destrucción y recuperación de la capa de ozono está asociada a un aumento y disminución de la actividad de onda planetaria respectivamente, pero su análisis no distingue en la actividad de distintos números de onda. Por otra parte, @Hobbs2010 pusieron en duda la utilidad de analizar la circulación del HS en ondas planetarias zonalmente simétricas y propusieron que las anomalías zonales de geopotencial están mejor caracterizadas por un par de anticiclones al sur de Nueva Zelanda y al sur de Sudamérica.
@Cai1999 evaluaron la habilidad del modelo CSIRO para representar la QS3 y encontraron que proporcionaba una representación adecuada de la misma. @Raphael1998 examinó la QS3 en el modelo CCM del NCAR (versiones 1 y 3) y encontró diferencias en cómo cada versión simulaba la QS3, siendo los resultados sensibles al grado de representación del modelo tanto de la interacción mar-atmósfera como de las condiciones de hielo marino en las zonas polares. Este es un resultado importante ya que a pesar de que la QS3 puede desarrollarse solamente por la dinámica interna de la atmósfera [ej. @Simpson2013], existen evidencias de que las condiciones superficiales pueden influenciar su actividad. Asimismo, @Raphael2003 encontró importantes variaciones interanuales experimentadas por la QS3 entre 1958 y 1996, aparentemente relacionadas con variaciones en la frecuencia del ENSO, que también influenciaron las asimetrías del SAM [@Fogt2012].
En consecuencia el objetivo, general de esta tesis es entender los mecanismos que explican el desarrollo de la QS3 en la circulación del HS. Los objetivos particulares son
* caracterizar la climatología de la QS3;
* explorar la influencia de las condiciones oceánicas superficiales tanto en los trópicos como en los extratrópicos sobre la actividad de la QS3;
* explorar la sensibilidad de la QS3 en general a las condiciones superficie.
# Datos y Metodologías
En este capítulo se describen los datos utilizados y las metodologías aplicadas en la presente investigación.
## Datos y modelo
Se analizaron datos mensuales de altura geopotencial, temperatura, viento zonal, viento meridional y función corriente provenientes del Reanálisis NCEP/NCAR [@Kalnay1996] (de aquí en adelante datos NCEP) entre enero de 1985 y diciembre de 2015. Los mismos poseen originalmente una resolución espectral de T62, 28 niveles sigma y registros cada 6hs que son luego interpolados a una grilla regular de 2,5° en longitud y latitud, 17 niveles verticales entre 1000hPa y 10hPa y promediados mensualmente. A partir de los datos mensuales se calcularon las medias estacionales definidas a partir de las estaciones climatológicas del HS.
Se utilizó el modelo global de circulación general atmosférica del Centro Internacional de Física Teórica (ICTP) [@Molteni2003;@Kucharski2006] para realizar corridas de sensibilidad de la QS3 a diferentes condiciones (descriptas en la \autoref{experimentos-de-sensibilidad}). El modelo -- denominado SPEEDY-- es un modelo de complejidad intermedia basado en ecuaciones primitivas espectrales y parametrizaciones simplificadas. En su versión 41, posee una resolución horizontal espectral de T30 (3,75° en longitud y latitud) y 8 niveles verticales entre 925hPa y 30hPa. El modelo incluye parametrizaciones de las diferentes formas de convección, radiación, flujos y difusión vertical. Opcionalmente, las variables de superficie puede responder a la componente atmosférica. En el océano, mediante un modelo de una sola capa (slab) de 50m se espesor. En el suelo y en el hielo marino, a partir de flujos de calor desde la atmósfera y un ajuste newtoneano hacia la temperatura climatológica.
Una primera gran limitación de SPEEDY es su pobre representación de la estratósfera. El más alto de sus 8 niveles está en 30hPa y al ser la tapa del modelo, que tiene una “esponja” para evitar la propagación de ondas de gravedad, no es un nivel con información confiable. Esto limita seriamente la posibilidad de describir numéricamente lo que ocurre en la estratosfera como, por ejemplo, la dinámica del vórtice polar.
Sin embargo por su bajo costo computacional y su buen desempeño para simular ciertas características globales de interés para Sudamérica [@Barreiro2014] se decidió utilizarlo en este trabajo.
## Metodología
\section*{Perturbaciones}
Muchas variables atmosféricas varían con la longitud en menor medida que con la latitud o la altura. Resulta entonces natural descomponer cualquier variable $\phi_{(x, y, z, t)}$ en un promedio zonal y las desviaciones con respecto al mismo según:
$$
\phi_{(x, y, z, t)} = [\phi]_{(y, z, t)} + \phi_{(x, y, z, t)}^*
$$
donde los corchetes indican el promedio zonal y el asterisco indica el desvío con respecto al mismo. $[\phi]$ representa la condición simétrica zonal de la variable en cuestión y es independiente de la longitud mientras que $\phi^*$ representa su componente asimétrica (que será estacionaria en el caso de considerar el valor medio climatológico).
Se denomina ondas cuasiestacionarias (QS) a la componente asimétrica de la circulación media climatológica. Las mismas generan flujos meridionales de calor y cantidad de movimiento, principalmente en el HN en invierno [@James], y en gran medida son forzadas por forzantes superficiales como orografía y contrastes de temperatura así como por interacciones con los transcientes [@Rao2004].
En este trabajo las anomalías zonales se calcularon para cada círculo de latitud como la diferencia entre el valor de la variable en una determinada longitud y su promedio zonal. También se calcularon campos de anomalía zonal de geopotencial eliminando la influencia de las ondas planetarias 1 y 2. Para esto se reconstruyeron los campos de anomalía zonal de geopotencial de las ondas planetarias 1 y 2 mediante descomposición de Fourier (\autoref{fourier}) y luego se restaron al campo de anomalía zonal total.
\hypertarget{fourier}{%
\section*{Fourier}\label{fourier}}
La descomposición de Fourier permite representar una serie de datos como una sumatoria de ondas sinusoidales de distinto número de onda, amplitud y fase. Adicionalmente, es posible calcular la proporción de varianza total explicada por cada onda individual\ ($r^2$) [@Wilks2011]. Para describir las ondas planetarias se aplicó esta metodología a cada círculo de latitud del campo de geopotencial usando la función `FitWave()` del paquete `metR` [@R-metR] de manera de obtener un valor de la amplitud, la fase y el $r^2$ para los números de onda 1 a 4. Dado que la fase es una variable circular, su estudio requiere un tratamiento especial. Para el cálculo de estadísticas circulares se se utilizó el paquete `circular` [@R-circular].
La descripción de las QS utilizando Fourier puede realizarse ya sea descomponiendo los campos medios climatológicos (de aquí en adelante *método AM*, por Amplitud de la Media) o calculando el promedio de la descomposición de los campos instantáneos –mensuales, en este caso– (de aquí en adelante *método MA*, por Media de la Amplitud instantánea). Resulta evidente que a partir del método AM se obtiene una descripción de las ondas presentes en los campos medios y que sobreviven a la interferencia destructiva del promedio temporal, brindando información sobre las ondas estacionarias. El método MA, en cambio, indica las propiedades medias de las ondas planetarias independientemente de su fase, mezclando información de las anomalías zonales instantáneas que no necesariamente son estacionarias.
Utilizando los datos NCEP, no se encontraron diferencias importantes entre ambas metodologías, por lo que se muestran en general los resultados sólo del método AM (excepto que se indique lo contrario).
\section*{Wavelets}
El análisis de wavelets permite también describir oscilaciones localizadas en el dominio [@Torrence1998]. En el contexto de las QS, en vez de obtener una amplitud y fase por cada círculo de latitud como se obtiene con el método de Fourier, con el método de wavelets se obtiene una amplitud local que depende de la longitud. En las ciencias atmosféricas el método de wavelets se usa extensivamente en el análisis de periodicidades temporales [ej. @Raphael2004; @Kinnard2011] y de procesamiento de imágenes [ej. @Desrochers1999], pero existen pocos estudios que lo apliquen a dominios espaciales [ej. @Pinault2016] aunque sí hay aplicaciones de este tipo en la literatura, por ejemplo, de ecología [ej, @Mi2005].
Para el cálculo de wavelets se utilizó la función `WaveletTransform()` del paquete `WaveletComp` [@R-WaveletComp] que utiliza un wavelet de Morlet.
\section*{Índice de QS3}
En esta tesis se elaboró un índice de actividad de la QS3 a partir de la amplitud de Fourier promediada entre 65°S y 40°S de latitud y entre 700hPa y 100hPa. Existen múltiples índices para describir la QS3 en la literatura. Algunos son definidos a partir de las anomalías zonales de geopotencial en puntos fijos cercanos a donde climatológicamente se dan los máximos de geopotencial asociados a la QS3 [ej. @Mo1985, @Cai1999 y @Raphael2004]. Aunque cada trabajo utilizó puntos ligeramente distintos a causa de las distintas climatologías analizadas. Además, @Raphael2004 se basó en promedios trimestrales en vez de medias mensuales. Por otra parte, @Yuan2008, generó una serie temporal de actividad de la QS3 a partir de la primer componente principal del campo de viento meridional superficial, el cual resulta en un patrón de onda 3 consistente con climatologías previas.
La principal limitación de las metodologías basadas en patrones estacionarios, como puntos fijos o componentes principales, es que no permiten cambios de fase en la onda planetaria. En particular, no capturan correctamente el corrimiento estacional en la posición de la QS3 [@Loon1972] ni permiten capturar casos de actividad de onda intensa pero alejada de las zonas climatológicamente activas. @Irving2015 construyeron un índice de actividad de onda planetaria a partir de la transformada de Hilbert que no tiene estas limitaciones pero no distingue entre la actividad de distintos números de onda.
\section*{Interferencia constructiva y destructiva}
En la \autoref{fase} se estimó, para cada mes, la proporción de casos de interferencia destructiva a partir del cómputo de la frecuencia de casos donde la diferencia de fase con respecto a la fase media es de entre 40° y 80°. Dicho criterio teórico surge de considerar la suma de dos ondas sinusoidales de igual amplitud
$$
\cos\left (k\phi \right) + \cos(k(\phi - \alpha)) = 2\cos\left( \frac{k\alpha}{2} \right)\cos\left( k\phi - \frac{\alpha}{2}\right)
$$
donde $k$ es el número de onda, $\phi$ la latitud, y $\alpha$ es la diferencia de fase entre las ondas. El primer término multiplicativo del lado derecho es la amplitud de la nueva onda, la cual depende de la diferencia de fase. Si la misma es menor a 1/3 o mayor a 2/3 de longitud de onda (40° y 80° respectivamente en el caso de la onda 3), el valor absoluto de la amplitud es mayor que 1 y la sumatoria de ondas es constructiva. De lo contrario, la onda obtenida tiene una amplitud menor que las originales y la interferencia es destructiva.
En la \autoref{estaciones} se utilizó análisis de componentes principales para categorizar cada mes del año según las características típicas de la QS3. Se realizó mediante la función `EOF()` del paquete `metR` [@R-metR], la cual descompone una matriz de datos en valores singulares. Este método es preferible al cálculo de autovalores y autovectores sobre la matriz de correlación o covarianza ya que es numéricamente más estable [@Venegas2001]. Los datos de geopotencial fueron pesados por la raíz cuadrada del coseno de la latitud.
\section*{Herramientas dinámicas}
La influencia tropical en la variabilidad del clima extratropical se exploró a través del análisis de las condiciones de propagación meridional de ondas de Rossby barotrópicas. La teoría lineal establece que esta propagación depende de las condiciones del entorno [@James]. En particular, el número de onda meridional está dado por
$$
l = \pm \sqrt{\frac{\eta_{y}}{U} - k^2}
$$
donde $\eta_{y}$ es el gradiente meridional de vorticidad absoluta, $U$ es la velocidad zonal, ambos del estado básico y $k$ es el número de onda zonal. La propagación meridional sólo es posible si $l$ es real, lo que requiere que
$$
\frac{\eta_{y}}{U} = K_s \ge k
$$
donde $K_s$ es el número de onda estacionario, que debe ser mayor que el número de onda zonal para permitir la propagación meridional.
El flujo de actividad de onda es un vector que, bajo ciertas suposiciones, es paralelo a la velocidad de grupo de las ondas de Rossby, lo cual permite cuantificar la dispersión meridional y zonal de las mismas [@James]. En este estudio, estos flujos se calcularon a partir de las anomalías zonales de función corriente como
$$
\begin{aligned}
F_\lambda &= \frac{p}{2000a^2\cos\phi}\left[ \left( \frac{\partial \psi^*}{\partial \lambda} \right)^2 - \psi^*\frac{\partial^2 \psi^*}{\partial \lambda^2} \right] \\
F_\phi &= \frac{p}{2000a^2} \left( \frac{\partial \psi^*}{\partial \lambda}\frac{\partial \psi^*}{\partial \phi} - \psi^* \frac{\partial^2 \psi^*}{\partial \lambda \partial \phi} \right)
\end{aligned}
$$
donde $p$ es la presión, $\phi$ la latitud, $\lambda$ la longitud, $a$ es el radio de la Tierra (tomado como 6371km) y $\psi^*$ es la anomalía zonal de la función corriente [@Vera2004].
```{r fitqs-ncep}
ncep.qs.all <- ncep[, FitWave(gh, k = 1:4), by = .(lat, lev, date)]
```
# Climatología observada
En este capítulo se presentan campos medios y anomalías zonales de altura geopotencial, temperatura, viento zonal, viento meridional, función corriente, número de onda estacionario y gradiente meridional de vorticidad absoluta, como introducción general al estado medio de la atmósfera sobre el cual se desarrollan las ondas estacionarias. Luego se analizan los campos de amplitud y varianza explicada por las distintas QS.
## Altura geopotencial
```{r gh-ncep, fig.class = "fullpage", fig.cap = "Z (mgp). Contornos cada 250 mgp (NCEP)."}
plot.levs <- c(500, 300, 200, 100, 50)
binwidth <- 250
ggplot(ncep.mean.season[lev %in% plot.levs], aes(lon, lat)) +
geom_contour_fine(aes(z = gh), binwidth = binwidth, color = "black",
xwrap = c(0, 360)) +
map.SH +
geom_text_contour(aes(z = gh), binwidth = binwidth, size = 1.6,
stroke = 0.25, rotate = FALSE, xwrap = c(0, 360)) +
# geom_label_contour2(aes(z = gh, label = ..level..), binwidth = binwidth,
# size = 1.6) +
scale_s_map() +
facet_grid(lev ~ season, labeller = labeller(lev = lev.lab)) +
coord_quickmap()
```
El campo de altura geopotencial media (Z, \autoref{fig:gh-ncep}) muesa una estructura marcadamente zonal en todos los niveles y estaciones. En verano el gradiente meridional de Z es máximo en 200hPa, reduciéndose en 500hPa y por encima de 100hPa. En 50hPa el gradiente es prácticamente nulo y en niveles superiores, éste se invierte en comparación a los inferiores (no se muestra). En otoño el máximo de gradiente todavía se da en 200hPa, pero continúa siendo intenso en niveles superiores. En invierno y primavera, el mayor gradiente se da en 50hPa y es mucho más intenso que los observados en los demás niveles o estaciones. En contraste con el resto de los niveles, 50hPa y 100hPa tienen mucha más variabilidad estacional.
El aumento del gradiente meridional de geopotencial en invierno y primavera en niveles altos está relacionado con la generación del vórtice polar que aísla las latitudes polares de las latitudes medias. En 200hPa, en cambio, es evidente el gradiente asociado con el jet subtropical, que es más intenso en invierno y más débil en verano.
```{r ghdy-ncep-corte, fig.cap = "Gradiente meridional de Z", fig.publish = FALSE}
ncep.mean.season[, mean(gh), by = .(lat, lev, season)] %>%
.[, gh.dy := Derivate(V1 ~ lat), by = .(lev, season)] %>%
# .[, .(gh.dy = mean(gh.dy, na.rm = T)), by = .(lev, season)] %>%
# ggplot(aes(lev, gh.dy, color = season)) +
# geom_line() +
# scale_x_level() +
# coord_flip()
ggplot(aes(lat, lev)) +
geom_contour_fill(aes(z = gh.dy), binwidth = 10, na.rm = T) +
surface +
scale_fill_divergent() +
scale_y_level(breaks = c(1000, plot.levs, 10)) +
scale_x_latitude(trans = "reverse") +
coord_latlev() +
facet_wrap(~season)
```
En la \autoref{fig:sd-gh-ncep} se muestra, para cada latitud y mes, el desvío estándar de Z con respecto a la media zonal ($\sigma_z$). Todos los niveles presentan una variación meridional similar, con un máximo principal al rededor de 60°S durante todo el año y un máximo secundario en 30°S que aparece sólo entre junio y septiembre. El ciclo anual de $\sigma_z$ también es similar entre niveles, aunque con ligeros corrimientos de fase. En 100hPa el máximo absoluto se da en octubre, mientras que en los niveles más bajos, éste se da en agosto.
```{r sd-gh-ncep, fig.class = "pagewidth", fig.cap = "Desvío estándar de Z (mgp) por círculo de latitud (NCEP)."}
binwidth <- 15
ncep.mean[lev %in% plot.levs & !(lev %in% c(50)), .(sd = sd(gh.z)), by = .(lat, lev, month)] %>%
ggplot(aes(month, lat)) +
geom_contour2(aes(z = sd, color = ..level..), binwidth = binwidth,
size = 0.3) +
scale_color_viridis_c(name = "Desvío estándar de Z* por círculo de latitud",
breaks = MakeBreaks(binwidth),
guide = guide_colorstrip_bottom(inside = T)) +
scale_y_latitude(name = "latitud", limits = c(-90, 0)) +
scale_x_continuous(name = "mes", breaks = 1:12, labels = month.abb_sp,
expand = c(0, 0)) +
coord_fixed(1/20) +
facet_wrap(~lev, labeller = labeller(lev = AddSuffix("hPa")))
```
```{r ghz-ncep, fig.class = "fullpage", fig.cap = "Z* (mgp) (NCEP)."}
binwidth <- 30
cutlat <- -60
ggplot(ncep.mean.season[lev %in% plot.levs], aes(lon, lat)) +
geom_contour_fill(aes(z = gh.z), breaks = AnchorBreaks(0, binwidth,0),
xwrap = c(0, 360)) +
# geom_hline(yintercept = cutlat, linetype = 2, size = 0.5) +
map.SH +
scale_y_latitude() +
scale_x_longitude() +
scale_fill_divergent(breaks = AnchorBreaks(0, binwidth, 0),
name = "Z*",
guide = guide_colorstrip_bottom(45)) +
facet_grid(lev ~ season, labeller = labeller(lev = lev.lab)) +
coord_quickmap()
```
Las anomalías zonales de geopotencial (Z\*, \autoref{fig:ghz-ncep}) muestran una preponderancia de la onda 1 (QS1) con una amplitud máxima en la estratósfera de primavera. Pueden diferenciarse dos QS1 distintas; una centrada en ~60°S y con el centro anticiclónico alrededor de la línea de fecha, y la otra centrada en 75°S sobre la costa del continente antártico y el centro anticiclónico entre 120 y 60°O. @Quintanar1995 concluyeron que la primera está asociada principalmente a forzantes de latitudes bajas mientras que la segunda responde a la orografía del continente antártico.
En latitudes tropicales, en verano hay una anomalía negativa sobre el Pacífico este con máxima amplitud en 200hPa que está presente --aunque con menor intensidad-- en las otras estaciones del año. Sobre Sudamérica, en verano y primavera en ese mismo nivel aparece un centro anticiclónico (alta de Bolivia) con un centro ciclónico al noroeste y otro al noreste (Baja del Nordeste). Estas anomalías son características del Sistema Monzónico Sudamericano [@Vera2006].
En la \autoref{fig:ghz-ncep-corte60} se muestra un corte zonal en 60°S de Z\*. Se aprecia la coherencia vertical de la QS1 y es evidente la inclinación hacia el oeste con la altura en todas las estaciones del año, excepto en verano, en coincidencia con lo encontrado por @Quintanar1995a. @Karoly1985 describió una estructura barotrópica equivalente tanto en verano como en invierno en 55°S, pero dicho resultado es producto de la falta de niveles verticales por encima de los 100hPa disponibles en ese momento, que es donde se da la máxima inclinación.
La inclinación hacia el oeste de las perturbaciones de geopotencial con la latitud (\autoref{fig:ghz-ncep}) y con la altura (\autoref{fig:ghz-ncep-corte60}) indica que las mismas están asociadas con transporte perturbado hacia el polo tanto de cantidad de movimiento zonal como de temperatura [@James]. En verano las anomalías zonales tienen una estructura barotrópica equivalente y carecen de inclinación en la horizontal.
```{r ghz-ncep-corte60, fig.class = "pagewidth", fig.cap = "Corte zonal de Z* (mgp) en 60°S (NCEP)."}
binwidth <- 60
ggplot(ncep.mean.season[lat %~% -55], aes(lon, lev)) +
geom_contour_fill(aes(z = gh.z), breaks = AnchorBreaks(0, binwidth, 0),
xwrap = c(0, 360)) +
scale_fill_divergent(breaks = AnchorBreaks(0, binwidth, 0),
name = "Z*",
guide = guide_colorstrip_bottom(width = 25)) +
scale_y_level(breaks = c(1000, plot.levs, 10), minor_breaks = NULL) +
# scale_y_reverse() +
scale_x_longitude(name = "longitud") +
coord_lonlev() +
facet_wrap(~season)
```
```{r uzvz-ncep-corte, fig.cap = "Transportes", fig.subcap = c("u*v*", "T*v*"), fig.publish = FALSE}
ncep[, mean(u.z*v.z), by = .(lat, lev, season(date))] %>%
ggplot(aes(lat, lev)) +
geom_contour2(aes(z = V1, color = ..level..), binwidth = 5) +
scale_color_divergent(breaks = MakeBreaks(5)) +
scale_y_level() +
scale_x_latitude(trans = "reverse") +
coord_latlev() +
facet_wrap(~season)
ncep[, mean(v.z*t.z), by = .(lat, lev, season(date))] %>%
ggplot(aes(lat, lev)) +
geom_contour2(aes(z = V1, color = ..level..)) +
scale_color_divergent(breaks = MakeBreaks(5)) +
scale_y_level() +
scale_x_latitude(trans = "reverse") +
coord_latlev() +
facet_wrap(~season)
```
## Temperatura
```{r t-ncep, fig.class = "fullpage", fig.cap = "Temperatura media (°C). Contornos cada 5°C (NCEP)."}
binwidth <- 5
ncep.mean.season[lev %in% c(plot.levs, 850)] %>%
copy(pres)[., on = c("lon", "lat")] %>%
.[pres < lev, t := NA] %>%
ggplot(aes(lon, lat)) +
geom_contour2(aes(z = t), binwidth = binwidth, color = "black",
xwrap = c(0, 360)) +
geom_text_contour(aes(z = t), binwidth = binwidth, stroke = 0.25,
size = 1.6, rotate = FALSE,
xwrap = c(0, 360)) +
# geom_tile(data = copy(pres)[, lev := 850][pres < 850],
# fill = "white", color = "white") +
map.SH +
scale_s_map() +
coord_quickmap() +
facet_grid(lev~season, labeller = labeller(lev = lev.lab))
```
La distribución horizontal de la temperatura media (\autoref{fig:t-ncep}), al igual que la altura geopotencial media, tiene una estructura principalmente zonal en todos los niveles y estaciones. Por debajo de los 200hPa, donde el gradiente meridional de temperatura es mínimo, la temperatura disminuye con la latitud en todas las estaciones. Por encima de este nivel, en cambio, en verano la temperatura crece con la latitud, y en el resto de las estaciones muestra un máximo centrado en 60°S en otoño y en 45°S en invierno y primavera. En el nivel de 850hPa se ven las asimetrías zonales más importantes asociadas con los contrastes de temperatura entre continente y océanos, como el máximo sobre Australia en verano.
En 300hPa, el gradiente meridional de temperatura en latitudes medias tiene un importante ciclo anual con máximo en invierno y mínimo en verano. En niveles inferiores, el ciclo anual es menos marcado y más dependiente de la latitud. En 500hPa, en 150°E 30°S, el máximo gradiente meridional de temperatura ocurre en invierno y el mínimo en verano, mientras que en 150°E 50°S el ciclo se invierte.
```{r t-ncep-corte, fig.class = "pagewidth", fig.cap = "Media zonal de la temperatura (°C) para cada nivel vertical y latitud (NCEP). La región blanca representa la topografía media."}
binwidth <- 10
ggplot(ncep.mean.season[, .(t = mean(t)), by = .(lat, lev, season)],
aes(lat, lev)) +
geom_contour_fill(aes(z = t), binwidth = binwidth) +
surface +
scale_y_level(breaks = c(1000, plot.levs, 10), minor_breaks = NULL) +
scale_x_latitude(name = "latitud", trans = "reverse", ticks = 15) +
scale_fill_viridis_c(name = "Temperatura media zonal",
breaks = MakeBreaks(binwidth),
guide = guide_colorstrip_bottom()) +
coord_latlev() +
facet_wrap(~season)
```
El promedio zonal de la temperatura se muestra en la \autoref{fig:t-ncep-corte}. Al norte de 45° la temperatura decrece con la altura por debajo de los 100hPa aproximadamente, donde alcanza un mínimo que marca la tropopausa, y crece por encima durante todo el año. La altura del mínimo de temperatura varía mucho estacionalmente al sur de 45°, siendo mínima en verano (300hPa) y máxima en invierno y otoño (30hPa). Hay que tener en cuenta, sin embargo, que la tropopausa no está bien definida en el invierno antártico [@Court1942; @Zangl2001] por lo que el uso de la tropopausa térmica no es conveniente. @Zangl2001, utilizando datos del Reanálisis del Centro Europeo de Predicción a Plazo Medio (ERA) para el período 1979-93, encontraron que la tropopausa térmica se encuentra en 320hPa en enero y 170hPa en agosto, aunque advierten que el uso del criterio térmico es "problemático" en el invierno antártico debido a la reducida estabilidad estática en la estratósfera baja.
```{r tz-ncep, fig.class = "fullpage", fig.cap = "Anomalía zonal de temperatura (°C) (NCEP)."}
binwidth <- 0.5
binwidth2 <- 1
gdata <- copy(pres)[ncep.mean.season[lev %in% c(plot.levs, 850)],
on = c("lon", "lat")] %>%
.[, t.z := NULL] %>%
.[lev < pres, t.z := Anomaly(t), by = .(lat, lev, season)]
ggplot(gdata, aes(lon, lat)) +
geom_contour_fill(aes(z = t.z), breaks = AnchorBreaks(0, binwidth2, 0),
xwrap = c(0, 360)) +
map.SH +
scale_fill_divergent(breaks = AnchorBreaks(0, binwidth2, 0),
limits = c(-9, NA),
name = "T*",
guide = guide_colorstrip_bottom(45)) +
scale_s_map() +
facet_grid(lev ~ season, labeller = labeller(lev = lev.lab)) +
coord_quickmap()
```
En la \autoref{fig:tz-ncep} se muestran las anomalías zonales de temperatura media. En 850hPa se aprecia el efecto del contraste de temperatura entre el suelo y el mar. Se observan anomalías positivas sobre los continentes y negativas sobre los océanos en todas las estaciones, aunque más intensas en verano y primavera. En niveles más altos éstas pierden intensidad pero reaparecen en 100hPa con signo invertido. Estas características tienen su correlato en la altura geopotencial (\autoref{fig:ghz-ncep}) y corresponden a circulaciones de tipo monzónico.
En invierno y primavera, los niveles altos están dominados por una QS1 con máximo en el sur de Australia y mínimo en el Atlántico sur. En niveles bajos, esta onda disminuye su amplitud y se defasa hacia el este y queda casi en cuadratura con la onda de niveles altos, presentando un máximo en 850hPa en Antártida occidental, como se observa en el corte zonal de la anomalía zonal de temperatura en 60°S (\autoref{fig:t-ncep-corte60}). En otoño la QS1 también está presente, pero con amplitud muy reducida y maximizando en niveles medios. En verano ésta desaparece por encima de 100hPa.
```{r t-ncep-corte60, fig.class = "pagewidth", fig.cap = "Corte zonal de anomalía zonal de temperatura (°C) en 60°S (NCEP)."}
binwidth <- 1
ggplot(ncep.mean.season[lat %~% cutlat], aes(lon, lev)) +
geom_contour_fill(aes(z = t.z), breaks = AnchorBreaks(0, binwidth, 0),
xwrap = c(0, 360)) +
scale_fill_divergent(breaks = AnchorBreaks(0, binwidth2, 0),
name = "T*",
guide = guide_colorstrip_bottom(width = 25)) +
scale_y_level(breaks = c(1000, plot.levs, 10), minor_breaks = NULL) +
coord_lonlev() +
scale_x_longitude(name = "longitud") +
facet_wrap(~season)
```
Las anomalías por debajo de 300hPa mantienen su intensidad durante todo el año, aunque tienen más extensión en invierno y primavera en comparación con verano y otoño y son barotrópicas equivalentes. Por encima de 300hPa, en cambio, se observa un importante ciclo anual con máximo en primavera y mínimo en verano con importante inclinación hacia el oeste con la altura.
## Viento zonal
```{r u-ncep-corte, fig.class = "pagewidth", fig.cap = "Media zonal del viento zonal (m/s) para cada nivel vertical y latitud (NCEP). La región blanca representa la topografía media."}
ncep.mean.season[, .(u = mean(u)), by = .(lat, lev, season)] %>%
ggplot(aes(lat, lev)) +
geom_contour_fill(aes(z = u), breaks = AnchorBreaks(0, 5, 0)) +
surface +
scale_y_level(breaks = c(1000, plot.levs, 10)) +
scale_x_latitude(name = "latitud", trans = "reverse", ticks = 15) +
scale_fill_divergent(name = "U media zonal",
breaks = AnchorBreaks(0, 5, 0),
guide = guide_colorstrip_bottom()) +
coord_latlev() +
facet_wrap(~season)
```
La media zonal del viento zonal (\autoref{fig:u-ncep-corte}) muestra dos máximos, uno en latitudes medias en 200hPa y otro en latitudes polares en la estratósfera, correspondientes al jet subtropical y subpolar, respectivamente. El primero está presente durante todo el año, aunque con mayor intensidad y corrido hacia latitudes más ecuatoriales en invierno y primavera. El segundo está presente principalmente en invierno y primavera, e incipiente en otoño. Además, en la estratósfera se observan vientos del este en latitudes bajas que son más intensos en verano y otoño.
```{r u-ncep, fig.class = "fullpage", fig.cap = "Viento zonal medio (m/s) (NCEP)."}
ggplot(ncep.mean.season[lev %in% plot.levs], aes(lon, lat)) +
geom_contour_fill(aes(z = u), breaks = AnchorBreaks(0, 5, 0),
xwrap = c(0, 360)) +
map.SH +
scale_y_latitude() +
scale_x_longitude() +
scale_fill_divergent(name = "U", breaks = AnchorBreaks(0, 5, 0),
guide = guide_colorstrip_bottom(45)) +
coord_quickmap() +
facet_grid(lev~season, labeller = labeller(lev = lev.lab))
```
En la \autoref{fig:u-ncep} se muestra el viento zonal medio. Se observa, principalmente en invierno y primavera por encima de 100hPa, que el jet subpolar es más intenso al sur de África, donde además se encuentra en una latitud más ecuatorial que en la región del Pacífico. El jet subtropical también tiene un máximo al sur de África y otro al norte de Nueva Zelanda --especialmente en invierno--, donde además se produce una bifurcación del jet. Se trata de una región de persistentes y frecuentes bloqueos [ej. @Trenberth1985].
Esta bifurcación del jet sobre Nueva Zelanda se evidencia en el campo de anomalías zonales de viento zonal (\autoref{fig:uz-ncep}) como una anomalía negativa sobre la isla acompañada por anomalías positivas al norte y sur. En 50hPa se observa un par de QS1 al norte y al sur de 60°S defasadas en 180°. Estas anomalías se corresponden con la variación meridional del jet observada en la \autoref{fig:u-ncep} y son consistentes con la QS1 de geopotencial observada en la \autoref{fig:ghz-ncep}. Por el balance de viento geostrófico, centros anticiclónicos de Z* están flanqueados por anomalías zonales negativas de viento zonal al norte y positivas al sur y viceversa para los centros ciclónicos. Además, como el viento zonal no depende del parámetro de Coriolis como Z, esto permite la identificación de QS en regiones tropicales. Un ejemplo de esto son la alternancia de centros de diferente signo en las zonas tropicales en verano, que describen las ondas de Rossby estacionarias asociadas con los sistemas monzónicos de Sudamérica y el norte de Australia. En particular, se distingue entre 300hPa y 100hPa sobre el Pacífico ecuatorial una zona de anomalías del viento zonal positivas al este y negativas al oeste, que implica divergencias en niveles altos (compensada con convergencias en niveles bajos que no se muestra).
```{r uz-ncep, fig.class = "fullpage", fig.cap = "Anomalía zonal de viento zonal (m/s) (NCEP)."}
binwidth <- 2.5
ggplot(ncep.mean.season[lev %in% plot.levs], aes(lon, lat)) +
geom_contour_fill(aes(z = u.z), breaks = AnchorBreaks(0, binwidth, 0),
xwrap = c(0, 360)) +
map.SH +
scale_y_latitude() +
scale_x_longitude() +
scale_fill_divergent(breaks = AnchorBreaks(0, binwidth, 0), name = "U*",
guide = guide_colorstrip_bottom(45)) +
facet_grid(lev ~ season, labeller = labeller(lev = lev.lab)) +
coord_quickmap()
```
## Viento meridional
```{r v-ncep-corte, fig.class = "pagewidth", fig.cap = "Media zonal del viento meridional (m/s) (NCEP). La región blanca representa la topografía media."}
binwidth <- 0.5
ggplot(ncep.mean.season[, .(v = mean(v)), by = .(lat, lev, season)],
aes(lat, lev)) +
geom_contour_fill(aes(z = v), breaks = AnchorBreaks(0, binwidth, 0)) +
surface +
scale_y_level(breaks = c(1000, plot.levs, 10), limits = c(1000, 10)) +
scale_x_latitude(name = "latitud", trans = "reverse", ticks = 15) +
scale_fill_divergent(name = "V media zonal",
breaks = AnchorBreaks(0, binwidth, 0),
guide = guide_colorstrip_bottom()) +
coord_latlev() +
facet_wrap(~season)
```
El corte vertical-meridional del promedio zonal viento meridional medio (de aquí en más V, \autoref{fig:v-ncep-corte}) muestra los máximos tropicales presentes en superficie y altura en todas las estaciones, relacionados con la circulación de Hadley. En verano, la rama ascendente se encuentra en el HS y se tiene convergencias en niveles bajos y divergencias en niveles altos. En invierno, en cambio, sólo se ve la rama descendente, mucho más intensa que en verano, que genera convergencias en niveles altos y divergencias en niveles bajos al rededor de los 30°S.
Presente durante todo el año, también se observa un máximo de vientos del sur en la costa antártica. Los mismos son evidencia de los vientos catabáticos antárticos producidos por una capa muy estable cerca de superficie y la consistente inclinación de la topografía del continente [@King1997]. Sin embargo, los datos allí pueden tener limitaciones por la falta de observaciones y la pobre representación de la orografía en los modelos.
```{r v-ncep, fig.class = "fullpage", fig.cap = "Viento meridional medio (m/s) (NCEP)."}
binwidth <- 2
ggplot(ncep.mean.season[lev %in% c(850, plot.levs)], aes(lon, lat)) +
geom_contour_fill(aes(z = v), breaks = AnchorBreaks(0, binwidth, 0),
xwrap = c(0, 360)) +
geom_tile(data = copy(pres)[, lev := 850][pres < 850], fill = "white",
color = "white") +
map.SH +
scale_y_latitude() +
scale_x_longitude() +
scale_fill_divergent(name = "V", breaks = AnchorBreaks(0, 1, 0),
guide = guide_colorstrip_bottom(45)) +
coord_quickmap() +
facet_grid(lev~season, labeller = labeller(lev = lev.lab))
```
Dado que la media zonal de V es nula en gran parte del dominio, el campo de anomalías zonales de V es virtualmente idéntico al campo de V medio. Por lo tanto, sólo se muestra el campo horizontal de V en la \autoref{fig:v-ncep}. Consistente con los campos de Z\* (\autoref{fig:ghz-ncep}), en niveles altos se observa una QS1 que alcanza su máximo en la estratósfera de primavera. En invierno entre 500hPa y 100hPa, existe evidencia de un tren de ondas de Rossby que se propaga desde el sur del Índico llegando a su máxima latitud en 150°O donde comienza a propagarse hacia el norte hasta llegar al sur de Sudamérica. Este tren de ondas puede identificarse en el campo de Z\* (\autoref{fig:ghz-ncep}), pero con mayor dificultad debido a la presencia de la QS1 y a la dependencia de Z\* con el parámetro de Coriolis. El tren de ondas en V se distingue en la troposfera alta, también en primavera y con menor intensidad en verano y otoño.
Las anomalías zonales del viento meridional también permiten distinguir otras características cuasiestacionarias del clima, como aquellas asociadas con los monzones. En el invierno, en los trópicos se puede observar la anomalía positiva en 850hPa en la costa oeste de África asociada con el flujo hacia el monzón de la India. En altura, el monzón de la India se evidencia en esa estación como anomalía de viento hacia el sur producto de la divergencia de niveles altos generada por la convección anómala. Por otra parte, en verano se evidencia en la troposfera alta sobre Sudamérica tropical anomalías positivas sobre el centro-este del continente y negativas en los océanos subyacentes. Tal patrón de ondas estacionario se relaciona con la presencia del Alta de Bolivia y las vaguadas estacionarias a sus lados, siendo la del este típicamente llamada la Baja del Nordeste [@Vera2006].
```{r ghminus1-ncep, fig.publish = FALSE, fig.cap = "Z* menos QS1."}
## Figura para el doctorado.
ncep.mean.season[lev == 200] %>%
.[, gh.minus := FilterWave(gh, -1:0),
by = .(lat, lev, season)] %>%
.[lev %in% plot.levs] %>%
ggplot(aes(lon, lat)) +
geom_contour_fill(aes(z = gh.minus), breaks = AnchorBreaks(0, 10, 0),
xwrap = c(0, 360)) +
geom_contour2(aes(z = k.full), breaks = 3, color = "gray50",
xwrap = c(0, 360)) +
stat_subset(aes(subset = k.full < 3 ), color = "gray50",
fill = "gray50", alpha = 0.07, geom = "tile") +
map.SH +
scale_fill_divergent(guide = guide_colorstrip_bottom(),
breaks = AnchorBreaks(0, 10, 0)) +
scale_s_map() +
coord_quickmap() +
facet_wrap(~season, ncol= 2)
```
## Función corriente
```{r read-psi}
levs <- ReadNetCDF("DATA/NCEP Reanalysis/psi.mon.mean.nc", out = "vars")$dimensions$level
levs <- levs[levs %~% 0.21]
subset_data$lat <- c(-90, 40)
stream <- ReadNetCDF("DATA/NCEP Reanalysis/psi.mon.mean.nc",
subset = c(subset_data, list(level = levs))) %>%
setnames(c("level", "time"), c("lev", "date"))
stream[, psi.z := Anomaly(psi), by = .(lat, date)]
stream[, date := as.Date(date), by = date]
stream.mean.season <- stream[, .(psi = mean(psi),
psi.z = mean(psi.z)),
by = .(lon, lat, lev, season(date, lang = "es"))]
stream.mean.season[, c("f.lon", "f.lat") := WaveFlux(.SD), by = season]
```
```{r psi-ncep, fig.class = "fullpage", fig.cap = "Función corriente media en $\\sigma = 0,2101$ (contornos cada $2\\times10^{-11}m^2/s$), anomalía zonal de función corriente (sombreado, $1\\times10^{-9}m^2/s$) y flujos de actividad de onda medios (NCEP)."}
ggplot(stream.mean.season,aes(lon, lat)) +
geom_contour_fill(aes(z = psi.z*10^-9), xwrap = c(0, 360),
breaks = AnchorBreaks(0, 0.005, 0)) +
geom_contour_fine(aes(z = psi*10^(-9)), color = "black",
binwidth = 0.02, xwrap = c(0, 360)) +
geom_map2(data.world[lat < 30]) +
geom_text_contour(aes(z = psi*10^(-9)), color = "black",
binwidth = 0.02, stroke = 0.25, rotate = FALSE,
size = 1.6, xwrap = c(0, 360)) +
geom_vector(aes(dx = f.lon, dy = f.lat), skip = 3, min.mag = 0.05,
size = 0.2) +
scale_mag(max = 1, label = "1") +
scale_x_longitude() +
scale_y_latitude() +
scale_fill_divergent(breaks = AnchorBreaks(0, 0.005, 0),
guide = guide_colorstrip_bottom(45)) +
facet_wrap(~season, ncol = 2) +
theme(axis.title = element_blank()) +
coord_quickmap(ylim = c(-90, 30))
```
Para analizar la influencia tropical en la circulación no es posible usar la altura geopotencial, ya que el balance geostrófico pierde validez cerca del ecuador. Por lo tanto, es útil analizar el campo de función corriente ($\psi$). Los datos NCEP proveen esta variable en niveles sigma ($\sigma$) en vez de presión. En la \autoref{fig:psi-ncep} se muestra $\psi$ en el nivel $\sigma = 0,2101$, que equivale aproximadamente a 250hPa. Además del campo medio, se muestran las anomalías zonales de esta variable en sombreado y los flujos de actividad de onda en flechas.
Las características de los campos de $\psi$, tanto el total como las anomalías zonales, son similares a los de Z y Z\* respectivamente, con una estructura eminentemente zonal y un aumento del gradiente meridional en invierno y primavera y los mismos centros de anomalías. La principal diferencia es, además del cambio de signo dada por la dependencia de Z con el parámetro de Coriolis, que los patrones presentes en las latitudes tropicales se ven con mayor magnitud que los de latitudes medias y altas.
Los flujos de actividad de onda en verano muestran transporte de energía desde el Pacífico este hacia el sur de África pasando por el Atlántico que se sostiene durante todo el año con menor intensidad. Desde ese lugar también se observa transporte de energía hacia el hemisferio norte, que se junta con otra región de flujos intensos que viene desde el Pacífico oeste. Sobre el Índico, los flujos son de mayor magnitud en invierno, transportando energía hacia el sur.
## Propagación Meridional de Ondas de Rossby
```{r etady-ncep, fig.class = "fullpage", fig.cap = "Gradiente meridional de vorticidad absoluta ($1\\times10^{11}(ms)^{-1}$). La línea negra marca regiones con valores negativos."}
mult <- 1e11
binwidth <- 1e-11*mult
ggplot(ncep.mean.season[lev %in% plot.levs & lat > -85],
aes(lon, lat, z = eta.dy*mult)) +
geom_contour_fill(breaks = AnchorBreaks(0, binwidth), xwrap = c(0, 360)) +
geom_contour_fine(breaks = 0, color = "black", xwrap = c(0, 360)) +
map.SH +
scale_fill_divergent(name = "Gradiente meridional de vorticiad absoluta",
guide = guide_colorstrip_bottom(45),
breaks = AnchorBreaks(0, binwidth)) +
scale_s_map() +
coord_quickmap() +
facet_grid(lev ~ season, labeller = labeller(lev = lev.lab))
```
La \autoref{fig:etady-ncep} muestra el campo de $\eta_y$. Resalta una región de valores negativos centrada sobre Nueva Zelanda, en invierno entre 300hPa y 200hPa, coincidiendo con la región de bloqueos. Está flanqueada por el jet subtropical intenso y el jet subpolar más al sur, dando lugar a gradientes meridionales de viento zonal negativos más intensos que $\beta$. Otras regiones con valores negativos se distinguen en la costa antártica.
Los valores de $\eta_{y}$ negativos impiden la propagación meridional de ondas de Rossby barotrópicas. Esta figura reproduce y extiende el resultado de @Berbery1992 (su Figura\ 3) que utilizaron 5 años de análisis objetivo del ECMWF. Asimismo, como se describió en la \autoref{metodologia}, aún con $\eta_{y}$ positivo, las ondas de Rossby barotrópicas sólo se pueden propagar si su número de onda zonal es menor que el número de onda estacionario [@James]. En la \autoref{fig:ks-ncep} se muestra el número de onda estacionario para el nivel de 200hPa. Entre otoño y primavera se destaca claramente la región del Pacífico Oeste en la cual la propagación meridional está inhibida. Además, en todas las estaciones, las ondas cortas no pueden propagarse meridionalmente en latitudes altas. La \autoref{fig:ks-ncep} muestra que las ondas de Rossby barotrópicas con k menores o iguales a 3 pueden propagarse meridionalmente en las cuatro estaciones hasta aproximadamente los 60°S, excepto en la franja de longitudes entre 60°E y 120°O, donde quedan atrapadas al sur de 45°S (excepto en verano).
```{r ks-ncep, fig.cap = "Número de onda estacionario en 200hPa en contornos (NCEP). En gris se marcan las áreas donde el número de onda estacionario es imaginario.", fig.class = "fullpage"}
ncep.mean.season[lev == 200] %>%
.[!is.finite(k), k.full := 10] %>%
ggplot(aes(lon, lat)) +
# geom_contour_fill(aes(z = k.full), breaks = 1:9) +
stat_subset(aes(subset = !is.finite(k)),
geom = "tile", color = "gray50",
fill = "gray50") +
geom_contour_fine(aes(z = k), breaks = 0:9, color = "black",
xwrap = c(0, 360)) +
geom_text_contour(aes(z = k), breaks = 0:9, skip = 0, size = 1.6,
check_overlap = TRUE, stroke = 0.25,
rotate = FALSE, min.size = 10,
xwrap = c(0, 360)) +
scale_fill_viridis_c(oob = scales::squish,
limits = c(1, 9)) +
map.SH +
scale_s_map() +
coord_quickmap() +
facet_wrap(~season)
```
## Ondas Quasiestacionarias
La \autoref{fig:r2-ncep} muestra el corte vertical-meridional de $r^2$ de Fourier (definido en la \autoref{metodologia}) para las ondas estacionarias 1 a 4 de manera de analizar la importancia relativa de cada una con respecto a la variabilidad total. Consistente con lo encontrado previamente en el campo de Z\*, la QS1 explica la mayor parte de la variabilidad en todo el dominio al sur de los 45°S. La QS2 es preponderante en la estratósfera ecuatorial, en la costa antártica y alrededor de 35°S, donde es el modo dominante en toda la columna de aire en verano. La QS3, a diferencia de las ondas anteriores, es importante en una región reducida. Explica una parte substancial de la varianza en niveles bajos al rededor de los 45°S y mayormente en invierno. La QS4 explica muy poca varianza a excepción de cerca de superficie entre 15°S y 30°S. Ondas más cortas son aún menos importantes (no se muestra).
```{r r2-ncep, fig.class = "fullpage", fig.cap = "Proporción de varianza explicada ($r^2$) Fourier para números de onda 1 a 4 (NCEP). "}
rect.annotation <- data.frame(latmin = -65, latmax = -40,
levmin = 100, levmax = 700,
k = 3)
ncep.qs <- ncep.mean.season[, FitWave(gh, k = 1:4),
by = .(lat, lev, season)]
binwidth <- 0.1
ggplot(ncep.qs, aes(lat, lev)) +
geom_contour_fill(aes(z = r2), binwidth = binwidth, na.rm = TRUE) +
surface +
# geom_index.region(rect.annotation) +
scale_fill_viridis_c(name = expression(r^2), limits = c(0, 1),
breaks = MakeBreaks(binwidth),
guide = guide_colorstrip_bottom(45),
option = "D") +
scale_y_level(breaks = c(1000, plot.levs, 10)) +
scale_x_latitude(name = "latitud", trans = "reverse",
ticks = 15) +
coord_latlev() +
facet_grid(k ~ season, labeller = labeller(k = qs.lab))
```
El $r^2$ permite analizar la importancia relativa de cada modo con respecto a la variabilidad total pero la amplitud (cuyo corte vertica-meridional se muestra en la \autoref{fig:ampl-ncep}) permite estimar la magnitud de cada onda independientemente de las demás. Las diferencias entre los campos de $r^2$ y los de amplitud son evidentes comparando esta figura con la \autoref{fig:r2-ncep} (notar la escala logarítmica en los colores). La amplitud de la QS1 muestra un máximo bien definido centrado en 60°S que en verano se encuentra en niveles más bajos que en las otras estaciones. También exhibe un máximo relativo entre 15°S y 30°S en verano, mientras que maximiza en latitudes medias en invierno y primavera. Estas características están presentes también en las otras ondas estacionarias consideradas.
En el caso de la QS2, se evidencia que a pesar de tener máximos de $r^2$ en la estratósfera al norte de 45°S, alcanza su máxima amplitud al sur de esa latitud y en 200hPa en verano y en 30hPa en invierno. Su actividad en la costa antártica se extiende en toda la tropósfera en invierno (a pesar de que en $r^2$ pierde importancia por encima de los 200hPa).
La región de amplitud máxima de la QS3, coincide aproximadamente con la región de máximo $r^2$ entre otoño y primavera, aunque con menor magnitud en superficie y menor extensión en toda la columna. En verano, en cambio, exhibe un máximo de amplitud importante en latitudes medias que no se asocia con valores máximos de $r^2$.
La QS4 presenta un máximo de amplitud bien definido en la troposfera media-alta sólo en verano, entre 15°S y 30°S.
```{r ampl-ncep, fig.class = "fullpage", fig.cap = "Amplitud de Fourier (mgp) para números de onda 1 a 4 (NCEP)."}
breaks <- 2^seq(0, log2(650), by = 1)
ggplot(ncep.qs, aes(lat, lev)) +
geom_contour_fill(aes(z = amplitude), breaks = breaks, na.rm = TRUE) +
surface +
# geom_index.region(rect.annotation) +
scale_fill_viridis_c(name = "Amplitud (escala logarítmica)",
trans = "log2",
breaks = breaks,
labels = round(breaks, 1),
guide = guide_colorstrip_bottom(45),
option = "D") +
scale_y_level(breaks = c(1000, plot.levs, 10)) +
scale_x_latitude(name = "latitud", trans = "reverse",
ticks = 15) +
coord_latlev() +
facet_grid(k ~ season, labeller = labeller(k = qs.lab))
```
# Onda 3
En este capítulo se analiza la climatología observada de la QS3 a partir de su reconstrucción mediante descomposición de Fourier. Se estudia su amplitud y fase y se propone una división estacional alternativa a partir del análisis de componentes principales. Además, se muestran la estructura típica de la altura geopotencial y la función corriente asociada a la QS3 a partir de regresiones con respecto a la amplitud de la QS3.
## Características típicas
```{r calc-qs3-ncep}
lons <- unique(ncep$lon)
qs.wave <- ncep.qs.all[k == 3, .(lon = lons,
QS3 = amplitude*cos(3*(lons*pi/180 - phase))),
by = .(lat, lev, date)]
qs.wave.season <- qs.wave[, .(mean = mean(QS3),
sd = sd(QS3)),
by = .(lon, lat, lev, season(date, lang = "es"))]
```
```{r qs3-ncep, fig.class = "pagewidth", fig.cap = "Z* media (mgp) reconstruida a partir de la QS3 en 300hPa (NCEP).", fig.height = 6}
binwidth <- 10
cutlat <- data.frame(lat = c(-52.5, rep(NA, 3)),
season = c("Verano", "Invierno", "Otoño", "Primavera"))
ggplot(qs.wave.season[lev == 300], aes(lon, lat)) +
geom_contour_fill(aes(z = mean), breaks = AnchorBreaks(0, binwidth, 0),
xwrap = c(0, 360)) +
map.SH +
scale_s_map() +
scale_fill_divergent(breaks = AnchorBreaks(0, binwidth, 0),
name = "QS3",
guide = guide_colorstrip_bottom()) +
facet_wrap(~season, ncol = 2) +
coord_quickmap()
```
En la \autoref{fig:qs3-ncep} se muestra el campo de Z\* reconstruido sólo a partir de la QS3 en 300hPa, que ilustra lo que sucede en todos los niveles dado que su estructura es barotrópica equivalente (como se verá en la \autoref{fig:qs3-ncep-corte}). De acuerdo con lo encontrado en la amplitud de Fourier para la QS3 (\autoref{fig:ampl-ncep}), la amplitud es máxima entre 60°S y 45°S con menor intensidad en primavera. En el verano la fase es tal que una de las tres anomalías anticiclónicas se ubica hacia el este del sur de Sudamérica. Se observa que existe un corrimiento de la fase entre verano e invierno de poco más de 15° (algo ya observado por @Loon1972 y @Mo1985) anticipando que el efecto de la QS3 sobre cada lugar pueda tener una componente estacional.
Además, las anomalías presentan una inclinación meridional que, como la teoría de ondas de Rossby indica, está asociada a transportes perturbados de cantidad de movimiento hacia el polo. La inclinación es más importante en las estaciones de transición, pero menor en verano y no detectable en el invierno.
```{r uv-qs2-ncep, include = params$draft}
qs.wave.season[,
c("ug", "vg") := GeostrophicWind(mean, lon, lat,
cyclical = TRUE),
by = .(lev, season)] %>%
.[lev == 300,
.(uv = mean(ug*vg, na.rm = T)), by = .(season)] %>%
knitr::kable(col.names = c("Estación", "[u\\*v\\*]"), digits = 3, caption = "Transporte meridinoal de cantidad de viento zonal NO SE PUBLICA")
```
```{r qs3-ncep-corte, fig.class = "pagewidth", fig.cap = "Corte zonal en 60°S de Z* (mgp) reconstruida a partir de la QS3 (NCEP).", fig.height = 4}
ggplot(qs.wave.season[lat %~% cutlat$lat[1]], aes(lon, lev)) +
geom_contour_fill(aes(z = mean), breaks = AnchorBreaks(0, binwidth, 0),
xwrap = c(0, 360)) +
scale_y_level(breaks = c(1000, plot.levs, 10)) +
scale_x_longitude(name = "longitud") +
scale_fill_divergent(breaks = AnchorBreaks(0, binwidth, 0),
name = "QS3",
guide = guide_colorstrip_bottom()) +
facet_wrap(~season, ncol = 2)
```
La estructura vertical de las perturbaciones zonales de geopotencial reconstruidas a partir de la QS3 se presenta en la \autoref{fig:qs3-ncep-corte}. En todas las estaciones la mayor amplitud se da en 300hPa, con el máximo desarrollo vertical en invierno, seguido por el otoño y verano. Se destaca además la variación estacional de la fase descripta previamente. Asimismo, se observa que existe una variación estacional en la inclinación vertical de las perturbaciones. En invierno y en primavera, los extremos de la onda presentan una ligera inclinación hacia el oeste por debajo de los 300hPa, que no se detecta en las otras estaciones.
```{r qs3sd-ncep, fig.class = "pagewidth", fig.cap = "Desvío estándar temporal de Z* (mgp) reconstruida a partir de la QS3. Se incluyen en negro los contornos de $\\pm$ 20mgp de la amplitud de Fourier para indicar la posición de los centros de las perturbaciones (NCEP).", fig.height = 6}
binwidth <- 5
cutlat <- -52.5
ggplot(qs.wave.season[lev == 300], aes(lon, lat)) +
geom_contour_fill(aes(z = sd), binwidth = binwidth, xwrap = c(0, 360)) +
geom_contour2(aes(z = mean), breaks = c(1, -1)*20, color = "black",
size = 0.5, xwrap = c(0, 360)) +
map.SH +
scale_s_map() +
scale_fill_viridis_c(name = "Desvío estándar de QS3",
breaks = MakeBreaks(binwidth),
guide = guide_colorstrip_bottom()) +
facet_wrap(~season, ncol = 2) +
coord_quickmap()
```
En la \autoref{fig:qs3sd-ncep} se muestra el desvío estándar de Z* reconstruidas a partir de la QS3. La variabilidad máxima se da entre los centros de anomalías ciclónicas y anticiclónicas (marcados en la \autoref{fig:qs3sd-ncep} con contornos negros), indicando que la variabilidad del geopotencial asociada a la QS3 se asociaría principalmente con defasajes que ocurren dentro de cada estación.
\section*{Variación meridional}
```{r calc-wavelet}
wv.mean.season <- ncep.mean.season[,
.(lon = lon,
amplitude = unlist(PeriodicWavelet(gh, 3))),
by = .(lat, lev, season)]
# file.wavelet <- "DATA/ncep.wv.Rds"
wv.all.f <- memoise(function() {
ncep[, .(lon = lon, gh.z = gh.z,
amplitude = unlist(PeriodicWavelet(gh, 3))),
by = .(lat, lev, date)]
})