Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3

Show If
spacePermission@self:edit

Major modification in progress for this article - please DO NOT UPDATE THIS PAGE or your edits will get overwritten when the new modified article will be published. Please edit the working copy of this page in the In Progress New Knowledge Base articles section.

...

1 - Introduction

This article describes how users can access the family of ERA5 datasets via the Climate Data Store (CDS) infrastructure.

...

2 - Prerequisites

...

  1. Go to the C3S climate data store (CDS).
  2. Type  'ERA5' in the search box.
  3. Follow the ERA5 dataset title link of interest (there will be many more hits).
  4. Currently there are four eight online ERA5 and two ERA5-Land catalogue entriesentries  

    Expand
    titleShow ERA5 catalogue entries in the CDS


  5. Each of these dataset catalogue entries includes the following tabs:
    • Overview . This gives a description of the selected dataset and metadata information (e.g. spatial details, file format, variables, etc).
    • Documentation . This provides links to detailed documentation about the dataset.
    • Download data . This is a download web form.
  6. Go to the Download data tab to make your selection for ERA5 data retrieval. Using this web interface, you can:
    • make selections as per your requirements. For your convenience only valid combinations will show; invalid combinations are greyed out interactively.
    • accept the data licence in the Terms of use section (in case you had not yet accepted it). You will only see this section after you have logged in.

      Note

      You will need to do this regardless whether you are accessing data through the web interface or through the CDS API (see below).


  7. Click on the button Submit Form at the bottom right to submit your data request (you must be logged in and have accepted the terms and conditions before submitting your request).

  8. You will now be redirected to the Your requests page.

...

  1. Build a basic CDS API request.

    • You can use the CDS web interface to help you build your CDS API download script.

    • In the Download data tab, make some selections, then click the button Show API request at the bottom left and you will be presented with the script.

    • Copy and paste this to your preferred text editor.

      Expand
      titleBasic CDS API script example (for ERA5 1979-present) to download temperature at a given pressure level, 1000 hPa is shown HERE.


      Code Block
      languagetext
      #!/usr/bin/env python
      
      import cdsapi
      
      c = cdsapi.Client()
      
      c.retrieve(
          'reanalysis-era5-pressure-levels',
          {
              'product_type': 'reanalysis',
              'variable': 'temperature',
              'pressure_level': '1000',
              'year': '2008',
              'month': '01',
              'day': '01',
              'time': '12:00',
              'format': 'netcdf',                 # Supported format: grib and netcdf. Default: grib
          },
          'download.nc')                          # Output file. Adapt as you wish.
      



  2. Refine your CDS API script for ERA5 data listed in CDS for optional post-processing.
    • For a different grid resolution, use the key 'grid'.
    • Please note that the ERA5 native grid of online CDS is 0.25°x0.25° (atmosphere), 0.5°x0.5° (ocean waves), mean, spread and members: 0.5°x0.5° (atmosphere), 1°x1° (ocean waves). ERA5-Land: 0.1°x0.1°. So this will be returned by default.

    • Expand
      titleClick here for a sample script (for ERA5 1979-present) that downloads temperature at a given pressure level at 1000 hPa for a geographical subset of the data and specified grid


      Code Block
      languagetext
      #!/usr/bin/env python
      import cdsapi
      
      c = cdsapi.Client()
      
      c.retrieve(
          'reanalysis-era5-pressure-levels',
          {
              'product_type': 'reanalysis',
              'variable': 'temperature',
              'pressure_level': '1000',
              'year': '2008',
              'month': '01',
              'day': '01',
              'time': '12:00',
              'format': 'netcdf',                 # Supported format: grib and netcdf. Default: grib
              'area'          : [60, -10, 50, 2], # North, West, South, East.          Default: global
              'grid'          : [1.0, 1.0],       # Latitude/longitude grid.           Default: 0.25 x 0.25
          },
          'era5_temperature_sub_area.nc')         # Output file. Adapt as you wish.



...

