You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Much of the data provided by the Copernicus Atmosphere Monitoring Service (CAMS), the Copernicus Climate Change Service (C3S), and by meteorological centres like ECMWF comes in GRIB or NetCDF format. 

This article gives examples how to extract data for a specific location and/or time from a GRIB or NetCDF file.

Download data

Let's say you hav a data file containing ERA5 data, specifically hourly surface pressure (sp) for the month 2003-08.

In case you do not have a data file yet, download test data: first install the ECMWF WebAPI , run this Python script:

#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "ea",
    "dataset": "era5",
    "date": "2010-08-01/to/2010-08-31",
    "expver": "1",
    "levtype": "sfc",
    "param": "134.128",
    "stream": "oper",
    "time": "00/to/23/by/1",
    "type": "an",
    "target": "e5-sp-201008xx.grib",
})
server.retrieve({
    "class": "ea",
    "dataset": "era5",
    "date": "2010-08-01/to/2010-08-31",
    "expver": "1",
    "levtype": "sfc",
    "param": "134.128",
    "stream": "oper",
    "time": "00/to/23/by/1",
    "type": "an",
    "grid": "0.5/0.5",
    "format": "netcdf",
    "target": "e5-sp-201008xx.nc",
})

This download gives you a GRIB file 'e5-sp-201008xx.grib' and a NetCDF file 'e5-sp-200308xx.nc'

Looking up data values in GRIB

We want to look up the surface pressure (sp) data value for 2010-08-05 00:00, at the model point closest to our target location lon=7.36 lat=43.89

Install ECMWF ecCodes, then look up the data value with the grib_ls command:

grib_ls -l 43.89,7.36,1 -w dataDate=20100805,dataTime=0000 -p shortName e5-sp-201008xx.grib

Output:

...
shortName    value 
sp          88510       
...
Input Point: latitude=43.89  longitude=7.36
Grid Point chosen #3 index=84109 latitude=43.98 longitude=7.50 distance=15.11 (Km)
...

Looking up data values in NetCDF

We want to look up the surface pressure (sp) data value for 2010-08-05 00:00, at the model point closest to our target location lon=7.36 lat=43.89

Install CDO, then look up the data value:

cdo -outputtab,lon,lat,date,time,value -selyear,2010 -selmonth,08 -selday,05 -seltime,00:00 -remapnn,lon=7.36_lat=43.89 e5-sp-201008xx.nc

Output:

#   lon    lat       date     time    value 
...
  7.36  43.89  2010-08-05 00:00:00  88360.6 
...
  • No labels