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

Using ECMWF TIGGE as WRF initial & lateral boundary conditions data

zizils1999

New member
Hello everyone,
I'm trying to use ECMWF TIGGE forecast data as initial & lateral boundary conditions data.
First, I downloaded TIGGE data from ECMWF data portal, include surface & pressure level (ECMWF | TIGGE Data Retrieval), choosing all file avaiable. I separated files into 6-hourly .grib2 files, for both surface and pressure level. For 48h case, I have 8 (6-hourly) * 2 (level) .grib2 data files.
Second, I changed my Vtable file to ECMWF grib2 edition:

Code:
GRIB | Level| Level| Level| metgrid  |  metgrid | metgrid                                  ||GRIB2|GRIB2|GRIB2|GRIB2|
Code | Code |   1  |   2  | Name     |  Units   | Description                              ||Discp|Catgy|Param|Level|
-----+------+------+------+----------+----------+------------------------------------------+------+-----+-----+-----+
 129 | 100  |   *  |      | GEOPT    | m2 s-2   |                                          | 0    | 3   | 5   | 100 |
     | 100  |   *  |      | HGT      | m        | Height                                   | 0    | 3   | 5   | 100 |
 130 | 100  |   *  |      | TT       | K        | Temperature                              | 0    | 0   | 0   | 100 |
 131 | 100  |   *  |      | UU       | m s-1    | U                                        | 0    | 2   | 2   | 100 |
 132 | 100  |   *  |      | VV       | m s-1    | V                                        | 0    | 2   | 3   | 100 |
 157 | 100  |   *  |      | RH       | %        | Relative Humidity                        | 0    | 1   | 1   | 100 |
 165 |  1   |   0  |      | UU       | m s-1    | U                    At 10 m             | 0    | 2   | 2   | 103 |
 166 |  1   |   0  |      | VV       | m s-1    | V                    At 10 m             | 0    | 2   | 3   | 103 |
 167 |  1   |   0  |      | TT       | K        | Temperature          At  2 m             | 0    | 0   | 0   | 103 |
 172 |  1   |   0  |      | LANDSEA  | 0/1 Flag | Land/Sea flag                            | 2    | 0   | 0   | 1   |
 134 |  1   |   0  |      | PSFC     | Pa       | Surface Pressure                         | 0    | 3   | 0   | 1   |
 151 |  1   |   0  |      | PMSL     | Pa       | Sea-level Pressure                       | 0    | 3   | 0   | 101 |
-----+------+------+------+----------+----------+------------------------------------------+------+-----+-----+-----+

# Made by Casper Kalkhoven    February 2022
# Should be used for new ECMWF Grib2 files which can be downloaded from the ECMWF Data Store (https://data.ecmwf.int/forecasts/)

Using this Vtable, running ungrib.exe for 2 datasets (Chapter 3: WRF Standard Initialization), this program running successfully, but something went wrong, because runtime equal ~0s, and output from ungrib.exe looks different: (shorten version by reduce 6h time ungrib, another time has the same output like this one)
Code:
(base) [duydm@login WPS-4.3.1]$ ./ungrib.exe
 *** Starting program ungrib.exe ***
Start_date =  2020-04-21_12:00:00 ,      End_date = 2020-04-21_18:00:00
output format is WPS
Path to intermediate files is ./

###############################################################################

Inventory for date = 2020-04-21 12:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL   
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

###############################################################################

Inventory for date = 2020-04-21 18:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL   
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 Name of source model =>ECMWF                           

###############################################################################

Inventory for date = 2020-04-21 12:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL   
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 Name of source model =>ECMWF                           

###############################################################################

Inventory for date = 2020-04-21 18:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL   
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Subroutine DATINT: Interpolating 3-d files to fill in any missing data...
Looking for data at time 2020-04-21_12
Found file:      HAIL2:2020-04-21_12
Looking for data at time 2020-04-21_18
Found file:      HAIL2:2020-04-21_18
End Subroutine DATINT.

**********
Deleting temporary files created by ungrib...
**********

Deleting file:  ./PFILE:2020-04-21_12
Deleting file:  ./PFILE:2020-04-21_18

**********
Done deleting temporary files.
**********

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  Successful completion of ungrib.   !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ofcourse, when running metgrid.exe, I have error:
Code:
(base) [duydm@login WPS]$ ./metgrid.exe
Processing domain 1 of 3
 Processing 2020-04-21_12
    HAIL
    HAIL2
