era5_to_int
A simple utility for converting ERA5 netCDF files to the WPS intermediate format.
This has been packaged up and slightly modified from the original NCAR era5_to_int scripts. Huge thanks to NCAR and to Michael Duda and Anthony Islas for writing the scripts!
Installation
You can install the command line utility in a variety of ways. One of the easiest and most common is to use pipx:
pipx install era5_to_int
Overview
The era5_to_int utility converts ERA5 pressure-level netCDF files
to the WRF Pre-processing System (WPS) intermediate file format, permitting the
use of these data with either the Weather Research and Forecasting (WRF) model
or the Model for Prediction Across Scales - Atmosphere (MPAS-A).
The required command-line arguments are the path to the local files and the start and end datetimes of ERA5 files to convert. For example:
era5_to_int /root/path/to/era5/ 2024-05-01_00 2024-05-02_00
or if you're using a different time format, then you'll need to put quotes around the datetimes:
era5_to_int /root/path/to/era5/ "2024-05-01 00" "2024-05-02 00"
The directory structure must be the same as NCAR's ERA5 AWS S3 bucket. This is the recommended place to download the ERA5 data since it's free and fast.
Conversion of a range of datetimes is possible through the use of additional command-line arguments as described in the Usage section.
The following surface fields from the d633 datasets are handled by the script:
| Field | Dataset | Horiz. grid | Num. levels |
|---|---|---|---|
| SOILGEO | d633000 | 0.25-deg Lat-Lon | 1 |
| SP | d633006 | 0.25-deg Lat-Lon | 1 |
| MSL | d633000 | 0.25-deg Lat-Lon | 1 |
| VAR_2T | d633000 | 0.25-deg Lat-Lon | 1 |
| VAR_2D | d633000 | 0.25-deg Lat-Lon | 1 |
| VAR_10U | d633000 | 0.25-deg Lat-Lon | 1 |
| VAR_10V | d633000 | 0.25-deg Lat-Lon | 1 |
| RSN | d633000 | 0.25-deg Lat-Lon | 1 |
| SD | d633000 | 0.25-deg Lat-Lon | 1 |
| LSM | d633000 | 0.25-deg Lat-Lon | 1 |
| SSTK | d633000 | 0.25-deg Lat-Lon | 1 |
| SKT | d633000 | 0.25-deg Lat-Lon | 1 |
| SWVL1 | d633000 | 0.25-deg Lat-Lon | 1 |
| SWVL2 | d633000 | 0.25-deg Lat-Lon | 1 |
| SWVL3 | d633000 | 0.25-deg Lat-Lon | 1 |
| SWVL4 | d633000 | 0.25-deg Lat-Lon | 1 |
| STL1 | d633000 | 0.25-deg Lat-Lon | 1 |
| STL2 | d633000 | 0.25-deg Lat-Lon | 1 |
| STL3 | d633000 | 0.25-deg Lat-Lon | 1 |
| STL4 | d633000 | 0.25-deg Lat-Lon | 1 |
| CI | d633000 | 0.25-deg Lat-Lon | 1 |
When pressure-level (isobaric) ERA5 files are being processed, the following atmospheric fields are handled:
| Field | Dataset | Horiz. grid | Num. levels |
|---|---|---|---|
| Z | d633000 | 0.25-deg Lat-Lon | 37 |
| Q | d633000 | 0.25-deg Lat-Lon | 37 |
| T | d633000 | 0.25-deg Lat-Lon | 37 |
| U | d633000 | 0.25-deg Lat-Lon | 37 |
| V | d633000 | 0.25-deg Lat-Lon | 37 |
As fields are converted from netCDF to intermediate format, their names are also converted to match WPS and MPAS-A expectations.
Downloading and spatial clipping the ERA5 data
This command line utility isn't very helpful if you don't have the ERA5 data. There is a docker image made specifically to download the ERA5 data from the AWS S3 bucket maintained by NCAR. Then the container will clip the global files to a user-defined region to substantially shrink the files. It will save the clipped files to a directory or optionally upload it to another S3 system defined by the user.
You can find the github repo here: https://github.com/envlib/era5-download
It will download all of the files necessary to run the era5_to_int utility.
Usage
The required command-line arguments are the path to the local files and the start and end datetimes of ERA5 files to convert. For example:
era5_to_int /root/path/to/era5/ 2024-05-01_00 2024-05-02_00
Upon successful completion, an intermediate file with the prefix ERA5 is
created in the current working directory; for example, ERA5:2024-05-01_00.
By default, fields are converted at a six-hourly interval, and a different interval may be specified with the option -h. For example, to convert data at a three-hourly interval for the month of May 2024:
era5_to_int -h 3 /root/path/to/era5/ 2024-05-01_00 2024-05-02_00
Also by default, all variables required to run WRF are processed. If only a selection of variables is required, then use the --variables option:
era5_to_int --variables LANDSEA,SEAICE,SKINTEMP /root/path/to/era5/ 2024-05-01_00 2024-05-02_00
If you want all variables except a few, use --skip-vars (composes with --variables if both are given). Skipped variables do not need their ERA5 NetCDF files on disk, so this is useful when sourcing a field from elsewhere — for example, providing SST and sea ice from a higher-resolution product:
era5_to_int --skip-vars SST,SEAICE /root/path/to/era5/ 2024-05-01_00 2024-05-02_00
Usage help is provided by running the era5_to_int with the --help
argument.
Metadata
Release files for era5_to_int 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| era5_to_int-0.4.0.tar.gz | 23.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| era5_to_int-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.9 kB
Release files / era5_to_int-0.4.0.tar.gz
| Download URL | era5_to_int-0.4.0.tar.gz |
|---|---|
| Size | 23.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ca99dc1bd9943a914b5776dc5f87c7aefc590f8ec2888eeb4dfc3be9965359d
|
|
BLAKE2b-256 checksum How to use checksums |
043fbcc2b5ad4f5d151283171faf41e70f88368e464e78e5fa551a629c0126a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.7
|
Release files / era5_to_int-0.4.0-py3-none-any.whl
| Download URL | era5_to_int-0.4.0-py3-none-any.whl |
|---|---|
| Size | 22.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c678d5e1dcd6b845f532af321de63d84cd5369b05fd0d8070a354f5b17cb1ac
|
|
BLAKE2b-256 checksum How to use checksums |
a2ac4c80fd5a535d510142b95996600cb6a2961c2817cf2056946ddd8fb236d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.7
|