sándor kertész iain russell - ecmwf confluence wiki

43
© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars Post Processing of ECMWF Data Webinar - May 14, 2019 Sándor Kertész Iain Russell Development Section, ECMWF

Upload: others

Post on 25-Oct-2021

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Post Processing of ECMWF Data

Webinar - May 14, 2019

Sándor Kertész

Iain Russell

Development Section, ECMWF

Page 2: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Outline

2EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

• Metview user interface: quick overview

• GRIB:

– MARS, interpolation, filtering, value extraction

– masking and bitmaps

– computation types, profile and section generation

– numpy, scipy, cfgrib, xarray

• NetCDF

• Observation handling: BUFR, ODB, Geopoints

– pandas

• Climate Data Store

• Where to find out more

The webinar will be centred around Metview’s Python interface

Page 3: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

What is Metview?

• Workstation software, runs on UNIX, from laptops to supercomputers (including Mac OS X)

• Open source, Apache 2.0 license

• Visualisation

• Data processing

• Icon based user interface

• Powerful scripting languages (Macro and Python (3))

• Co-operation project between ECMWF and INPE (Brazil)

3EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Page 4: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

4EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Metview’suser interface

Page 5: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

5EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Generating scripts

• All icons can be dropped into Metview’s code editor to generate code

Page 6: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

6EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Metview’s script interface

• Everything that can be done interactively with icons can be done via scripting

• Scripting offers a lot of extra functionality especially for data processing

We will only use the script interface (Python) in the webinarWe will only use the script interface (Python) in the webinar

Page 7: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

MARS access

• ECMWF’s Meteorological Archive (GRIB, BUFR, ODB)

• Integrated MARS client in Metview

7EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

At ECMWF

(e.g. ecgate)

At ECMWF

(e.g. ecgate)

direct access to MARS from Metview access through the MARS WEB API

Outside the

Centre

Outside the

Centre

Page 8: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

A typical MARS-GRIB workflow

8EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Mars Retrieval

Grib Filter

In script it is called read()

Field arithmetic

Operations are performed

on each gridpoint per field

Jupyter Notebook

Page 9: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Fieldsets

9EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

to access ecCodes keys

from the GRIB header.

grib_get()

Metview’s object to

represent GRIB

data

Metview’s object to

represent GRIB

data

Page 10: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Interpolation: re-gridding

10EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Grib Filter

In script it is called read()

N48 grid 5x5 grid on subarea

Page 11: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Interpolation: extracting values at scattered locations

11EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Page 12: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Time series extraction

12EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

See “Time Series

with GRIB” in

Gallery for a more

elaborate example

Page 13: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Field 2

Point-wise aggregation

• The computations are performed on each gridpoint individually throughout the fields

• The result is always one field

• Functions in this group:

– sum()

– mean()

– stdev()

– min()

– max()

and many more …

13EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Field 1

Resulting

field

Page 14: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Field 2

Field-wise aggregation

• The computations are performed per field

• The result is always one number per field

• Functions in this group:

– accumulate()

– average()

– integrate()

– covar_a()

– stdev_a()

and many more …

14EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Field 1 value 1

value 2

ResultsResults

Field N value N

Page 15: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Weighting by grid cell area• In the grids we typically work with the grid cell area changes from the Equator towards the Poles

• To correctly carry out horizontal computations we should apply a proper weighting

• Many functions perform this weighting, but some do not

• E.g. averaging over an area. Metview offers two functions for it:

15EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

average()average() integrate()integrate()

computes the

mathematical average

of all the values in a

given field

computes a weighted

average to take into

account the grid cell

sizes

Page 16: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Horizontal derivatives

16EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Second order finite

difference scheme

• first and second

derivatives

• gradient()

• vorticity()

• divergence()

• laplacian()

See “Humidity advection”

example from the Gallery

Page 17: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Vertical computations

• computes geopotential on model levels: mvl_geopotential_to_ml():

– Geopotential is not archived on model levels in MARS!

• computes pressure on model levels: unipressure()

• interpolates model levels to pressure levels mvl_ml2hpa()

17EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Vertical integrationVertical integrationModel levels ↔ Pressure levelsModel levels ↔ Pressure levels

univertint(): performs vertical integration using the following formula

Page 18: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Masking and bitmaps – the concept

18EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

MaskingMasking

Logical operation on

a field turning values

into 0s and 1s

t = t > 273.16

In the resulting field all

points with values >

273.16 will be 1s, while

all other points will be

0s

BitmapsBitmaps

The set of points with missing

value in a field are called a

bitmap

The bitmap in a field is excluded

from computations and

visualisation

E.g. wave forecast fields, SST

They are typically used together

Page 19: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Masking: computing ENS probability

19EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

We want to compute the

probability that the

windgust is > 20 m/s from

a 51-member ENS

forecast

Page 20: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Masking and bitmaps

20EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

We want to create a

fieldset with valid values

only where T > 0C

Page 21: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Thermodynamic profiles

21EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Thermodynamic

profile extraction

Thermodynamic

profile extraction

store extracted profiles

in NetCDF for further

