Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Unmatched ERA5 Coastlines Causing Irregular Temperature Edges Over Lake Michigan

Henry18

New member
Hi,

I'm using ERA5 pressure-level and surface data as forcing for a WRF simulation over Chicago. Initially, I used the recently published era5_to_int.py tool to convert ERA5 netCDF files to intermediate and then metgrid files, following the workflow described here:


However, the simulation driven by these metgrid files produced problematic output—temperature-related fields show irregular, blocky edges along Lake Michigan, as the issue discussed here:


Because of this, I switched to the traditional GRIB-based workflow for ERA5. Here are the steps I took:

  1. Used the cdsapi package and Python scripts to download:
  • Pressure-level data from “ERA5 hourly data on pressure levels from 1940 to present”
  • Surface data from “ERA5 hourly data on single levels from 1940 to present”
    These were saved in:

    /glade/derecho/scratch/hhou/TestData/GribData_ERA5

    as pl.grib and sfc.grib. The Python scripts used for downloading are in the same directory.

  1. Followed the method described in this post to ungrib pl.grib and sfc.grib separately, producing intermediate files with distinct prefixes.

  1. Ran metgrid using these intermediate files to create met_em* files, which are located in:
    /glade/derecho/scratch/hhou/Test_ERA5/WPS

  1. Linked the met_em* files to my WRF directory and ran real and wrf from:
    /glade/derecho/scratch/hhou/Test_ERA5/WRF/test/em_real

Unfortunately, even using the traditional GRIB workflow, the resulting temperature fields still show irregular edges over Lake Michigan.

T2
1767800090352.png

TMN
1767800107348.png

After discussing with colleagues and examining the met_em* and wrflowinp* files, our current hypothesis is that the issue may be related to unmatched coastlines of SST field:

sst in met_em*
1767800352895.png

sst in wrflowinp*
1767800374822.png

My WPS version is 4.6, and my WRF version is 4.7.1. Looks like they are incapable of ingesting ERA5 SST fields through the WPS/real process. However, this is still only a hypothesis.

Given that many WRF users work with ERA5 forcing—often over coastal domains—I would like to ask:

Is this type of coastal edge artifact a known issue when using ERA5, particularly for domains that include coastlines? If so, is there a recommended solution or workaround?

Any insights would be appreciated.

Cheers,
Henry
 
Last edited:
Hi Henry,

This is a landmask issue. Let's stay with era5_to_int.py, which we have well tested and we know for sure it works just fine. The issue you have is derived from incorrect input data. Would you please let me know where you download ERA5 data and what data did you have? Thanks.
 
Hi Henry,

This is a landmask issue. Let's stay with era5_to_int.py, which we have well tested and we know for sure it works just fine. The issue you have is derived from incorrect input data. Would you please let me know where you download ERA5 data and what data did you have? Thanks.
Hi Ming,

Thank you for your prompt reply.

When using ERA5 NetCDF (.nc) data with the era5_to_int.py tool, I copy the required variables (pl, ml, sfc and invariant) from the following directories to my working directory on Derecho:

/glade/campaign/collections/rda/data/d633000/e5.oper.an.pl/
/glade/campaign/collections/rda/data/d633000/e5.oper.an.sfc/
/glade/campaign/collections/rda/data/d633006/e5.oper.an.ml/
/glade/campaign/collections/rda/data/d633006/e5.oper.invariant/

When using ERA5 GRIB data, I download the files (only pl and sfc) to my directory on Derecho using Python scripts from the following CDS webpages:


Thank you for your help.

Henry
 
Hi Henry,

If you run era5_to_init.py in derecho, basically you don't need to download the data. This is because the script can automatically retrieve data from /glade/campaign. You only need to issue the command:

era5_to_int.py -i yyyy-mm-dd_00

and the intermediate file will be created. More options can be found in README.md

Please try and let me know if you still cannot make it work.
 
Hi Henry,

If you run era5_to_init.py in derecho, basically you don't need to download the data. This is because the script can automatically retrieve data from /glade/campaign. You only need to issue the command:

era5_to_int.py -i yyyy-mm-dd_00

and the intermediate file will be created. More options can be found in README.md

Please try and let me know if you still cannot make it work.
Hi Ming,

Thank you for the suggestion. I tried just specifying the simulation period in the command and let it automatically retrieve the necessary ERA5 input data. The WPS processing and the simulation ran successfully, but the WRF output still shows irregular edges along the coastal lines.

I'm now focusing on resolving this coastal edge issue. I came across this thread discussing the problem:


It recommends editing the SST field in METGRID.TBL.ARW to include a four-point weighted average in the interpolation options and to mask the field over land. Do you think this would be an effective solution?

Best,
Henry
 
Henry,
Can you upload a figure that shows irregular edges along the coastal lines?
Please also upload your namelist.wps and namelist.input for me to take a look. Thanks.
Ming
 
Henry,
Can you upload a figure that shows irregular edges along the coastal lines?
Please also upload your namelist.wps and namelist.input for me to take a look. Thanks.
Ming
Thank you, Ming.

I've attached two pictures of the wrfout to show the edges over Lake Michigan, they are T2 and TMN. I've also attached my namelist.wps and namelist.input files for reference.

Best,
Henry
 

Attachments

  • 2026-01-09 133251.png
    2026-01-09 133251.png
    311 KB · Views: 1
  • 2026-01-09 133211.png
    2026-01-09 133211.png
    153.1 KB · Views: 1
  • namelist.wps
    781 bytes · Views: 0
  • namelist.input
    3.9 KB · Views: 0
Top