This section documents and provides learning resources about the different CEMS-Flood data formats and structures.

CEMS-Flood data are available in GRIB(2) and NetCDF(4) formats.

GRIB

GRIB

GRIdded Binary (or General Regularly-distributed Information in Binary form) is a common data format used in meteorology and standardised by the World Meteorological Organisation.

    • There are two versions of GRIB: GRIB edition 1 (GRIB1) and edition 2 (GRIB2).
    • CEMS-Flood data is available in GRIB2.
    • It is archived in GRIB2 in the Meteorological Archival and Retrieval System (MARS) at ECMWF, see the MARS user documentation for further information.
    • Further information on the data format is available in the What are GRIB files page on the Copernicus Knowledge Base.

Working with GRIB2 files

There are 2 principal ways to work with GRIB2 files:

1. ecCodes

A library developed at ECMWF consisting of a set of tools to code and decode GRIBs, as well as other formats. The ecCodes command-line utilities are commonly used by the meteorology community. Please consult the Copernicus Knowledge Base page How to read GRIB files for an overview of the commands available.

 2. CFGRIB


A Python interface to the eccodes library. It is one of the supported backends of Xarray. Please consult the Open CEMS-Flood data page for example of using CFGRIB with CEMS-Flood data.

Example of EFAS GRIB2 data structure for river discharge reforecast
<xarray.Dataset>
Dimensions:     (step: 2, y: 950, x: 1000)
Coordinates:
    number      int64 ...
    time        datetime64[ns] ...
  * step        (step) timedelta64[ns] 00:00:00 06:00:00
    surface     int64 ...
    valid_time  (step) datetime64[ns] ...
Dimensions without coordinates: y, x
Data variables:
    dis06       (step, y, x) float32 ... 

NetCDF

NetCDF

The Network Common Data Format (NetCDF), is a machine-independent data format widely used in the scientific community to store array-oriented multi-dimensional data. CEMS-Flood datasets are conformant with the version 4 data model (NetCDF-4) and Version 1.7 of the CF convention.

Example of EFAS NetCDF data structure for historical river discharge
dimensions:
        time = 4 ;
        y = 950 ;
        x = 1000 ;
variables:
        int64 time(time) ;
                time:long_name = "initial time of forecast" ;
                time:standard_name = "forecast_reference_time" ;
                time:units = "seconds since 1970-01-01" ;
                time:calendar = "proleptic_gregorian" ;
        double step ;
                step:_FillValue = NaN ;
                step:long_name = "time since forecast_reference_time" ;
                step:standard_name = "forecast_period" ;
                step:units = "hours" ;
        double surface ;
                surface:_FillValue = NaN ;
                surface:long_name = "original GRIB coordinate for key: level(surface)" ;
                surface:units = "1" ;
        double valid_time(time) ;
                valid_time:_FillValue = NaN ;
                valid_time:standard_name = "time" ;
                valid_time:long_name = "time" ;
                valid_time:units = "seconds since 1970-01-01" ;
                valid_time:calendar = "proleptic_gregorian" ;
        float dis06(time, y, x) ;
                dis06:_FillValue = NaNf ;
                dis06:GRIB_paramId = 240023LL ;
                dis06:GRIB_dataType = "sfo" ;
                dis06:GRIB_numberOfPoints = 950000LL ;
                dis06:GRIB_typeOfLevel = "surface" ;
                dis06:GRIB_stepUnits = 1LL ;
                dis06:GRIB_stepType = "avg" ;
                dis06:GRIB_gridType = "lambert_azimuthal_equal_area" ;
                dis06:GRIB_NV = 0LL ;
                dis06:GRIB_cfName = "unknown" ;
                dis06:GRIB_cfVarName = "dis06" ;
                dis06:GRIB_gridDefinitionDescription = "Lambert azimuthal equal area projection " ;
                dis06:GRIB_missingValue = 9999LL ;
                dis06:GRIB_name = "Mean discharge in the last 6 hours" ;
                dis06:GRIB_shortName = "dis06" ;
                dis06:GRIB_units = "m**3 s**-1" ;
                dis06:long_name = "Mean discharge in the last 6 hours" ;
                dis06:units = "m**3 s**-1" ;
                dis06:standard_name = "unknown" ;
                dis06:coordinates = "time step surface valid_time" ;

// global attributes:
                :GRIB_edition = 2LL ;
                :GRIB_centre = "ecmf" ;
                :GRIB_centreDescription = "European Centre for Medium-Range Weather Forecasts" ;
                :GRIB_subCentre = 0LL ;
                :Conventions = "CF-1.7" ;
                :institution = "European Centre for Medium-Range Weather Forecasts" ;
                :history = "2021-11-23T10:25 GRIB to CDM+CF via cfgrib-0.9.9.0/ecCodes-2.23.0 with {\"source\": \"adaptor.mars.external-1637662774.2155154-5073-2-b5af81a6-2574-467a-81e4-8ad529c6fd1e.grib\", \"filter_by_keys\": {}, \"encode_cf\": [\"parameter\", \"time\", \"geography\", \"vertical\"]}" ;

Availability of CEMS-Flood data formats

GRIB2 is the official supported format, however, NetCDF4 is also supported for some of the datasets (see Table 1). More information on the two formats can be found in the GRIB2 and NetCDF4 sections.

Table 1 - Available data formats by data access service. The auxiliary files are indicated in green.

Service ProviderDatasetFormat

EFAS              











Historical

GRIB2 and NetCDF4
Forecast GRIB2 and NetCDF4
ReforecastGRIB2 and NetCDF4
SeasonalGRIB2 and NetCDF4
Seasonal ReforecastGRIB2 and NetCDF4       
Upstream areaNetCDF4   

Elevation (Digital Elevation Model)

NetCDF4   
Soil depthNetCDF4   
Field capacityNetCDF4   
Wilting pointNetCDF4   
GloFASHistoricalGRIB2
ForecastGRIB2 and NetCDF4
Reforecast

GRIB2

SeasonalGRIB2
Seasonal ReforecastGRIB2
Upstream areaNetCDF4
Elevation (Digitial Elevation Model)NetCDF4


CEMS-Flood grids

CEMS-Flood has two services for different spatial domains, EFAS (for Europe) and GloFAS (for the world), each consisting of: 

Table 2 - Information on EFAS and GloFAS grids


Dimensions

ResolutionProjectionCoordinates of the upper left corner of the domain (lat, lon)Coordinates of the bottom right corner of the domain (lat, lon)Number of data points
Latitude
(rows)

Longitude
(columns)

EFAS


95010005 x 5 km

EPSG:3035

(Lambert Azimuthal Equal Area)

2500000, 5500000

(metres)

7500000, 750000

(metres)

950000
GloFAS
150036000.1° x 0.1°

EPSG:4326

(WGS 84)

89.95, 180.05

(decimal degrees)

-59.95, -179.95

(decimal degrees)

5400000
GloFAS historical300072000.05° x 0.05°

EPSG:4326

(WGS 84)

89.975, 179.975

(decimal degrees)

-59.975, -179.975

(decimal degrees)

21600000