Page tree
Skip to end of metadata
Go to start of metadata

The aim of this course is to introduce students to GRIB/BUFR decoding and encoding with ecCodes : A package developed by ECMWF which provides an application programming interface and a set of tools for decoding and encoding GRIB and BUFR messages.

Note: The version of the ecCodes software used for this training course is now released (v2.10.0). Please see here.

The tarball containing all the BUFR data and practicals (including the solutions) used in the course can be found here.


 more ...

The course is a mixture of standard classroom lectures and practical activities where ecCodes will be used to solve challenges.

The aim of the course is to provide participants with an advanced knowledge of ecCodes for decoding and encoding GRIB and BUFR data.

At the end of the course, the participants will be able to:

  • inspect the content of GRIB files using a number of tools
  • handle and manipulate GRIB data with advanced tools
  • explain what BUFR is and describe its structure
  • decode/encode BUFR data with ecCodes

The course is assessed by means of an online survey which allows the participants to include their feedback and suggestions for improvements. The learning outcomes are assessed separately using a self-evaluation method.



Pre-course programme

A list of pre-course activities is indicated below. Please note that these activities are integral part of the course and by completing them you will be able to get the most benefit out of the training week.

Pre-course activities
  • Please complete the following modules:

GRIB:

ecCodes: decoding with GRIB tools

ecCodes: manipulating GRIB data with tools and API

BUFR:

ecCodes: introduction to BUFR decoding

  • Post here your reflections on the modules and any concepts that you would like to review during the face to face version of the course.
Timetable – 4th to 8th February 2019

PLEASE NOTE: the course starts at 9.30am on Monday 4th February 2019, and finishes at 17.00 on Friday 8th February 2019.


 Mon 4th FebTue 5th FebWed 6th FebThu 7th FebFri 8th Feb
9:30 - 11:00

Introduction


 GRIB tools revision/challenges
  • Review of online module: GRIB and ecCodes
  • GRIB tools:  inspecting GRIB messages
  • Consolidation of e-learning module material
  • Quizzes and challenges

Slides

Paul Dando, Cristian Simarro, Xavi Abellan


 GRIB Fortran/Python APIs - decoding

Overview of the API  

  • Using the API functions for decoding GRIB with Fortran and Python    

Slides  

Practicals

tarball

Dominique Lucas, Xavi Abellan, Cristian Simarro


 GRIB Python interface

A short introduction to Python and its use at ECMWF

  • The Python interface to ecCodes for decoding, encoding and indexed access to GRIB messages
  • Wrap-up challenge for GRIB decoding

Slides

Xavier Abellan

Deploying ecCodes

Slides

 BUFR tools
  • codes_info
  • bufr_count
  • bufr_dump
  • bufr_ls
  • bufr_get
Slides
  • bufr_compare
  • bufr_copy
  • bufr_set
Slides


Shahram Najm

 BUFR Fortran/Python - decoding

Decoding with Fortran & Python (I)

Slides

Shahram Najm

Tea and Coffee
11:30 - 13:00
 GRIB tools revision/challenges
  • GRIB tools (continued): inspecting and modifying GRIB messages
  • Consolidation of e-learning module material
  • Quizzes and challenges

Paul Dando, Cristian Simarro

 GRIB Fortran/Python APIs - decoding

Overview of the API  

  • Using the API functions for decoding GRIB with Fortran and Python  

Practicals
tarball 

Dominique Lucas, Xavi Abellan, Cristian Simarro

 GRIB Advanced Topics Part 2
  • GRIB parameter database
  • Conversion from GRIB1 to GRIB2  
  • How to define your own local parameters    

Slides 

Shahram Najm

12:50 Q&A session

 bufr_filter introduction

bufr_filter syntax and basic usage

Slides

Shahram Najm

 BUFR Fortran/Python - decoding

Decoding with Fortran & Python (II)

Slides

Shahram Najm


Lunch
14:00 - 15:15
 GRIB tools revision/challenges
  • GRIB tools (continued): modifying GRIB messages and using grib_filter
  • Consolidation of e-learning module material
  • Quizzes and practicals

Slides

Paul Dando, Cristian Simarro

 GRIB Fortran/Python APIs - Indexing/encoding
  • Use of the indexing routines
  • Encoding GRIB messages and using GRIB samples

Slides

Dominique Lucas, Xavi Abellan, Cristian Simarro

BUFR - Quick Quiz

BUFR - Flipped classroom: review of online module

Slides

Marijana Crepulja

 Advanced BUFR tools

bufr_filter advanced topics (I)

  • encoding/decoding
  • subset selection

Slides

Solutions

Roberto Ribas

 BUFR Fortran/Python APIs - encoding

Encoding with Fortran & Python (I)

Slides

Roberto Ribas


Tea and Coffee
15:45 - 17:00
 GRIB Advanced Topics Part 1
 GRIB Fortran/Python APIs - Indexing/encoding
  • Use of the indexing routines
  • Encoding GRIB messages and using GRIB samples

  Practicals  

Dominique Lucas, Xavi Abellan, Cristian Simarro

 BUFR with ecCodes
  • BUFR with ecCodes

Slides

Marijana Crepulja

 ecCodes User Interface
  • Codes UI demo

Sandor Kertesz

 Advanced BUFR tools

bufr_filter advanced topics (II)

  • delayed replication
  • bit maps

Slides

Solutions

Extras

Solutions extra

Bitmap Slides

Roberto Ribas

 BUFR Fortran/Python APIs - encoding

 Encoding with Fortran & Python (II)
Slides

Roberto Ribas


Go to home page

 

What is happening?

Blog Posts

GENERAL INFORMATION for participants

Take the survey!

 

Training course participants: February 2019


Extra resources

Check our online training resources on:


MARS - ECMWF's meteorological archive

MARS - advanced retrievals, data manipulation and computations

A starter guide to ecFlow

Introduction to Metview

Using ECMWF computing facilities: the batch system


Other online resources are available here


Lectures notes from the 2019 course are here

Lectures from the course: Download the 2018 lectures from here (GRIB) and here (BUFR)