# Wrong metadata for Seasonal forecast daily and subdaily data on single levels

**URL:** <https://forum.ecmwf.int/t/wrong-metadata-for-seasonal-forecast-daily-and-subdaily-data-on-single-levels/12219>\
**Category:** C3S - Datasets and Usage\
**Tags:** seasonal\_forecast, api, c3s\
**Created:** [24 March 2025 21:42 UTC](https://forum.ecmwf.int/t/wrong-metadata-for-seasonal-forecast-daily-and-subdaily-data-on-single-levels/12219 "2025-03-24T21:42:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sacha\_Ruzzante](https://forum.ecmwf.int/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@Sacha\_Ruzzante](https://forum.ecmwf.int/u/Sacha_Ruzzante)\
**Post date:** [24 March 2025 21:42 UTC](https://forum.ecmwf.int/t/wrong-metadata-for-seasonal-forecast-daily-and-subdaily-data-on-single-levels/12219/1 "2025-03-24T21:42:34Z")

</div>

Some of the metadata for the daily/sub-daily seasonal forecasts are incorrect, for datasets from centres other than ECMWF: [Seasonal forecast daily and subdaily data on single levels](https://cds.climate.copernicus.eu/datasets/seasonal-original-single-levels)

I have downloaded a 4-9 variables from the ukmo, eccc, cmcc, and ncep as GRIB files, and some of the raster layers have the wrong GRIB\_COMMENT, GRIB\_ELEMENT and GRIB\_UNIT.

For example, consider the following api request:

```auto
dataset = "seasonal-original-single-levels"
request = {
    "originating_centre": "ukmo",
    "system": "603",
    "variable": [ "evaporation", "maximum_2m_temperature_in_the_last_24_hours", "minimum_2m_temperature_in_the_last_24_hours", "sub_surface_runoff", "surface_net_solar_radiation", "surface_runoff", "total_precipitation"
    ],
    "year": ["1993"],
    "month": ["02"],
    "day": ["01"],
    "leadtime_hour": ["24", "48", "72", "96", "120", "144", "168", "192", "216", "240", "264", "288", "312", "336", "360", "384", "408", "432", "456", "480", "504", "528", "552", "576", "600", "624", "648", "672", "696", "720", "744", "768", "792", "816", "840", "864", "888", "912", "936", "960", "984", "1008", "1032", "1056", "1080", "1104", "1128", "1152", "1176", "1200", "1224", "1248", "1272", "1296", "1320", "1344", "1368", "1392", "1416", "1440", "1464", "1488", "1512", "1536", "1560", "1584", "1608", "1632", "1656", "1680", "1704", "1728", "1752", "1776", "1800", "1824", "1848", "1872", "1896", "1920", "1944", "1968", "1992", "2016", "2040", "2064", "2088", "2112", "2136", "2160", "2184", "2208", "2232", "2256", "2280", "2304", "2328", "2352", "2376", "2400", "2424", "2448", "2472", "2496", "2520", "2544", "2568", "2592", "2616", "2640", "2664", "2688", "2712", "2736", "2760", "2784", "2808", "2832", "2856", "2880", "2904", "2928", "2952", "2976", "3000", "3024", "3048", "3072", "3096", "3120", "3144", "3168", "3192", "3216", "3240", "3264", "3288", "3312", "3336", "3360", "3384", "3408", "3432", "3456", "3480", "3504", "3528", "3552", "3576", "3600", "3624", "3648", "3672", "3696", "3720", "3744", "3768", "3792", "3816", "3840", "3864", "3888", "3912", "3936", "3960", "3984", "4008", "4032", "4056", "4080", "4104", "4128", "4152", "4176", "4200", "4224", "4248", "4272", "4296", "4320", "4344", "4368", "4392", "4416", "4440", "4464", "4488", "4512", "4536", "4560", "4584", "4608", "4632", "4656", "4680", "4704", "4728", "4752", "4776", "4800", "4824", "4848", "4872", "4896", "4920", "4944", "4968", "4992", "5016", "5040", "5064", "5088", "5112", "5136", "5160"], "area": [61, -136, 48, -114]
    "data_format": "grib"
}

```

The first 7 layers have the following metadata:

```auto
 [31] "Band 1 Block=23x1 Type=Float64, ColorInterp=Undefined"                                     
  [32] " Description = 0[-] SFC (Ground or water surface)"                                        
  [33] " Metadata:"                                                                               
  [34] " GRIB_COMMENT=undefined [-]"                                                            
  [35] " GRIB_ELEMENT=var182 of table 128 of center 74"                                         
  [36] " GRIB_FORECAST_SECONDS=86400"                                                           
  [37] " GRIB_REF_TIME=728524800"                                                               
  [38] " GRIB_SHORT_NAME=0-SFC"                                                                 
  [39] " GRIB_UNIT=[-]"                                                                         
  [40] " GRIB_VALID_TIME=728611200"                                                             
  [41] "Band 2 Block=23x1 Type=Float64, ColorInterp=Undefined"                                     
  [42] " Description = 0[-] SFC (Ground or water surface)"                                        
  [43] " Metadata:"                                                                               
  [44] " GRIB_COMMENT=Specific humidity [kg/kg]"                                                
  [45] " GRIB_ELEMENT=SPFH"                                                                     
  [46] " GRIB_FORECAST_SECONDS=86400"                                                           
  [47] " GRIB_REF_TIME=728524800"                                                               
  [48] " GRIB_SHORT_NAME=0-SFC"                                                                 
  [49] " GRIB_UNIT=[kg/kg]"                                                                     
  [50] " GRIB_VALID_TIME=728611200"                                                             
  [51] "Band 3 Block=23x1 Type=Float64, ColorInterp=Undefined"                                     
  [52] " Description = 0[-] SFC (Ground or water surface)"                                        
  [53] " Metadata:"                                                                               
  [54] " GRIB_COMMENT=Relative humidity [%]"                                                    
  [55] " GRIB_ELEMENT=RH"                                                                       
  [56] " GRIB_FORECAST_SECONDS=86400"                                                           
  [57] " GRIB_REF_TIME=728524800"                                                               
  [58] " GRIB_SHORT_NAME=0-SFC"                                                                 
  [59] " GRIB_UNIT=[%]"                                                                         
  [60] " GRIB_VALID_TIME=728611200"                                                             
  [61] "Band 4 Block=23x1 Type=Float64, ColorInterp=Undefined"                                     
  [62] " Description = 0[-] SFC (Ground or water surface)"                                        
  [63] " NoData Value=9999"                                                                       
  [64] " Metadata:"                                                                               
  [65] " GRIB_COMMENT=Standard deviation of height [m]"                                         
  [66] " GRIB_ELEMENT=HSTDV"                                                                    
  [67] " GRIB_FORECAST_SECONDS=86400"                                                           
  [68] " GRIB_REF_TIME=728524800"                                                               
  [69] " GRIB_SHORT_NAME=0-SFC"                                                                 
  [70] " GRIB_UNIT=[m]"                                                                         
  [71] " GRIB_VALID_TIME=728611200"                                                             
  [72] "Band 5 Block=23x1 Type=Float64, ColorInterp=Undefined"                                     
  [73] " Description = 0[-] SFC (Ground or water surface)"                                        
  [74] " Metadata:"                                                                               
  [75] " GRIB_COMMENT=undefined [-]"                                                            
  [76] " GRIB_ELEMENT=var176 of table 128 of center 74"                                         
  [77] " GRIB_FORECAST_SECONDS=86400"                                                           
  [78] " GRIB_REF_TIME=728524800"                                                               
  [79] " GRIB_SHORT_NAME=0-SFC"                                                                 
  [80] " GRIB_UNIT=[-]"                                                                         
  [81] " GRIB_VALID_TIME=728611200"                                                             
  [82] "Band 6 Block=23x1 Type=Float64, ColorInterp=Undefined"                                     
  [83] " Description = 0[-] SFC (Ground or water surface)"                                        
  [84] " NoData Value=9999"                                                                       
  [85] " Metadata:"                                                                               
  [86] " GRIB_COMMENT=Geometric height [m]"                                                     
  [87] " GRIB_ELEMENT=DIST"                                                                     
  [88] " GRIB_FORECAST_SECONDS=86400"                                                           
  [89] " GRIB_REF_TIME=728524800"                                                               
  [90] " GRIB_SHORT_NAME=0-SFC"                                                                 
  [91] " GRIB_UNIT=[m]"                                                                         
  [92] " GRIB_VALID_TIME=728611200"                                                             
  [93] "Band 7 Block=23x1 Type=Float64, ColorInterp=Undefined"                                     
  [94] " Description = 0[-] SFC (Ground or water surface)"                                        
  [95] " Metadata:"                                                                               
  [96] " GRIB_COMMENT=undefined [-]"                                                            
  [97] " GRIB_ELEMENT=var228 of table 128 of center 74"                                         
  [98] " GRIB_FORECAST_SECONDS=86400"                                                           
  [99] " GRIB_REF_TIME=728524800"                                                               
 [100] " GRIB_SHORT_NAME=0-SFC"                                                                 
 [101] " GRIB_UNIT=[-]"                                                                         
 [102] " GRIB_VALID_TIME=728611200"                                  

```

So:

Layer 1 is correct-ish (GRIB\_ELEMENT=var182 of table 128 of center 74" is evaporation). Would be nice if the GRIB\_COMMENT was defined but that’s fine.

Layers 2 and 3 are labelled incorrectly as Specific humidity [kg/kg] and Relative humidity [%] - they should be “maximum\_2m\_temperature\_in\_the\_last\_24\_hours” and “minimum\_2m\_temperature\_in\_the\_last\_24\_hours”. When I plot the layers they are clearly temperatures in K(values from 240 to 280).

Layer 4 is incorrectly labelled as GRIB\_COMMENT=Standard deviation of height [m], should be sub-surface runoff. The actual values in the raster seem like reasonable values for sub-surface runoff, but I can’t be sure.

Layer 5 is correct: I asked for surface\_net\_solar\_radiation, and I got GRIB\_ELEMENT=var176 of table 128 of center 74.

Layer 6 is incorrect: I asked for surface\_runoff, and it is labelled as GRIB\_COMMENT=Geometric height [m]. Again, the values seem reasonable for surface\_runoff (and are most definitely not geometric height).

Layer 7 is correct: I asked for total\_precipitation, and I got GRIB\_ELEMENT=var228 of table 128 of center 74.

I also confirmed that ECCC, NCEP, meteo-france, and CMCC have similar errors.

---

<div class="post-metadata">

**Author:** ![Eduardo\_Penabad](https://forum.ecmwf.int/letter_avatar_proxy/v4/letter/e/6a8cbe/32.png) [@Eduardo\_Penabad](https://forum.ecmwf.int/u/Eduardo_Penabad)\
**Post date:** [31 March 2025 10:46 UTC](https://forum.ecmwf.int/t/wrong-metadata-for-seasonal-forecast-daily-and-subdaily-data-on-single-levels/12219/2 "2025-03-31T10:46:13Z")

</div>

Hi @Sacha_Ruzzante

what software are you using to read the GRIB file?

If you reproduce your request (well, a similar one, with only 2 time steps {24,48]) and explore the contents with ecCodes `grib_ls` command, everything seems fine to me:

```auto
$ grib_ls -m -P shortName f.grib 
f.grib
shortName domain origin levtype date time step param class type stream expver number system method      
e g egrr sfc 19930201 0000 24 182.128 c3 fc mmsf 0001 401 603 1          
mx2t24 g egrr sfc 19930201 0000 24 51.128 c3 fc mmsf 0001 401 603 1          
mn2t24 g egrr sfc 19930201 0000 24 52.128 c3 fc mmsf 0001 401 603 1          
ssro g egrr sfc 19930201 0000 24 9.128 c3 fc mmsf 0001 401 603 1          
ssr g egrr sfc 19930201 0000 24 176.128 c3 fc mmsf 0001 401 603 1          
sro g egrr sfc 19930201 0000 24 8.128 c3 fc mmsf 0001 401 603 1          
tp g egrr sfc 19930201 0000 24 228.128 c3 fc mmsf 0001 401 603 1          
e g egrr sfc 19930201 0000 48 182.128 c3 fc mmsf 0001 401 603 1          
mx2t24 g egrr sfc 19930201 0000 48 51.128 c3 fc mmsf 0001 401 603 1          
mn2t24 g egrr sfc 19930201 0000 48 52.128 c3 fc mmsf 0001 401 603 1          
ssro g egrr sfc 19930201 0000 48 9.128 c3 fc mmsf 0001 401 603 1          
ssr g egrr sfc 19930201 0000 48 176.128 c3 fc mmsf 0001 401 603 1          
sro g egrr sfc 19930201 0000 48 8.128 c3 fc mmsf 0001 401 603 1          
tp g egrr sfc 19930201 0000 48 228.128 c3 fc mmsf 0001 401 603 1          
e g egrr sfc 19930201 0000 24 182.128 c3 fc mmsf 0001 402 603 1          
mx2t24 g egrr sfc 19930201 0000 24 51.128 c3 fc mmsf 0001 402 603 1          
mn2t24 g egrr sfc 19930201 0000 24 52.128 c3 fc mmsf 0001 402 603 1          
ssro g egrr sfc 19930201 0000 24 9.128 c3 fc mmsf 0001 402 603 1          
ssr g egrr sfc 19930201 0000 24 176.128 c3 fc mmsf 0001 402 603 1          
sro g egrr sfc 19930201 0000 24 8.128 c3 fc mmsf 0001 402 603 1          
tp g egrr sfc 19930201 0000 24 228.128 c3 fc mmsf 0001 402 603 1          
e g egrr sfc 19930201 0000 48 182.128 c3 fc mmsf 0001 402 603 1          
mx2t24 g egrr sfc 19930201 0000 48 51.128 c3 fc mmsf 0001 402 603 1          
mn2t24 g egrr sfc 19930201 0000 48 52.128 c3 fc mmsf 0001 402 603 1          
ssro g egrr sfc 19930201 0000 48 9.128 c3 fc mmsf 0001 402 603 1          
ssr g egrr sfc 19930201 0000 48 176.128 c3 fc mmsf 0001 402 603 1          
sro g egrr sfc 19930201 0000 48 8.128 c3 fc mmsf 0001 402 603 1          
tp g egrr sfc 19930201 0000 48 228.128 c3 fc mmsf 0001 402 603 1          

```

---

<div class="post-metadata">

**Author:** ![Sacha\_Ruzzante](https://forum.ecmwf.int/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@Sacha\_Ruzzante](https://forum.ecmwf.int/u/Sacha_Ruzzante)\
**Post date:** [25 July 2025 19:31 UTC](https://forum.ecmwf.int/t/wrong-metadata-for-seasonal-forecast-daily-and-subdaily-data-on-single-levels/12219/3 "2025-07-25T19:31:07Z")

</div>

Thank you Eduardo and apologies for the slow response. I can confirm that I see the same output from grib\_ls. The command I used was:

```auto
$gdalinfo f.grib

```

So it looks like gdal is most likely the source of the error. I had similar problems using the terra package in R (which is built upon gdal).  
Similar problems have been noticed with data from ERA5: [https://gis.stackexchange.com/questions/313620/python-gdal-showing-incorrect-metadata-for-grib-file](https://gis.stackexchange.com/questions/313620/python-gdal-showing-incorrect-metadata-for-grib-file)

It seems gdal may have updated the lookup table for ERA5, but not the seasonal forecasts: [GRIB: add/fill a few GRIB1 ECMWF table to read a ERA5 product by rouault · Pull Request #3875 · OSGeo/gdal · GitHub](https://github.com/OSGeo/gdal/pull/3875)

The [help page](https://confluence.ecmwf.int/display/CKB/What%252Bare%252BGRIB%252Bfiles%252Band%252Bhow%252Bcan%252BI%252Bread%252Bthem) mentions “limited support for metadata” in gdal. I would suggest a stronger wording there, since “limited” to me suggests some metadata could be missing, but not completely incorrect.
