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

(RESOLVED) ICON / ICON-EU initialization

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.

plantain

New member
Has anyone successfully initialized from ICON (https://opendata.dwd.de/weather/nwp/icon/grib/) ?
Are there appropriate Vtables/METGRID.TBL files available somewhere?
Does some interpolation need to be done to make NoahMP work?
 
We haven't processed this dataset. I take a quick look and it seems that all variables needed for WRF are available. here is the website to show how to create the Vtable. Hope it is helpful for you.

http://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.0/users_guide_chap3.html#_Creating_and_Editing_1
 
Hello all.
I am also going to use grib files from the German ICON-EU model, but before I do, I have a few questions. Perhaps someone will be able to help me with the preparation of ICON-EU data.
I know you need to prepare a new Vtable file.
I noticed that the problems may be related to soil data.
ICON has it for the following levels:
Temperature: 0 cm, 6 cm and 1458 cm
Moisture is column-integrated: 0-1 cm, 1-3 cm, 3-9 cm, 9-27 cm, 27-81 cm, 81-243 cm, 243-729 cm, 729-2187 cm.
Is there a proper way to use it in WRF? Currently I bind these values to the nearest metgrid levels, which is not correct but shown to be enough for RUC land physics (Noah and Noah-MP crashes)
Next question. What should be the values:
p_top_requested" i "e_ver in the namelist?
I will be grateful for any help.
Mariusz
 
Hi, I use the following Vtable for ICON-EU:
Code:
GRIB1| Level| From |  To  | metgrid  | metgrid | metgrid                                 |GRIB2|GRIB2|GRIB2|GRIB2|
Param| Type |Level1|Level2| Name     | Units   | Description                             |Discp|Catgy|Param|Level|
-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+
  11 | 100  |   *  |      | TT       | K       | Temperature                             |  0  |  0  |  0  | 100 |
  33 | 100  |   *  |      | UU       | m s-1   | U                                       |  0  |  2  |  2  | 100 |
  34 | 100  |   *  |      | VV       | m s-1   | V                                       |  0  |  2  |  3  | 100 |
  52 | 100  |   *  |      | RH       | %       | Relative Humidity                       |  0  |  1  |  1  | 100 |
  11 | 105  |   2  |      | TT       | K       | Temperature       at 2 m                |  0  |  0  |  0  | 103 |
  33 | 105  |  10  |      | UU       | m s-1   | U                 at 10 m               |  0  |  2  |  2  | 103 |
  34 | 105  |  10  |      | VV       | m s-1   | V                 at 10 m               |  0  |  2  |  3  | 103 |
  52 | 105  |   2  |      | RH       | %       | Relative Humidity at 2 m                |  0  |  1  |  1  | 103 |
   1 |   1  |   0  |      | PSFC     | Pa      | Surface Pressure                        |  0  |  3  |  0  |   1 |
   2 | 102  |   0  |      | PMSL     | Pa      | Sea-level Pressure                      |  0  |  3  |  1  | 101 |
 144 | 106  |   0  |   1  | SOILM030 | kg m-2  | Soil Moist 9-27 cm                      |  2  |  3  | 20  | 106 |
 144 | 106  |  27  |  81  | SOILM060 | kg m-2  | Soil Moist 27-81 cm                     |  2  |  3  | 20  | 106 |
 144 | 106  |  81  | 243  | SOILM100 | kg m-2  | Soil Moist 81-243 cm                    |  2  |  3  | 20  | 106 |
  11 | 111  |   0  |      | SOILT000 | K       | Soil Temperature 0 cm                   |  2  |  3  | 18  | 106 |
  11 | 111  |   6  |      | SOILT006 | K       | Soil Temperature 6 cm                   |  2  |  3  | 18  | 106 |
  11 | 111  |1458  |      | SOILT999 | K       | Soil Temperature 1458 cm                |  2  |  3  | 18  | 106 |
  81 |   1  |   0  |      | LANDSEA  | proprtn | Land/Sea flag (1=land, 0 or 2=sea)      |  2  |  0  |  0  |   1 |
   7 |   1  |   0  |      | SOILHGT  | m       | Terrain field of source analysis        |  0  |  3  |  6  |   1 |
  11 |   1  |   0  |      | SKINTEMP | K       | Skin temperature                        |  0  |  0  |  0  |   1 |
  65 |   1  |   0  |      | SNOW     | kg m-2  | Snow depth water equivalent             |  0  |  1  | 60  |   1 |
     |   1  |   0  |      | SNOWH    | m       | Physical Snow Depth                     |  0  |  1  | 11  |   1 |
-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+
 
Hi,
Do you also need to make changes to METGRID.TBL?
One potential problem with the soil moisture data, though, might be in the units. It appears that other soil moisture data are provided with units of "fraction"; although I'm actually not sure how this is determined, one guess may be that the data represent the fraction of the volume occupied by the layer that is water.
Mariusz
 
The soil moisture used in WPS is volumetric soil moisture, which is simply the ratio of water volume to soil volume.
 
@dominic,
We don't have an official Vtable for ICON data. Have you tried the one posted above? The METGRID.TBL should be the same one used with any other data.
 
kwerner said:
@dominic,
We don't have an official Vtable for ICON data. Have you tried the one posted above? The METGRID.TBL should be the same one used with any other data.


hello kwerner, thanks for your answer. I have used several tables per icon. What I initially tried was this:

https://github.com/wrf-model/WPS/pull/154/commits/8676f6e0e4770fc46cf0d76569f2abc39e72179e

Practically already in ungrib it gives errors on the GROUNDS, it says that these values ​​are practically non-existent in input, I assume in the grib file. So I cleared the SOIL layer and ungrib however ungrib is done.

I also tried other vtable, but with the same results, maybe the problem lies in the download of the icon data? I can also post here the script I use to download the data

however I followed this guide to modify the wps files necessary for WPS operations for the icon data,

https://github.com/wrf-model/WPS/pull/154/files

WPS basically goes because the met files. are viewable in ncviewer
 
I am attaching an image of ncview, as you see the met files are populated
 

Attachments

  • Istantanea_2022-03-16_07-41-30.png
    Istantanea_2022-03-16_07-41-30.png
    130 KB · Views: 562
@dominic,
Can you send the ungrib log file with the error you're seeing, along with a single icon input data file? Thanks!
 
kwerner said:
@dominic,
Can you send the ungrib log file with the error you're seeing, along with a single icon input data file? Thanks!

Hello, thanks for the answer. I am attaching the ungrib.log file below

As for the input data I can only attach the script with which I go to download the data (script they created here):

https://github.com/wrf-model/WPS/pull/154


This script generates 500mb files (for now) with all ICON data needed for initialization. Maybe you can download a full grib to check. I can't attach it here unfortunately.
 

Attachments

  • ungrib.log
    433.8 KB · Views: 25
Script to download icon data:

Code:
#!/bin/bash

# Download ICON-EU 0.06° data with a defined time resolution and check if download was successful 
# Author: Michael Graf 
# Date: 23.05.2020
# Version: 0.1b

ICON_ROOT="https://opendata.dwd.de/weather/nwp/icon-eu/grib"
TARGET_DIR="$(pwd)/data/icon"
TMP_DIR="$(pwd)/data/tmp"

INIT_YYYYMMDD=20220320
INIT_HH=00


# clean old files
rm -f ${TARGET_DIR}/icon*
rm -f ${TMP_DIR}/icon*

# switch to working directory
cd ${TMP_DIR}

# download ICON data
for fff in {000..006..1}; do
    for lev in {1..60}; do
         wget -q "${ICON_ROOT}/${INIT_HH}/t/icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_T.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_T.grib2.bz2" &
    done
    wait
    for lev in {1..60}; do
         wget -q "${ICON_ROOT}/${INIT_HH}/qv/icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_QV.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_QV.grib2.bz2" &
    done
    wait
    for lev in {1..60}; do
         wget -q "${ICON_ROOT}/${INIT_HH}/p/icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_P.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_P.grib2.bz2" &
    done
    wait    
    for lev in {1..60}; do
         wget -q "${ICON_ROOT}/${INIT_HH}/u/icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_U.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_U.grib2.bz2" &
    done
    wait  
    for lev in {1..60}; do
         wget -q "${ICON_ROOT}/${INIT_HH}/v/icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_V.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_model-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_V.grib2.bz2" &
    done
    wait  
    for lev in {1..60}; do
         wget -q "${ICON_ROOT}/${INIT_HH}/hhl/icon-eu_europe_regular-lat-lon_time-invariant_${INIT_YYYYMMDD}${INIT_HH}_${lev}_HHL.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_time-invariant_${INIT_YYYYMMDD}${INIT_HH}_${lev}_HHL.grib2.bz2" &
    done
    wait  
    
    for lev in 0 2 5 6 18 54 162; do
         wget -q "${ICON_ROOT}/${INIT_HH}/t_so/icon-eu_europe_regular-lat-lon_soil-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_T_SO.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_soil-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_T_SO.grib2.bz2" &
    done
    wait
    for lev in 0 1 3 9 27 81 243; do
         wget -q "${ICON_ROOT}/${INIT_HH}/w_so/icon-eu_europe_regular-lat-lon_soil-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_W_SO.grib2.bz2" &&
         bunzip2 "icon-eu_europe_regular-lat-lon_soil-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_${lev}_W_SO.grib2.bz2" &
    done
    wait
    wget -q "${ICON_ROOT}/${INIT_HH}/t_2m/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_T_2M.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_T_2M.grib2.bz2" &
    wget -q "${ICON_ROOT}/${INIT_HH}/qv_2m/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_QV_2M.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_QV_2M.grib2.bz2" &
    wget -q "${ICON_ROOT}/${INIT_HH}/ps/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_PS.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_PS.grib2.bz2" &
    wget -q "${ICON_ROOT}/${INIT_HH}/pmsl/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_PMSL.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_PMSL.grib2.bz2" &
    wget -q "${ICON_ROOT}/${INIT_HH}/u_10m/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_U_10M.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_U_10M.grib2.bz2" &
    wget -q "${ICON_ROOT}/${INIT_HH}/v_10m/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_V_10M.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_V_10M.grib2.bz2" &
    
    wget -q "${ICON_ROOT}/${INIT_HH}/h_snow/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_H_SNOW.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_H_SNOW.grib2.bz2" &
    wget -q "${ICON_ROOT}/${INIT_HH}/w_snow/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_W_SNOW.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_W_SNOW.grib2.bz2" &
    
    wget -q "${ICON_ROOT}/${INIT_HH}/t_g/icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_T_G.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_single-level_${INIT_YYYYMMDD}${INIT_HH}_${fff}_T_G.grib2.bz2" &
    
    wget -q "${ICON_ROOT}/${INIT_HH}/fr_land/icon-eu_europe_regular-lat-lon_time-invariant_${INIT_YYYYMMDD}${INIT_HH}_FR_LAND.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_time-invariant_${INIT_YYYYMMDD}${INIT_HH}_FR_LAND.grib2.bz2" &
    
    wget -q "${ICON_ROOT}/${INIT_HH}/hsurf/icon-eu_europe_regular-lat-lon_time-invariant_${INIT_YYYYMMDD}${INIT_HH}_HSURF.grib2.bz2" &&
    bunzip2 "icon-eu_europe_regular-lat-lon_time-invariant_${INIT_YYYYMMDD}${INIT_HH}_HSURF.grib2.bz2" &
    wait
    
    cat *.grib2 > ${TARGET_DIR}/icon_${INIT_YYYYMMDD}${INIT_HH}_${fff}.grib2
    rm -f icon-eu*.grib2
done
exit 0
 
Hi,
Thanks for sending all of that. I am not seeing any errors in your ungrib file. It says it was completed successfully, as was metgrid (as you stated). Can you show me the exact errors you're talking about? You can also try to continue to run real and wrf and see if your results are reasonable. If so, then I think everything is okay.
 
Top