ERROR: The mandatory field TT was not found in any input data.

Could anyone can help me figure it out which one when wrong or any guidance for running TIGGE data for WRF?
Thanks!
 
I am not sure what variables are included in the ECMWF TGGE products. Can you check whether the variables required by WPS are included in the TGGE dataset?

Required Meteorological Fields for Running WRF​

In order to successfully initialize a WRF simulation, the real.exe pre-processor requires a minimum set of meteorological and land-surface fields to be present in the output from the metgrid.exe program. Accordingly, these required fields must be available in the intermediate files processed by metgrid.exe. The set of required fields is described in the table, below.



Field name in intermediate file
Units
Description
Notes
TTK3-d air temperature
RH%3-d relative humidityNot needed if SPECHUMD is available
SPECHUMDkg kg-13-d specific humidityNot needed if RH is available
UUm s-13-d wind u-component
VVm s-13-d wind v-component
GHTm3-d geopotential height
PRESSUREPa3-d pressureOnly needed for non-isobaric datasets
PSFCPaSurface pressure
PMSLPaMean sea-level pressure
SKINTEMPKSkin temperature
SOILHGTmSoil height
TTK2-meter air temperature
RH%2-meter relative humidityNot needed if SPECHUMD is available
SPECHUMDkg kg-12-meter specific humidityNot needed if RH is available
UUm s-110-meter wind u-component
VVm s-110-meter wind v-component
LANDSEAfractionLand-sea mask (0=water, 1=land)
SMtttbbbm3 m-3Soil moisture'ttt' is the layer top depth in cm, and 'bbb' is the layer bottom depth in cm
STtttbbbKSoil temperature
SOILMmmmkg m-3Soil moisture'mmm' is the level depth in cm, not needed if SMtttbbb available
SOILTmmmKSoil temperature
 
I am not sure what variables are included in the ECMWF TGGE products. Can you check whether the variables required by WPS are included in the TGGE dataset?

Required Meteorological Fields for Running WRF​

In order to successfully initialize a WRF simulation, the real.exe pre-processor requires a minimum set of meteorological and land-surface fields to be present in the output from the metgrid.exe program. Accordingly, these required fields must be available in the intermediate files processed by metgrid.exe. The set of required fields is described in the table, below.



Field name in intermediate file
Units
Description
Notes
TTK3-d air temperature
RH%3-d relative humidityNot needed if SPECHUMD is available
SPECHUMDkg kg-13-d specific humidityNot needed if RH is available
UUm s-13-d wind u-component
VVm s-13-d wind v-component
GHTm3-d geopotential height
PRESSUREPa3-d pressureOnly needed for non-isobaric datasets
PSFCPaSurface pressure
PMSLPaMean sea-level pressure
SKINTEMPKSkin temperature
SOILHGTmSoil height
TTK2-meter air temperature
RH%2-meter relative humidityNot needed if SPECHUMD is available
SPECHUMDkg kg-12-meter specific humidityNot needed if RH is available
UUm s-110-meter wind u-component
VVm s-110-meter wind v-component
LANDSEAfractionLand-sea mask (0=water, 1=land)
SMtttbbbm3 m-3Soil moisture'ttt' is the layer top depth in cm, and 'bbb' is the layer bottom depth in cm
STtttbbbKSoil temperature
SOILMmmmkg m-3Soil moisture'mmm' is the level depth in cm, not needed if SMtttbbb available
SOILTmmmKSoil temperature
First, TIGGE surface level data (ECMWF | TIGGE Data Retrieval) include 30 parameters, which provided enough variables for WRF (t2m, uv10m, landsea, psfc,pmsl, skintemp, and 2 soil variables).

1690252104735.png
Second, TIGGE pressure level (ECMWF | TIGGE Data Retrieval) provides 5 variable in isobaric level. At +00 fcs, only geopt has 50mb level, so I just choosing 1000-200mb data for all variables.
1690252517020.png
 
By using g2print.exe, almost variables by TIGGE have exactly Discp, Catgy, Param, Level that the Vtable require, but not the name like TMP, example for +00 pressure level file:
Code:
(base) [duydm@login WPS-4.3.1]$ ./util/g2print.exe GRIBFILE.AAA
 ungrib - grib edition num           2
 reading from grib file = GRIBFILE.AAA                                                                                                           
      ECMWF                           
