Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

(LS)2D: LES and SCM - Large Scale Dynamics

PyPI version Static Badge

(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/how-to-api .

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 domain
  • central_lon: central longitude of LES/SCM domain
  • area_size: spatial size of ERA5 download (central lat/lon +/- area_size degrees)
  • era5_path: storage location of ERA5 downloads/data
  • era5_expver: ERA5 experiment version number (1=normal ERA5, 5=near realtime). With CDS, only 1 works.
  • case_name: experiment name, only used to create subdirectory in era5_path.
  • start_date: Python datetime object with start date/time
  • end_date: Python datetime object with end date/time
  • write_log: Write ERA5 download to screen (False) or log file (True)
  • data_source: Download method (CDS or MARS). MARS only works on e.g. the ECMWF supercomputer.

Contributing guidelines

Contributions through pull requests are always appreciated. To keep the code style consistent, we stick to PEP8 with two modifications (see project.toml):

  • The maximum line length is set to 120 characters instead of 80.
  • Single quotes are used for strings instead of double quotes.

To ensure consistent formatting, the code should be automatically formatted using ruff. It can be installed via pip and can be run on the entire codebase from the project root (this directory) like

ruff format .

Metadata

Release files for ls2d 1.1.0b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ls2d 1.1.0b1
File Size Uploaded
ls2d-1.1.0b1.tar.gz 92.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ls2d 1.1.0b1
File Interpreter ABI Platform
ls2d-1.1.0b1-py3-none-any.whl Python 3 none any Details

Total release size: 185.2 kB

Release files / ls2d-1.1.0b1.tar.gz

Download URL ls2d-1.1.0b1.tar.gz
Size 92.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ddfef60e2b0fb4cc56b1097e05847502e4aea1c8ce41d157432d8cc9e1a61089
BLAKE2b-256 checksum
How to use checksums
397e3d6b317d3a97527764281d0cc97d5a0e19f1999581c3463735c026d1d5c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / ls2d-1.1.0b1-py3-none-any.whl

Download URL ls2d-1.1.0b1-py3-none-any.whl
Size 92.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf7e23b8e74821531e5dadf45fb2bd55dd442f85544d22d1cf0adc45ad6ab721
BLAKE2b-256 checksum
How to use checksums
dd2ed03babae42c072f81acdd364d1ffcf26db9a924497a228ab6de563a16056
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page