Mid-Latitude Evaluation System
Oct 2014 - Jan 2021
by P. Davini (CNR-ISAC, p.davini@isac.cnr.it)
Acknowledgements to:
G. Di Capua (PIK), J. von Hardenberg (CNR-ISAC),
I. Mavilia (CNR-ISAC), E. Arnone (University of Torino)
MiLES is a diagnostic suite based on R and CDO aimed at estimating the properties of Northern Hemisphere mid-latitude climate variability in Global Climate Models and Reanalysis datasets. It has been originally thought for EC-Earth GCM output and then it has been extended to any model or Reanalysis datasets.
It relies only daily 500hPa Northern Hemisphere geopotential height data and produces NetCDF4 outputs and climatological figures over the chosen time period and season.
Before performing analysis, data are preprocessed and interpolated on a common 2.5x2.5 grid using CDO.
Model data can be compared against ECMWF ERA-Interim Reanalysis over a standard period (1979-2017) or with any other MiLES-generated data.
Current version includes:
1D Atmospheric Blocking: Tibaldi and Molteni (1990) index for Northern Hemisphere.
Computed at fixed latitude of 60N, with delta of -5,-2.5,0,2.5,5 deg, fiN=80N and fiS=40N.
Full timeseries and climatologies are provided in NetCDF4 Zip format.
2D Atmospheric blocking: following the index by Davini et al. (2012).
It is a 2D version of Tibaldi and Molteni (1990) for Northern Hemisphere
atmospheric blocking evaluating meridional gradient reversal at 500hPa.
It includes also Meridional Gradient Index and Blocking Intensity index
and Rossby wave orientation index, computing both Instantenous Blocking and Blocking Events frequency.
Blocking Events definition allows the estimation of the blocking duration.
A supplementary Instantaneous Blocking index with the GHGS2 conditon is also evaluted.
Full timeseries and climatologies are provided in NetCDF4 Zip format.
Z500 Empirical Orthogonal Functions: Based on EOFs computed by R using Singular Value Decomposition.
First 4 EOFs for North Atlantic (over the 90W-40E, 20N-85N box), North Pacific (140E-80W, 20N-85N) and Northern Hemisphere (20N-85N) can be computed
Figures showing linear regression of PCs on monthly Z500 are provided.
PCs and eigenvectors, as well as the variances explained are provided in NetCDF4 Zip format.
North Atlantic Weather Regimes: following k-means clustering of 500hPa geopotential height.
4 weather regimes over North Atlantic (80W-40E 30N-87.5N) are evaluted using
anomalies from daily seasonal cycle. North Atlantic first EOFs (retaining the 80% of variance) are computed to reduce
the phase-space dimension and then k-means clustering using Hartigan-Wong algorithm with k=4 is computed.
Cluster assignment is performed analyzing positions of absolute minima and maxima.
Figures report patterns, regimes assignation and frequencies of occurrence. NetCDF4 Zip data are saved.
Only 4 regimes and DJF season is supported so far.
Meandering Index : following the index introduced by Di Capua and Coumou (2016). It evaluates the
waviness of the atmosphere (i.e. the length of the longest isopleth) at a reference latitude of 60N.
Original code can be found at https://github.com/giorgiadicapua/MeanderingIndex.
NetCDF4 Zip data are saved but no figures are provided.
Be aware that this is a free scientific tool in continous development, then it may not be free of bugs. Please report any issue on the GitHub portal.
Please cite MiLES in your publication: “P. Davini, 2018: MiLES - Mid Latitude Evaluation System. Zenodo. http://doi.org/10.5281/zenodo.1237837“. If you want to cite a specific version of check on Zenodo which DOI to use.
Extra references to specific indices are:
a). “Tibaldi S. and Molteni F. 1990. On the operational predictability of blocking. Tellus A 42(3): 343–365, doi:10.1034/j.1600-0870.1990.t01-2-00003.x.” in case you use the 1D blocking index.
b). “Davini P., C. Cagnazzo, S. Gualdi, and A. Navarra, 2012: Bidimensional Diagnostics, Variability, and Trends of Northern Hemisphere Blocking. J. Climate, 25, 6496–6509, doi: 10.1175/JCLI-D-12-00032.1.” in case you use the 2D blocking index.
c). “Di Capua G. and Coumou D. 2016: Changes in meandering of the Northern Hemisphere circulation. Environ. Res. Lett. 11 (2016) 094028 doi:10.1088/1748-9326/11/9/094028” in case you use the Meandering Index.
MiLES v0.6 has been also included in the ESMValTool Package.
IMPORTANT: there are 5 R packages (ncdf4, maps, PCICt, akima and mapproj) currently needed to run MiLES.
You have to run Rscript config/installpack.R
as first step in order to install the packages.
If everything runs fine, their installation is performed by an automated routine that brings the user through the standard web-based installation.
Packages are also included in MiLES and can be installed offline setting web=0
in the script.
If you are aware of other way to implement this 5 passages without using those packages, please contact me.
Before running MiLES the 5 above-mentioned R packages should installed.
Two configuration scripts control the program options:
config/config_$MACHINE.sh
controls the properties of your environment..tmpl
files for Unix and Mac Os X machines are provided.config/R_config.R
controls the plot properties. If everything is ok, you should not touch this file.The simplest way to run MiLES is executing in bash environment ./wrapper_miles.sh namelist.sh
.
Options as datasets, projects, experiment, ensemble, seasons, which EOFs compute,
reference dataset or file output format as well as the map projection to use
can specified since v0.7 through the namelists. Here below a list of the variables that can be set up
machine
-> the name of the configuration file of your local machine.project_exp
-> a project identifier, e.g. CMIP5 (unset if you do not want to use it).dataset_exp
-> identifier for the dataset used to create files and paths structure (mandatory!)expid_exp
-> identifier for the experiment type used to create files and paths structure (unset if you do not want to use it)ens_exp
-> identifier for the ensemble members used to create files and paths structure (unset if you do not want to use it).year1_exp
and year2_exp
-> the years on which MiLES will run. std_clim
-> can be true
to use standard ERAI 1979-2017 climatology, false
for custom comparison.seasons
-> specify one or more of the 4 standard seasons using 3 characters (DJF-MAM-JJA-SON). Use ALL
to cover the full year. Otherwise, use 3 character for each month divided by an underscore to create your own season (e.g. Jan_Feb_Mar_Apr
).project_ref
,dataset_ref
, expid_ref
, ens_ref
, year1_ref
and year2_ref
-> in analogy to the main variables, these controls the experiment to be compared when std_clim=false
is set. Since v0.7 a configuration options system has been introduced. Adding specific keywords to the options
variable will provide different results: you can set block
for blocking, eofs
for EOFs, figures
for having figures and so on. See the namelist.tmpl
for the full description of the options.
teles
-> A list of one or teleconnection patterns. NAO
,PNA
or AO
for standard EOFs over North Atlantic, North Pacific and Northern Hemisphere respectively. Custorm regions can be specifieds as lon1_lon2_lat1_lat2
.output_file_type
-> pdf, eps or png figures format (pdf is default).map_projection
-> set no
for standard plot (fast). Use azequalarea
for polar plots (default). All projection from mapproj R package are supported (but not all of them have been tested).varname
and level
-> do not change these: this changes the variables the pre-processor will extract and analyse. The chain of scripts will be executed by the wrapper.
However, each MiLES script can be run autonomously from command line providing the correct sequence of arguments.
R-based scripts are written as R functions and thus can be called inside R if needed.
assimilate.sh
. MiLES is based on a pre-processing of data.
This script expects geopotential height data (daily or higher frequency) in a single folder: from v0.5 it is able to identify 500hPa data among other levels. Since v0.7 replaces the older z500_prepare.sh
since it is thought to work also on other type of data. The code interpolates data on a 2.5x2.5 grid, performs daily averaging and selects the NH only. Most importantly, it organizes the data structure in order to make it handable by MiLES. It produces a single NetCDF4 Zip files with all the data available. A check is performed in order to avoid useless run of the script: if your file is corrupted you can use the doforcedata
flags to overwrite it. You can use both geopotential or geopotential height data, the former will be automatically converted. To simplify the analysis by R, the CDO -a
is used to set an absolute time axis in the data.
eof_fast.R
and eof_figures.R
. EOFs are computed using Singular Value Decompositon (SVD) R function by the former script, while the latter provides the figures. EOFs signs for the main EOFs are checked in order to maintain consistency with the reference dataset.
blocking_fast.R
and blocking_figures.R
. Blocking analysis is performed by the first R script. The second provides the figures.
Both the Davini et al. (2012) and the Tibaldi and Molteni (1990) blocking index are computed and plotted by these scripts, as well a wide set of related dignostics. See Davini et al. (2012) for more details. Since v0.7 u500_block.R
is included for a beta computation of blocking from zonal wind at 500hPa.
regimes_fast.R
and regimes_figures.R
. North Atlntic weather regimes analysis is performed by the first R script.
Weather regimes assignation is performed using spatial positioning of maxima and minima, saving all to NetCDF data. The second script provides the figures.
meandering_fast.R
. It computes the Meandering Index following the Di Capua and Coumou (2016). No figures are yet provided.
extra_figures_block.R
. This is not called by the wrapper and it provides extra statistics, comparing several experiments with ensemble means, histogram for specific region and Taylor diagrams.
MiLES is pretty fast: on iMac 2017 (MacOS High Sierra 10.13, 3.4 GHz Intel Core i5, 16GB DDR4) 30 years of analysis for a single season takes about (test on v0.7):
Please be aware that issues may arise with large datasets (i.e. larger than 100 years) where the single file approach may be problematic.
It is recommended in such cases to split the analysis in different subsets.
next version - no target
v0.7 - Feb 2019
v0.6 - Aug 2018
v0.51 - Apr 2018
v0.5 - Mar 2018
v0.43 - Feb 2018
v0.42 - Dec 2017
v0.41 - Jul 2017
v0.4 - June 2017
v0.31 - May 2017
v0.3 - May 2017
v0.2 - Apr 2017
v0.11 - Mar 2015
v0.1 - Oct 2014