---------------------------------------------------------------------------------------
 rec Prod Cat Param  Lvl    Lvl      Lvl     Prod    Name            Time          Fcst
 num Disc     num    code   one      two     Templ                                 hour
---------------------------------------------------------------------------------------
   1   0    3   0       1       0       0       1     PRES     2020-04-21_12:00:00   00  PDT4.1 
   2   0    3   0     101       0       0       1     PRES     2020-04-21_12:00:00   00  PDT4.1 
   3   0    2   2     103      10       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
   4   0    2   3     103      10       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
   5   0    0   0     103       2       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
   6   2    0   0       1       0       0       1     LAND     2020-04-21_12:00:00   00  PDT4.1 
   7   2    0   2     106       0      20       1     TSOIL    2020-04-21_12:00:00   00  PDT4.1 
 
 
   Successful completion of g2print
 
Looking at the output, it seems that you only have surface data. There is no upper level information in your datafile "GRIBFILE.AAA".
 
Looking at the output, it seems that you only have surface data. There is no upper level information in your datafile "GRIBFILE.AAA".
My TIGGE data has separate to 2 subset data: surface level & pressure level. I don't merge them, instead I using this method (Chapter 3: WRF Standard Initialization) to read 2 sets of data. This g2print.exe only ran for surface level data. For my pressure data, g2print.exe get this:

Code:
(base) [duydm@login WPS-4.3.1]$ ./util/g2print.exe GRIBFILE.AAA
 ungrib - grib edition num           2
 reading from grib file = GRIBFILE.AAA                                                                                                           
      ECMWF                           
---------------------------------------------------------------------------------------
 rec Prod Cat Param  Lvl    Lvl      Lvl     Prod    Name            Time          Fcst
 num Disc     num    code   one      two     Templ                                 hour
---------------------------------------------------------------------------------------
   1   0    0   0     100   20000       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
   2   0    2   2     100   20000       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
   3   0    2   3     100   20000       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
   4   0    1   0     100   20000       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
   5   0    3   5     100   20000       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
   6   0    0   0     100   25000       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
   7   0    2   2     100   25000       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
   8   0    2   3     100   25000       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
   9   0    1   0     100   25000       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
  10   0    3   5     100   25000       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
  11   0    0   0     100   30000       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
  12   0    2   2     100   30000       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
  13   0    2   3     100   30000       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
  14   0    1   0     100   30000       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
  15   0    3   5     100   30000       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
  16   0    0   0     100   50000       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
  17   0    2   2     100   50000       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
  18   0    2   3     100   50000       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
  19   0    1   0     100   50000       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
  20   0    3   5     100   50000       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
  21   0    0   0     100   70000       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
  22   0    2   2     100   70000       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
  23   0    2   3     100   70000       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
  24   0    1   0     100   70000       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
  25   0    3   5     100   70000       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
  26   0    0   0     100   85000       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
  27   0    2   2     100   85000       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
  28   0    2   3     100   85000       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
  29   0    1   0     100   85000       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
  30   0    3   5     100   85000       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
  31   0    0   0     100   92500       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
  32   0    2   2     100   92500       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
  33   0    2   3     100   92500       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
  34   0    1   0     100   92500       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
  35   0    3   5     100   92500       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
  36   0    0   0     100  100000       0       1     TMP      2020-04-21_12:00:00   00  PDT4.1 
  37   0    2   2     100  100000       0       1     UGRD     2020-04-21_12:00:00   00  PDT4.1 
  38   0    2   3     100  100000       0       1     VGRD     2020-04-21_12:00:00   00  PDT4.1 
  39   0    1   0     100  100000       0       1     SPFH     2020-04-21_12:00:00   00  PDT4.1 
  40   0    3   5     100  100000       0       1     HGT      2020-04-21_12:00:00   00  PDT4.1 
 
 
   Successful completion of g2print

Compare with Vtable, I didn't see the difference, so I don't know why ungrib.exe has been failure...
 
Have you linked both SFC and pressure level data to the WPS directory?
I believe that SFC data has been successfully processed.
if you only link presser level data to your WPS directory and run ungrib.exe, can it run successfully?
 
Hello everyone,
I'm trying to use ECMWF TIGGE forecast data as initial & lateral boundary conditions data.
First, I downloaded TIGGE data from ECMWF data portal, include surface & pressure level (ECMWF | TIGGE Data Retrieval), choosing all file avaiable. I separated files into 6-hourly .grib2 files, for both surface and pressure level. For 48h case, I have 8 (6-hourly) * 2 (level) .grib2 data files.
Second, I changed my Vtable file to ECMWF grib2 edition:

