Python toolkit to downscale ERA5 with doubly-periodic large-eddy simulation
Project description
LS2D
(LS)2D: LES and SCM - Large Scale Dynamics
(LS)2D is a Python toolkit, developed to simplify all the steps required to downscale ERA5 with doubly-periodic large-eddy simulation (LES), or single-column models (SCMs). For the retrieval of ERA data, it relies on the Copernicus Data Store (CDS), or the Meteorological Archival and Retrieval System (MARS) at ECMWF computer systems.
References
(LS)2D is described in:
B.J.H. van Stratum, C.C. van Heerwaarden, & J. Vilà-Guerau de Arellano (2023). The benefits and challenges of downscaling a global reanalysis with doubly-periodic large-eddy simulations. JAMES, https://doi.org/10.1029/2023MS003750
If you use (LS)2D, we kindly request citing this paper.
Installation
If you want to use CDS to download the ERA5 data, then please start by following the steps explained at https://cds.climate.copernicus.eu/api-how-to .
PyPI
It is easiest to install (LS)2D from PyPI:
pip install ls2d
By default, this excludes the cdsapi
as a dependency. If you do want to install that as a dependency, use:
pip install ls2d[cds]
Manual
For a manual installation, you can clone the package from Github:
git clone https://github.com/LS2D/LS2D.git
In each script where you want to use (LS)2D, add the (LS)2D root directory to the Python path:
import sys
sys.path.append('/path/to/LS2D')
You will have to manually install the dependencies with pip install numpy scipy netCDF4 matplotlib cdsapi
.
Usage
Some examples are provided at https://github.com/LS2D/LS2D/tree/main/examples. The script example_1.py
downloads the ERA5 data, calculates the initial conditions and large scale forcings, and creates an example plot.
The examples directory also contains example cases for MicroHH (https://github.com/microhh/microhh).
Downloading ERA5 data
(LS)2D contains two methods to download ERA5: through the Copernicus Data Store (open for everyone), or using MARS at ECMWF systems.
The ERA5 model level data that (LS)2D requires is stored on tape archives, so downloads using CDS tend to be slow with long queueing times. For that reason, ls2d.download_era5()
will stop the Python script once the download requests are submitted to CDS. On subsequent calls of ls2d.download_era5()
, (LS)2D will check the status of the CDS request, and if the request is finished, download the ERA5 data.
The settings
dictionary
All settings for (LS)2D are wrapped in a dictionary:
central_lat
: central latitude of LES/SCM domaincentral_lon
: central longitude of LES/SCM domainarea_size
: spatial size of ERA5 download (central lat/lon +/-area_size
degrees)era5_path
: storage location of ERA5 downloads/dataera5_expver
: ERA5 experiment version number (1
=normal ERA5,5
=near realtime). With CDS, only1
works.case_name
: experiment name, only used to create subdirectory inera5_path
.start_date
: Pythondatetime
object with start date/timeend_date
: Pythondatetime
object with end date/timewrite_log
: Write ERA5 download to screen (False
) or log file (True
)data_source
: Download method (CDS
orMARS
).MARS
only works on e.g. the ECMWF supercomputer.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.