Due to the vast volume of these datasets (currently about 6 petabyte) these are not stored on spinning disk, but reside in the ECMWF's MARS tape archive, instead. Access to this data is in general much slower. Please note that the ERA5 back extension (preliminary version) 'raw' format from MARS is not yet available (expected around the end of 2020).


(warning)Please be aware that there is an additional queueing system for downloading data from the ECMWF's MARS archive - expect several hours to several days for submitted requests to complete at this time. You can check the Live status of your request

...

  1. Open the MARS ERA5 catalogue
  2. browse for discovery, and browse your way to the parameter level to build a request.

    Info
    • More information on the available streams, product types and levels is available in the ERA5 data documentation.
    • On the parameter level, use the left-mouse button and the shift key to select more than one field in one retrieval.


    Note

    To retrieve MARS data efficiently (and get your data quicker!) you should retrieve all the data you need from one tape, then from the next tape, and so on.

    As a rule of thumb everything shown on one page at parameter level in the MARS ERA5 catalogue is grouped together on one tape

    • For analysis fields this is one month of data with respect to one particular level type (e.g. surface).
    • For forecast fields on model levels this is limited to one single day.


  3. Use the " View MARS request " feature - this will help you build your own CDS API Python script to retrieve the data through the CDS API.

    Expand
    titleExample: Download ERA5 model level analysis data (temperature) in the native spherical harmonics representation in GRIB format.


    Code Block
    #!/usr/bin/env python
    import cdsapi
    c = cdsapi.Client()
    c.retrieve('reanalysis-era5-complete', { # Requests follow MARS syntax
                                             # Keywords 'expver' and 'class' can be dropped. They are obsolete
                                             # since their values are imposed by 'reanalysis-era5-complete'
        'date'    : '2013-01-01',            # The hyphens can be omitted
        'levelist': '1/10/100/137',          # 1 is top level, 137 the lowest model level in ERA5. Use '/' to separate values.
        'levtype' : 'ml',
        'param'   : '130',                   # Full information at https://apps.ecmwf.int/codes/grib/param-db/
                                             # The native representation for temperature is spherical harmonics
        'stream'  : 'oper',                  # Denotes ERA5. Ensemble members are selected by 'enda'
        'time'    : '00/to/23/by/6',         # You can drop :00:00 and use MARS short-hand notation, instead of '00/06/12/18'
        'type'    : 'an',
    }, 'output')                             # Output file; in this example containing fields in grib format. Adapt as you wish.
    



  4. Tailor your request to
    1. re-grid to the desired regular lat-lon resolution
    2. convert to NetCDF (works for regular grids only, i.e., so you need to use the 'grid' keyword as well)
    3. select sub areas


      Expand
      titleExample to download model level ERA5 analysis data (temperature) for a given area at a regular lat/lon grid in NetCDF format.


      Code Block
      #!/usr/bin/env python
      import cdsapi
      c = cdsapi.Client()
      c.retrieve('reanalysis-era5-complete', { # Requests follow MARS syntax
                                               # Keywords 'expver' and 'class' can be dropped. They are obsolete
                                               # since their values are imposed by 'reanalysis-era5-complete'
          'date'    : '2013-01-01',            # The hyphens can be omitted
          'levelist': '1/10/100/137',          # 1 is top level, 137 the lowest model level in ERA5. Use '/' to separate values.
          'levtype' : 'ml',
          'param'   : '130',                   # Full information at https://apps.ecmwf.int/codes/grib/param-db/
                                               # The native representation for temperature is spherical harmonics
          'stream'  : 'oper',                  # Denotes ERA5. Ensemble members are selected by 'enda'
          'time'    : '00/to/23/by/6',         # You can drop :00:00 and use MARS short-hand notation, instead of '00/06/12/18'
          'type'    : 'an',
          'area'    : '80/-50/-25/0',          # North, West, South, East. Default: global
          'grid'    : '1.0/1.0',               # Latitude/longitude. Default: spherical harmonics or reduced Gaussian grid
          'format'  : 'netcdf',                # Output needs to be regular lat-lon, so only works in combination with 'grid'!
      }, 'ERA5-ml-temperature-subarea.nc')     # Output file. Adapt as you wish.
      



...