processing and

visualisation on

tephigram, skew-t or

emagram

Thermo Data

See example “Parcel path”

from the Gallery

Thermo View, Plotting and Grid

Page 22: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Vertical cross sections

22EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Cross Section View

Cross Section Data

Example “Cross Section”

from the Gallery

Vertical cross sections along a

straight line for scalar and vector

fields

Vertical cross sections along a

straight line for scalar and vector

fields

Computes cross

section data and store

it as NetCDF for

further processing

and visualisation

Page 23: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Average vertical cross sections

23EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Zonal and meridional average

cross section for an area or line

Zonal and meridional average

cross section for an area or line

Average View

Average Data

Longitude

Meridional average

Pre

ssure

Computes average

data and store it as

NetCDF for further

processing and

visualisation

Page 24: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Hovmoeller diagrams

24EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Hovmoeller View

Hovmoeller Data

Hovmoeller diagrams for areas,

lines and points

Hovmoeller diagrams for areas,

lines and points

Example “Hovmoeller area

average” from the Gallery

Longitude T

ime

Computes data and

store it as NetCDF for

further processing

and visualisation

Page 25: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Connecting fieldsets to the Python ecosystem

25EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

values()

gets a whole field as a

numpy array (or 2D array

for several fields)

set_values()

saves values back into a

field

To perform computations not

available in Metview

To perform computations not

available in Metview

Page 26: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Metview with Numpy and Scipy

26EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Jupyter Notebook

example from the

Gallery

Page 27: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Metview with XArray

27EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

to_dataset()

exposes fieldset as an

xarray dataset

dataset_to_fieldset()

converts an xarray

dataset back to fieldset

(experimental)

Jupyter Notebook

example from the

Gallery

multidimensional labelled arrays

(close to NetCDF data model)

multidimensional labelled arrays

(close to NetCDF data model)

(feature implemented via

cfgrib: an ECMWF/B-Open

development)

Page 28: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

NetCDF

28EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

metadata access

value access

functions and

operators work on he

current variable

Array oriented binary

format

Array oriented binary

format

as a numpy array

Page 29: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Geopoints

29EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

• Geopoints is Metview’s format to handle spatially irregular data

(e.g. observations)

• It is a column-based ASCII format (CSV)

• Can be directly plotted (symbol, vector, number)

• Rich API

• Usage is demonstrated with BUFR

Page 30: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

BUFR

30EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

In Metview BUFR data

is filtered into Geopoints

or CSV to plot and post-

process it

Observation Filter

BUFR data can be fairly

complex

BUFR Picker

WMO’s binary format

(observations)

WMO’s binary format

(observations)

Page 31: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Computing forecast - observation difference

31EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

subtracting

geopoints from

fieldset

involves interpolation of

field values to the

Geopoints locations

T2m forecast field

T2m BUFR observation

filtered into geopoints

“Model-Obs

Difference”

example from the

Gallery

Page 32: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

BUFR filtering and Pandas

32EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

to_dataframe()

Converts Geopoints into

a Pandas dataframe

table data and time series

analysis

table data and time series

analysis

Page 33: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

ODB

33EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

ODB Filter

Performs an ODB/SQL query.

The result is another ODB.

Developed at ECMWF to handle

observations in data assimilation

Developed at ECMWF to handle

observations in data assimilation

Set of data columns that can be

accessed via an ODB/SQL query

Example “ODB Wind

Profiler” from the Gallery

Page 34: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

ODB filtering and Pandas

34EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

to_dataframe()

converts ODB into a

Pandas dataframe

Page 35: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Climate Data Store (CDS)

35EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Large number of

datasets

including ECMWF

data

Large number of

datasets

including ECMWF

data

GRIB + NetCDFGRIB + NetCDF

Publicly availablePublicly available

Page 36: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Climate Data Store (CDS)

36EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Jupyter Notebook example

from the Gallery

accessed through a

Python API = cdsapi

accessed through a

Python API = cdsapi

works well with Metview’s Python

interface

Downloads ERA5 GRIB and

generates cross section

Page 37: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Where to find out more

37EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Icon referenceIcon reference

Page 38: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Where to find out more

38EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Function documentationFunction documentation

Page 39: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Where to find out more

39EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

GalleryGallery

Page 40: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

Where to find out more

40EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Lots of material online including tutorialsLots of material online including tutorials

Page 41: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

41EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Metview Availability – on ECMWF systems

• Versioned using the ‘module’ system

module swap metview/new

metview

module swap metview/new

module load python3

module load metview-python

Batch, Jupyter notebookInteractive session

Page 42: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

42EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

Metview availability – outside ECMWF

pip install metview

• Install from binaries

• Conda (via conda-forge)

• Build from source

• Build from bundle

• The Metview Python interface has to be installed separately:

Page 43: Sándor Kertész Iain Russell - ECMWF Confluence Wiki

© ECMWF - slides at https://confluence.ecmwf.int/metview/Webinars

43EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS

For more information…

• Ask for help:

[email protected]

• Visit our web pages:

– http://confluence.ecmwf.int/metview

Questions?