Code:
GRIB | Level| Level| Level| metgrid  |  metgrid | metgrid                                  ||GRIB2|GRIB2|GRIB2|GRIB2|
Code | Code |   1  |   2  | Name     |  Units   | Description                              ||Discp|Catgy|Param|Level|
-----+------+------+------+----------+----------+------------------------------------------+------+-----+-----+-----+
 129 | 100  |   *  |      | GEOPT    | m2 s-2   |                                          | 0    | 3   | 5   | 100 |
     | 100  |   *  |      | HGT      | m        | Height                                   | 0    | 3   | 5   | 100 |
 130 | 100  |   *  |      | TT       | K        | Temperature                              | 0    | 0   | 0   | 100 |
 131 | 100  |   *  |      | UU       | m s-1    | U                                        | 0    | 2   | 2   | 100 |
 132 | 100  |   *  |      | VV       | m s-1    | V                                        | 0    | 2   | 3   | 100 |
 157 | 100  |   *  |      | RH       | %        | Relative Humidity                        | 0    | 1   | 1   | 100 |
 165 |  1   |   0  |      | UU       | m s-1    | U                    At 10 m             | 0    | 2   | 2   | 103 |
 166 |  1   |   0  |      | VV       | m s-1    | V                    At 10 m             | 0    | 2   | 3   | 103 |
 167 |  1   |   0  |      | TT       | K        | Temperature          At  2 m             | 0    | 0   | 0   | 103 |
 172 |  1   |   0  |      | LANDSEA  | 0/1 Flag | Land/Sea flag                            | 2    | 0   | 0   | 1   |
 134 |  1   |   0  |      | PSFC     | Pa       | Surface Pressure                         | 0    | 3   | 0   | 1   |
 151 |  1   |   0  |      | PMSL     | Pa       | Sea-level Pressure                       | 0    | 3   | 0   | 101 |
-----+------+------+------+----------+----------+------------------------------------------+------+-----+-----+-----+

# Made by Casper Kalkhoven    February 2022
# Should be used for new ECMWF Grib2 files which can be downloaded from the ECMWF Data Store (https://data.ecmwf.int/forecasts/)

Using this Vtable, running ungrib.exe for 2 datasets (Chapter 3: WRF Standard Initialization), this program running successfully, but something went wrong, because runtime equal ~0s, and output from ungrib.exe looks different: (shorten version by reduce 6h time ungrib, another time has the same output like this one)
Code:
(base) [duydm@login WPS-4.3.1]$ ./ungrib.exe
 *** Starting program ungrib.exe ***
Start_date =  2020-04-21_12:00:00 ,      End_date = 2020-04-21_18:00:00
output format is WPS
Path to intermediate files is ./

###############################################################################

Inventory for date = 2020-04-21 12:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL  
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

###############################################################################

Inventory for date = 2020-04-21 18:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL  
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 Name of source model =>ECMWF                          

###############################################################################

Inventory for date = 2020-04-21 12:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL  
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
 Name of source model =>ECMWF                          

###############################################################################

Inventory for date = 2020-04-21 18:00:00

PRES   GEOPT    HGT      TMP      UGRD     VGRD     SPFH     LAND     PSFC     PMSL  
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Subroutine DATINT: Interpolating 3-d files to fill in any missing data...
Looking for data at time 2020-04-21_12
Found file:      HAIL2:2020-04-21_12
Looking for data at time 2020-04-21_18
Found file:      HAIL2:2020-04-21_18
End Subroutine DATINT.

**********
Deleting temporary files created by ungrib...
**********

Deleting file:  ./PFILE:2020-04-21_12
Deleting file:  ./PFILE:2020-04-21_18

**********
Done deleting temporary files.
**********

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  Successful completion of ungrib.   !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ofcourse, when running metgrid.exe, I have error:
Code:
(base) [duydm@login WPS]$ ./metgrid.exe
Processing domain 1 of 3
 Processing 2020-04-21_12
    HAIL
    HAIL2
ERROR: The mandatory field TT was not found in any input data.

Could anyone can help me figure it out which one when wrong or any guidance for running TIGGE data for WRF?
Thanks!
Did you manage to solve this error? I have the same error now using TIGGE IFS data and the Vtable for grib2 datasets.. It also seems that part of my ungribbed files are empty
 
Top