|
| 1 | +.. _recipe_wheeler_kiladis_diagnostic: |
| 2 | + |
| 3 | +Wheeler-Kiladis tropical wave spectra |
| 4 | +===================================== |
| 5 | + |
| 6 | +Overview |
| 7 | +-------- |
| 8 | + |
| 9 | +This recipe computes normalized Wheeler-Kiladis wavenumber-frequency |
| 10 | +spectra for tropical precipitation and outgoing longwave radiation. |
| 11 | + |
| 12 | +The diagnostic is intended to evaluate tropical wave variability, |
| 13 | +including Kelvin waves, equatorial Rossby waves, and broad intraseasonal |
| 14 | +variability such as the Madden-Julian Oscillation. |
| 15 | + |
| 16 | +The recipe uses standard ESMValTool preprocessors to convert units, |
| 17 | +compute daily means, extract the tropical belt between 15S and 15N, and |
| 18 | +regrid the data to a regular latitude-longitude grid. The diagnostic then |
| 19 | +computes a cosine-latitude-weighted equatorial mean, removes leap days, |
| 20 | +removes the time mean, linear trend, and annual harmonics, optionally |
| 21 | +removes the zonal mean, computes two-dimensional Fourier spectra in time |
| 22 | +and longitude, estimates a smoothed background spectrum, and plots |
| 23 | +normalized spectra with optional shallow-water dispersion curves. |
| 24 | + |
| 25 | +The diagnostic saves raw, background, and normalized Wheeler-Kiladis |
| 26 | +spectra as NetCDF files and records provenance information for both data |
| 27 | +outputs and figures. |
| 28 | + |
| 29 | +Available recipes and diagnostics |
| 30 | +--------------------------------- |
| 31 | + |
| 32 | +Recipes are stored in ``esmvaltool/recipes/``: |
| 33 | + |
| 34 | + * ``recipe_wheeler_kiladis_diagnostic.yml`` |
| 35 | + |
| 36 | +Diagnostics are stored in ``esmvaltool/diag_scripts/wheeler_kiladis/``: |
| 37 | + |
| 38 | + * ``wheeler_kiladis.py``: ESMValTool wrapper for running the |
| 39 | + Wheeler-Kiladis diagnostic. |
| 40 | + * ``spectra.py``: utilities for preparing equatorial fields and |
| 41 | + computing wavenumber-frequency spectra. |
| 42 | + * ``plot.py``: plotting utilities for normalized Wheeler-Kiladis |
| 43 | + spectra and theoretical dispersion curves. |
| 44 | + |
| 45 | +User settings in recipe |
| 46 | +----------------------- |
| 47 | + |
| 48 | +#. Script ``wheeler_kiladis/wheeler_kiladis.py`` |
| 49 | + |
| 50 | + *Optional settings for script* |
| 51 | + |
| 52 | + * ``annual_harmonics``: Number of annual harmonics removed during |
| 53 | + seasonal-cycle correction. Default: 3. |
| 54 | + |
| 55 | + * ``remove_zonal_mean``: If ``True``, remove the zonal mean before |
| 56 | + the wavenumber-frequency transform. This emphasizes propagating |
| 57 | + equatorial disturbances. Default: ``True``. |
| 58 | + |
| 59 | + * ``segment_length``: Length of each spectral segment in days. |
| 60 | + Default: 180. |
| 61 | + |
| 62 | + * ``segment_overlap``: Overlap between consecutive spectral segments |
| 63 | + in days. Default: 90. |
| 64 | + |
| 65 | + * ``sampling_frequency_per_day``: Sampling frequency of the input |
| 66 | + data in samples per day. For daily data, this should be 1.0. |
| 67 | + Default: 1.0. |
| 68 | + |
| 69 | + * ``sigma_freq``: Gaussian smoothing width in the frequency direction |
| 70 | + used to estimate the background spectrum. Default: 4.0. |
| 71 | + |
| 72 | + * ``sigma_wn``: Gaussian smoothing width in the zonal-wavenumber |
| 73 | + direction used to estimate the background spectrum. Default: 4.0. |
| 74 | + |
| 75 | + * ``max_wavenumber``: Maximum zonal wavenumber shown in the plot. |
| 76 | + Default: 15. |
| 77 | + |
| 78 | + * ``max_frequency``: Maximum frequency shown in the plot in cycles |
| 79 | + per day. Default: 0.5. |
| 80 | + |
| 81 | + * ``period_ticks``: Periods in days shown as labels on the frequency |
| 82 | + axis. Default: ``[2, 3, 5, 10, 20, 30, 60, 100]``. |
| 83 | + |
| 84 | + * ``equivalent_depths``: Equivalent depths in metres used to draw |
| 85 | + theoretical shallow-water dispersion curves. Default: |
| 86 | + ``[8, 12, 25, 50]``. |
| 87 | + |
| 88 | + * ``show_dispersion``: If ``True``, overlay theoretical Kelvin and |
| 89 | + equatorial Rossby wave dispersion curves. Default: ``True``. |
| 90 | + |
| 91 | + * ``mask_zero_wavenumber``: If ``True``, mask the |
| 92 | + zonal-wavenumber-zero column in the normalized spectrum plot. This |
| 93 | + is useful when the zonal mean has been removed. Default: ``True``. |
| 94 | + |
| 95 | +Variables |
| 96 | +--------- |
| 97 | + |
| 98 | +* pr (atmos, daily, longitude, latitude, time) |
| 99 | +* rlut (atmos, daily, longitude, latitude, time) |
| 100 | + |
| 101 | +Example plots |
| 102 | +------------- |
| 103 | + |
| 104 | +.. _wk_era5_pr_example: |
| 105 | +.. figure:: /recipes/figures/wheeler_kiladis/ERA5_pr_wk_normalized_example.png |
| 106 | + :align: center |
| 107 | + |
| 108 | + Normalized Wheeler-Kiladis spectrum for ERA5 precipitation. |
| 109 | + |
| 110 | +.. _wk_persiann_cdr_pr_example: |
| 111 | +.. figure:: /recipes/figures/wheeler_kiladis/PERSIANN-CDR_pr_wk_normalized_example.png |
| 112 | + :align: center |
| 113 | + |
| 114 | + Normalized Wheeler-Kiladis spectrum for PERSIANN-CDR precipitation. |
| 115 | + |
| 116 | +.. _wk_mpi_esm1_2_lr_rlut_example: |
| 117 | +.. figure:: /recipes/figures/wheeler_kiladis/MPI-ESM1-2-LR_rlut_wk_normalized_example.png |
| 118 | + :align: center |
| 119 | + |
| 120 | + Normalized Wheeler-Kiladis spectrum for MPI-ESM1-2-LR outgoing |
| 121 | + longwave radiation. |
| 122 | + |
| 123 | +References |
| 124 | +---------- |
| 125 | + |
| 126 | +* Wheeler, M. C. and Kiladis, G. N. (1999): Convectively Coupled |
| 127 | + Equatorial Waves: Analysis of Clouds and Temperature in the |
| 128 | + Wavenumber-Frequency Domain. |
| 129 | +* Kiladis, G. N. et al. (2009): Convectively Coupled Equatorial Waves. |
| 130 | +* Hannah et al. (2020): Evaluation of tropical variability using |
| 131 | + Wheeler-Kiladis-type spectra. |
0 commit comments