Versions Compared

Key

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

CEMS-Flood data comes primarily in GRIB2 format. 

To read GRIB files we encourage using Python and the xarray's CFGRIB engine.xarray and cfgrib packages.

This guideline provides instructions about how to install required libraries (Follow the instructions below to install the required libraries, assuming you are working on a Linux OS) and document dataset's specific configurations that must be set when reading GRIBs.


Table of Contents

Tools and libraries installation


First of all install Conda, a Python packages and environments manager.

...

Code Block
languagepy
titleOpen a GRIB file
collapsetrue
# assumed you have download from the Climate Data Store a GloFAS GRIB file named 'download.grib'
 
In [1]: import xarray as xr

# reading GloFAS GRIB file
In [2]: ds = xr.open_dataset('download.grib',engine='cfgrib')


In [3]: ds
Out[4]:
<xarray.Dataset>
Dimensions:     (latitude: 1500, longitude: 3600, step: 3, time: 3)
Coordinates:
    number      int64 ...
  * time        (time) datetime64[ns] 2019-12-01 2019-12-02 2019-12-03
  * step        (step) timedelta64[ns] 1 days 2 days 3 days
    surface     int64 ...
  * latitude    (latitude) float64 89.95 89.85 89.75 ... -59.75 -59.85 -59.95
  * longitude   (longitude) float64 -179.9 -179.8 -179.8 ... 179.7 179.8 179.9
    valid_time  (time, step) datetime64[ns] ...
Data variables:
    dis24       (time, step, latitude, longitude) float32 ...
Attributes:
    GRIB_edition:            2
    GRIB_centre:             ecmf
    GRIB_centreDescription:  European Centre for Medium-Range Weather Forecasts
    GRIB_subCentre:          0
    Conventions:             CF-1.7
    institution:             European Centre for Medium-Range Weather Forecasts
    history:                 2021-02-11T11:00:21 GRIB to CDM+CF via cfgrib-0....


Dataset's specific cfgrib configurations


The different GRIB data structure of the EFAS and GloFAS datasets may require some additional configuration.

...

. It usually consists in additional parameters specified in the backend_kwargs argument.

Read GRIB historical datasets:

CEMS-Floods offers two historical datasets: GloFAS and EFAS historical.


Code Block
languagepy
titleRead historical
collapsetrue
import xarray as xr

ds = xr.open_dataset("glofas_historical_201901.grib",engine="cfgrib",backend_kwargs={'time_dims':['time']})


Read a GRIB file that has multiple product types:


There are 4 datasets that may have more that one product type in a GRIB file:EFAS

  • FAS forecast:  "control reforecast", "ensemble perturbed reforecast", "high resolution forecast"
  • EFAS reforecast: "control reforecast", "ensemble perturbed reforecast" 
  • GloFAS historical: "consolidated", "intermediate"
  • GloFAS forecast:  "control reforecast", "ensemble perturbed reforecasts" 
  • GloFAS reforecast: "control reforecast", "ensemble perturbed reforecast" 

In order to read them you need to specify which product type you are reading using the backend_kwargs:

Code Block
languagepy
titleRead GRIB file with 2 product types
collapsetrue
import xarray as xr

# Reading the Control reforecast (cf) data

glofas_cf = xr.open_dataset("Glofas_forecast.grib",  engine='cfgrib', backend_kwargs={'filter_by_keys': {'dataType': 'cf'}, 'indexpath':''}) 


 # Reading the Ensemble perturbed reforecasts (pf) data

glofas_pf = xr.open_dataset("Glofas_forecast.grib ",  engine='cfgrib', backend_kwargs={'filter_by_keys': {'dataType': 'pf'}, 'indexpath':''}) 


...