wmo-im / GRIB2

GRIB2
MIT License
25 stars 9 forks source link

New section 4 templates for advanced surface tiling #191

Closed sebvi closed 1 year ago

sebvi commented 1 year ago

Initial request

Several templates for encoding land surface tiling schemes have been proposed in the past and can be divided into 2 categories:

From the annex describing the spatio-temporal changing tiles, it is clear that each grid box contains N fixed number of tiles and that the tile types are different from grid box to grid box: with N=3, one grid box could be ocean/forest/crop and another grid box could be urban/lake/bare-rock. The tiles are labelled 1 to N with tile 1 being the highest fraction, tile 2 the next highest and so on to tile N with the smallest fraction. It implies that tile 1 in one grid box could be for instance "ocean" but it could be "deciduous forest" in another grid box. Hence the data is encoded over a set of GRIB2 messages that need to work together to recover what "tile 1" is in a given grid box: typically one message containing the "tile class" parameter using parameter encoded in discipline 2 category 0 entry 35 (2/0/35), which points to Code Table 4.243 and one message to encode the fraction or percentage using 2/0/36 and 2/0/37 respectively.

These templates have a number of caveats, practical and technical:

Our use case at ECMWF is that now we now want to encode traditional land surface parameters (2m temperature, 10 metre winds, humidity, you name it...) per specific type of tiles: 2m temp of urban areas, over lake, over ocean. This is very relevant because these parameters can be very different over different land surfaces within a grid box and this is usually a source of apparent error when only the spatial average temperature of the grid box is given. With the existing spatio-temporal tile approach, encoding such parameters is possible but is extremely cumbersome as it can't be encoded in a single GRIB message.

We are therefore proposing a new set of tile templates building on the existing spatio-temporal tile approach, trying to fix the issues listed above: The type of tiles is no longer a set of separate GRIB messages listing the types by decreasing importance, defined through a tile class parameter. Instead the type of tile is included in the template itself, avoiding the need for the extra set of messages. In this approach, tile 1 is always the same type across all grid boxes, and the same for tile 2 to N. We are also introducing a unique identifier to easily match parameters belonging to the same tile of the same model run configuration.

To prepare these templates, we have been in contact with several land surface modelling groups from ECMWF (IFS), MeteoFrance/SMHI (surfex model) and DWD (ICON) to make sure the new set of templates would fit all use cases. We are proposing a new table listing land type according to the major land cover surveys defined in existing Code Table 2.242 (which we are also extending). The new code table 4.251 is organised to group land type by surveys and can be extended to accommodate new future surveys. Each survey range is divided in a range for base land types and a range for composed land types. This is usually because land surface models tend to group native cover into major groups. A good example of this is how the various vegetation types can be grouped. Note that the dominant tiles approach can still be used if the tile type is set to 3501 and the parameter 2/0/35 is provided again for the tiles 1 to N.

This proposal might seem complex at first. What it does is in fact relatively simple as it simply injects the following keys in existing templates 4.0, 4.8, 4.1 and 4.11 to produce templates 4.113, 4.114, 4.115 and 4.116 respectively: Octet Description
12 Tile Classification (see code table 4.242)
13-14 Type of Tile (see code table 4.251)
15 Number of Used Spatial Tiles
16 Number of Used Tile Attribute Combinations for Type of Tile
17 Number of Used Tile Attributes for Tile Attribute Combination (NUTAFTAC)
Repeat the following octet for each attribute of tile (n=1,NUTAFTAC)
18 + (n-1) Attribute of Tile (see code table 4.241)
end of the repetition
19 + (NUTAFTAC-1) Total Number of Tile Attribute Combinations
20 + (NUTAFTAC-1) Tile Index
21 + (NUTAFTAC-1) - 36 + (NUTAFTAC-1) UUID of Data Group

Octet 12: defines the Land survey used to derive the type of tiles. The surveys are listed in the existing Code Table 4.242 and we are proposing to add 3 more surveys to this table. Octets 13-14: define the type of tile within a specified survey in octet 12. Code table 4.251 is new. We did not want to reuse Code table 4.243 which contains a subset of Code Table 2.251 because 4.243 is tightly couple to its use with the parameter "tile class", discipline 2, category 0, entry 35. Code Table 4.251 is organised in the following way: entries 1-1000 are for generic tile type not coupled with a particular survey and are meant to be used for inter-comparison. Then each subsequent range of a thousand are assigned to a specific Land survey. Within that each range, the first half is for "base tile type" of that survey while the second half is used for groups of tiles, either because the model does not fully resolved the base tiles and because a model could output parameters averaged over a specific group of tiles. For instance, a model could use the entries 1007-1015 for the various types of forest covers or only use the entry 1503 which is the grouping of all the forest covers. Octet 15: defines the number of tile types without considering additional attributes, i.e. the number of different value that Octets 13-14 could take in the given setup. Octet 16: defines the number of combination of type attributes for the type of tile given in Octets 13-14. For instance, if for the tile type "forest" there exit the following combination, "bare forest", "Forest + intercepted snow", "Forest + flooded" and "forest + intercepted snow + flooded", then octet 16 should be set to 4. This implies that 4 separate GRIB message will be provided, one for each combination. octet 17: defines NUTAFTAC which is the number of attributes specified in the following octet(s) 18 to 18 + NUTAFTAC. octect(s) 18 to 18 + NUTAFTAC-1: if NUTAFTAC=1, then only octet 18 is used to encode 1 attribute, if NUTAFTAC=2, then octects 18 and 19 are used to encode 2 attributes, etc. octet 19 + NUTAFTAC-1: sum of all combination of type of tiles with their attributes. For instance if a model uses 2 types of tile and type 1 has octet 16 set to 2 and type 2 has octet 16 set to 3, then this octet should be set to 2+3 = 5 octet 20 + NUTAFTAC-1: this is an index given to identify a particular combination of the previous tile keys. In principle, it ranges between 1 and the value encoded in octet 20+NUTAFTAC-1 octets 21 + (NUTAFTAC-1) - 36 + (NUTAFTAC-1) : 16 octets used to encode a unique identifier that encodes the specific tile configuration. All GRIB message sharing the same UUID are to be interpreted together. This provides a validation that the independent GRIB messages belong to the same run.

Amendment details

ADD new entries in Code Table 4.0 Code Description
113 Generalised tiles at a horizontal level or horizontal layer at a point in time
114 Average, accumulation, and/or extreme values or other statistically processed values on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
115 Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer at a point in time
116 Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval
ADD new entries in Code Table 4.241 Code Description
5 With intercepted water
6 With intercepted snow
7 Aggregated
8 Unresolved
ADD new entries in Code Table 4.242 Code Description
3 Land use classes according to ECOCLIMAP
4 Land use classes according to ECOCLIMAP-SG
5 Land use classes according to USGS EROS Global Land Cover Characterization (GLCC) v2.0 BATS Classification
ADD new template 4.113 - Generalised tiles at a horizontal level or horizontal layer at a point in time Octet Description
10 Parameter Category (see code table 4.1)
11 Parameter Number (see code table 4.2)
12 Tile Classification (see code table 4.242)
13-14 Type of Tile (see code table 4.251)
15 Number of Used Spatial Tiles
16 Number of Used Tile Attribute Combinations for Type of Tile
17 Number of Used Tile Attributes for Tile Attribute Combination (NUTAFTAC)
Repeat the following octet for each attribute of tile (n=1,NUTAFTAC)
18 + (n-1) Attribute of Tile (see code table 4.241)
end of repetition
19 + (NUTAFTAC-1) Total Number of Tile Attribute Combinations
20 + (NUTAFTAC-1) Tile Index
21 + (NUTAFTAC-1) - 36 + (NUTAFTAC-1) UUID of Data Group
37 + (NUTAFTAC-1) Type of Generating Process
38 + (NUTAFTAC-1) Background Process
39 + (NUTAFTAC-1) Generating Process Identifier
40 + (NUTAFTAC-1) - 41 + (NUTAFTAC-1) Hours After Data Cut-off
42 + (NUTAFTAC-1) Minutes After Data Cut-off
43 + (NUTAFTAC-1) Indicator of Unit of Time Range (see code table 4.4)
44 + (NUTAFTAC-1) - 47 + (NUTAFTAC-1) Forecast Time
48 + (NUTAFTAC-1) Type of First Fixed Surface (see code table 4.5)
49 + (NUTAFTAC-1) Scale Factor of First Fixed Surface
50 + (NUTAFTAC-1) - 53 + (NUTAFTAC-1) Scaled Value of First Fixed Surface
54 + (NUTAFTAC-1) Type of Second Fixed Surface (see code table 4.5)
55 + (NUTAFTAC-1) Scale Factor of Second Fixed Surface
56 + (NUTAFTAC-1) - 59 + (NUTAFTAC-1) Scaled Value of Second Fixed Surface
ADD new template 4.114 - Average, accumulation, and/or extreme values or other statistically processed values on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval Octet Description
10 Parameter Category (see code table 4.1)
11 Parameter Number (see code table 4.2)
12 Tile Classification (see code table 4.242)
13-14 Type of Tile (see code table 4.251)
15 Number of Used Spatial Tiles
16 Number of Used Tile Attribute Combinations for Type of Tile
17 Number of Used Tile Attributes for Tile Attribute Combination (NUTAFTAC)
Repeat the following octet for each attribute of tile (n=1,NUTAFTAC)
18 + (n-1) Attribute of Tile (see code table 4.241)
end of repetition
19 + (NUTAFTAC-1) Total Number of Tile Attribute Combinations
20 + (NUTAFTAC-1) Tile Index
21 + (NUTAFTAC-1) - 36 + (NUTAFTAC-1) UUID of Data Group
37 + (NUTAFTAC-1) Type of Generating Process
38 + (NUTAFTAC-1) Background Process
39 + (NUTAFTAC-1) Generating Process Identifier
40 + (NUTAFTAC-1) - 41 + (NUTAFTAC-1) Hours After Data Cut-off
42 + (NUTAFTAC-1) Minutes After Data Cut-off
43 + (NUTAFTAC-1) Indicator of Unit of Time Range (see code table 4.4)
44 + (NUTAFTAC-1) - 47 + (NUTAFTAC-1) Forecast Time
48 + (NUTAFTAC-1) Type of First Fixed Surface (see code table 4.5)
49 + (NUTAFTAC-1) Scale Factor of First Fixed Surface
50 + (NUTAFTAC-1) - 53 + (NUTAFTAC-1) Scaled Value of First Fixed Surface
54 + (NUTAFTAC-1) Type of Second Fixed Surface (see code table 4.5)
55 + (NUTAFTAC-1) Scale Factor of Second Fixed Surface
56 + (NUTAFTAC-1) - 59 + (NUTAFTAC-1) Scaled Value of Second Fixed Surface
60 + (NUTAFTAC-1) - 61 + (NUTAFTAC-1) Year of End of Overall Time Interval
62 + (NUTAFTAC-1) Month of End of Overall Time Interval
63 + (NUTAFTAC-1) Day of End of Overall Time Interval
64 + (NUTAFTAC-1) Hour of End of Overall Time Interval
65 + (NUTAFTAC-1) Minute of End of Overall Time Interval
66 + (NUTAFTAC-1) Second of End of Overall Time Interval
67 + (NUTAFTAC-1) Number of Time Range
68 + (NUTAFTAC-1) - 71 + (NUTAFTAC-1) Number of Missing In Statistical Process
72 + (NUTAFTAC-1) Type of Statistical Processing
73 + (NUTAFTAC-1) Type of Time Increment
74 + (NUTAFTAC-1) Indicator of Unit for Time Range
75 + (NUTAFTAC-1) - 78 + (NUTAFTAC-1) Length of Time Range
79 + (NUTAFTAC-1) Indicator of Unit for Time Increment (see code table 4.4)
80 + (NUTAFTAC-1) - 83 + (NUTAFTAC-1) Time Increment
ADD new template 4.115 - Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer at a point in time Octet Description
10 Parameter Category (see code table 4.1)
11 Parameter Number (see code table 4.2)
12 Tile Classification (see code table 4.242)
13-14 Type of Tile (see code table 4.251)
15 Number of Used Spatial Tiles
16 Number of Used Tile Attribute Combinations for Type of Tile
17 Number of Used Tile Attributes for Tile Attribute Combination (NUTAFTAC)
Repeat the following octet for each attribute of tile (n=1,NUTAFTAC)
18 + (n-1) Attribute of Tile (see code table 4.241)
end of repetition
19 + (NUTAFTAC-1) Total Number of Tile Attribute Combinations
20 + (NUTAFTAC-1) Tile Index
21 + (NUTAFTAC-1) - 36 + (NUTAFTAC-1) UUID of Data Group
37 + (NUTAFTAC-1) Type of Generating Process
38 + (NUTAFTAC-1) Background Process
39 + (NUTAFTAC-1) Generating Process Identifier
40 + (NUTAFTAC-1) - 41 + (NUTAFTAC-1) Hours After Data Cut-off
42 + (NUTAFTAC-1) Minutes After Data Cut-off
43 + (NUTAFTAC-1) Indicator of Unit of Time Range (see code table 4.4)
44 + (NUTAFTAC-1) - 47 + (NUTAFTAC-1) Forecast Time
48 + (NUTAFTAC-1) Type of First Fixed Surface (see code table 4.5)
49 + (NUTAFTAC-1) Scale Factor of First Fixed Surface
50 + (NUTAFTAC-1) - 53 + (NUTAFTAC-1) Scaled Value of First Fixed Surface
54 + (NUTAFTAC-1) Type of Second Fixed Surface (see code table 4.5)
55 + (NUTAFTAC-1) Scale Factor of Second Fixed Surface
56 + (NUTAFTAC-1) - 59 + (NUTAFTAC-1) Scaled Value of Second Fixed Surface
60 + (NUTAFTAC-1) Type of ensemble forecast (see Code Table 4.6)
61 + (NUTAFTAC-1) - 64 + (NUTAFTAC-1) Perturbation number
65 + (NUTAFTAC-1) - 68 + (NUTAFTAC-1) Number of forecasts in ensemble
ADD new template 4.116 - Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval Octet Description
10 Parameter Category (see code table 4.1)
11 Parameter Number (see code table 4.2)
12 Tile Classification (see code table 4.242)
13-14 Type of Tile (see code table 4.251)
15 Number of Used Spatial Tiles
16 Number of Used Tile Attribute Combinations for Type of Tile
17 Number of Used Tile Attributes for Tile Attribute Combination (NUTAFTAC)
Repeat the following octet for each attribute of tile (n=1,NUTAFTAC)
18 + (n-1) Attribute of Tile (see code table 4.241)
end of repetition
19 + (NUTAFTAC-1) Total Number of Tile Attribute Combinations
20 + (NUTAFTAC-1) Tile Index
21 + (NUTAFTAC-1) - 36 + (NUTAFTAC-1) UUID of Data Group
37 + (NUTAFTAC-1) Type of Generating Process
38 + (NUTAFTAC-1) Background Process
39 + (NUTAFTAC-1) Generating Process Identifier
40 + (NUTAFTAC-1) - 41 + (NUTAFTAC-1) Hours After Data Cut-off
42 + (NUTAFTAC-1) Minutes After Data Cut-off
43 + (NUTAFTAC-1) Indicator of Unit of Time Range (see code table 4.4)
44 + (NUTAFTAC-1) - 47 + (NUTAFTAC-1) Forecast Time
48 + (NUTAFTAC-1) Type of First Fixed Surface (see code table 4.5)
49 + (NUTAFTAC-1) Scale Factor of First Fixed Surface
50 + (NUTAFTAC-1) - 53 + (NUTAFTAC-1) Scaled Value of First Fixed Surface
54 + (NUTAFTAC-1) Type of Second Fixed Surface (see code table 4.5)
55 + (NUTAFTAC-1) Scale Factor of Second Fixed Surface
56 + (NUTAFTAC-1) - 59 + (NUTAFTAC-1) Scaled Value of Second Fixed Surface
60 + (NUTAFTAC-1) Type of ensemble forecast (see Code Table 4.6)
61 + (NUTAFTAC-1) - 64 + (NUTAFTAC-1) Perturbation number
65 + (NUTAFTAC-1) - 68 + (NUTAFTAC-1) Number of forecasts in ensemble
69 + (NUTAFTAC-1) - 70 + (NUTAFTAC-1) Year of End of Overall Time Interval
71 + (NUTAFTAC-1) Month of End of Overall Time Interval
72 + (NUTAFTAC-1) Day of End of Overall Time Interval
73 + (NUTAFTAC-1) Hour of End of Overall Time Interval
74 + (NUTAFTAC-1) Minute of End of Overall Time Interval
75 + (NUTAFTAC-1) Second of End of Overall Time Interval
76 + (NUTAFTAC-1) Number of Time Range
77 + (NUTAFTAC-1) - 80 + (NUTAFTAC-1) Number of Missing In Statistical Process
81 + (NUTAFTAC-1) Type of Statistical Processing
82 + (NUTAFTAC-1) Type of Time Increment
83 + (NUTAFTAC-1) Indicator of Unit for Time Range
84 + (NUTAFTAC-1) - 87 + (NUTAFTAC-1) Length of Time Range
88 + (NUTAFTAC-1) Indicator of Unit for Time Increment (see code table 4.4)
89 + (NUTAFTAC-1) - 92 + (NUTAFTAC-1) Time Increment
add Code Table 4.252 - Tile classes and groupings Code   Description
0   Reserved
1 SEOC Seas and oceans
2 INWB Inland water bodies
3 BARE Bare areas
4 HIV High vegetation
5 LOV Low vegetation
6 URBAN Urban
7-1000   Reserved (see Note XXX: Reserved for intercomparison tile classes/groupings)
1001 SEAO Sea and oceans
1002 LAKE Lakes
1003 RIVE Rivers
1004 NO Bare land
1005 ROCK Bare rock
1006 SNOW Permanent snow
1007 BOBD Boreal broadleaf deciduous
1008 TEBD Temperate broadleaf deciduous
1009 TRBD Tropical broadleaf deciduous
1010 TEBE Temperate broadleaf evergreen
1011 TRBE Tropical broadleaf evergreen
1012 BONE Boreal needleleaf evergreen
1013 TENE Temperate needleleaf evergreen
1014 BOND Boreal needleleaf deciduous
1015 SHRB Shrubs
1016 BOGR Boreal grassland
1017 GRAS Temperate grassland
1018 TROG Tropical grassland
1019 C3W Winter C3 crops
1020 C3S Summer C3 crops
1021 C4 C4 crops
1022 FLTR Flooded trees
1023 FLGR Flooded grassland
1024 LCZ1 Local climate zone 1: compact high-rise (buildings)
1025 LCZ2 Local climate zone 2: compact midrise (buildings)
1026 LCZ3 Local climate zone 3: compact low-rise (buildings)
1027 LCZ4 Local climate zone 4: open high-rise (buildings)
1028 LCZ5 Local climate zone 5: open midrise (buildings)
1029 LCZ6 Local climate zone 6: open low-rise (buildings)
1030 LCZ7 Local climate zone 7: lightweight low-rise (buildings)
1031 LCZ8 Local climate zone 8: large low-rise (buildings)
1032 LCZ9 Local climate zone 9: sparsely built (buildings)
1033 LCZ10 Local climate zone 10: heavy industry (buildings)
1034 TEBDU Urban temperate broadleaf deciduous
1035 TRBDU Urban tropical broadleaf deciduous
1036 TEBEU Urban temperate broadleaf evergreen
1037 TRBEU Urban tropical broadleaf evergreen
1038 BONEU Urban boreal needleleaf evergreen
1039 TENEU Urban temperate needleleaf evergreen
1040 BONDU Urban boreal needleleaf deciduous
1041-1500   Reserved (see Note XXX: Reserved for tile class entries for tile models using the ECOCLIMAP-SG land cover survey)
1501   Nature grouping (NO + ROCK + SNOW + BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB + BOGR + GRAS + TROG + C3W + C3S + C4 + FLTR + FLGR)
1502   Non-forest grouping (NO + ROCK + SNOW + BOGR + GRAS + TROG + C3W + C3S + C4 + FLTR + FLGR)
1503   Forest grouping (BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB)
1504   Non-vegetated grouping (NO + ROCK + SNOW)
1505   Trees grouping (BOBD + TEBD + TRBD + TEBE + TRBE + BONE + TENE + BOND + SHRB + FLTR)
1506   Low vegetation grouping (BOGR + GRAS + TROG + C3W + C3S + C4 + FLGR)
1507   Non-flooded low vegetation grouping (BOGR + GRAS + TROG + C3W + C3S + C4)
1508   Crops grouping (C3W + C3S + C4)
1509   Grassland grouping (BOGR + GRAS + TROG)
1510   Bare and rock grouping (NO + ROCK)
1511   C3 crops grouping (C3W + C3S)
1512   Broadleaf forest grouping (BOBD + TEBD + TRBD + TEBE + TRBE + SHRB)
1513   Needleleaf forest grouping (BONE + TENE + BOND)
1514   Deciduous broadleaf forest grouping (BOBD + TEBD + TRBD + TEBE + SHRB)
1515   Temperate grassland grouping (BOGR + GRAS)
1516   Non-forest (no FLTR) grouping (NO + ROCK + SNOW + BOGR + GRAS + TROG + C3W + C3S + C4 + FLGR)
1517   Broadleaf forest (with FLTR) grouping (BOBD + TEBD + TRBD + TEBE + TRBE + SHRB + FLTR)
1518   Broadleaf trees grouping (BOBD + TEBD + TRBD + TEBE + TRBE + FLTR)
1519   C3/C4 grasslands grouping (BOGR + GRAS + FLGR)
1520   Broadleaf deciduous trees grouping (BOBD + TEBD + TRBD + FLTR)
1521   Broadleaf evergreen trees grouping (TEBE + TRBE)
1522   Needleleaf evergreen trees grouping (BONE + TENE)
1523   LCZ or urban grouping (LCZ1 + LCZ2 + LCZ3 + LCZ4 + LCZ5 + LCZ6 + LCZ7 + LCZ8 + LCZ9 + LCZ10)
1524   Inland water grouping (LAKE + RIVE)
1525   Urban parks and gardens TEBD grouping (NO + GRAS + TEBDU)
1526   Urban parks and gardens TRBD grouping (NO + GRAS + TRBDU)
1527   Urban parks and gardens TEBE grouping (NO + GRAS + TEBEU)
1528   Urban parks and gardens TRBE grouping (NO + GRAS + TRBEU)
1529   Urban parks and gardens BONE grouping (NO + GRAS + BONEU)
1530   Urban parks and gardens TENE grouping (NO + GRAS + TENEU)
1531   Urban parks and gardens BOND grouping (NO + GRAS + BONDU)
1532-2000   Reserved (see Note XXX: Reserved for tile grouping entries for tile models using the ECOCLIMAP-SG land cover survey)
2001 CRMF Crops, mixed farming
2002 SHGR Short grass
2003 EVNE Evergreen needleleaf trees
2004 DENE Deciduous needleleaf trees
2005 DEBR Deciduous broadleaf trees
2006 EVBR Evergreen broadleaf trees
2007 TAGR Tall grass
2008 DESE Desert
2009 TUND Tundra
2010 IRCR Irrigated crops
2011 SEDE Semidesert
2012 ICGL Ice caps and glaciers
2013 BOMA Bogs and marshes
2014 INWA Inland water
2015 OCEA Ocean
2016 EVSH Evergreen shrubs
2017 DESH Deciduous shrubs
2018 MFWO Mixed forest/woodland
2019 INFO Interrupted forest
2020 WLMI Water and land mixtures
2021 BASO Bare soil
2022 URBA Urban
2023 LORI Low-rise building
2024 HIRI High-rise building
2025-2500   Reserved (see Note XXX: Reserved for tile class entries for tile models using the GLCC v2.0 BATS Classification survey)
2501   Low vegetation grouping (CRMF + SHGR + TAGR + TUND + IRCR + SEDE + BOMA + EVSH + DESH + WLMI)
2502   High vegetation grouping (EVNE + DENE + DEBR + EVBR + MFWO + INFO)
2503-3000   Reserved (see Note XXX: Reserved for tile grouping entries for tile models using the GLCC v2.0 BATS Classification survey)
3001 PFIC Post-flooding or irrigated croplands
3002 RACR Rainfed croplands
3003 MCVE Mosaic cropland (50-70%) / vegetation (grassland, shrubland, forest) (20-50%)
3004 MVCR Mosaic vegetation (grassland, shrubland, forest) (50-70%) / cropland (20-50%)
3005 COBS Closed to open (>15%) broadleaved evergreen and/or semi-deciduous forest (>5m)
3006 CLBD Closed (>40%) broadleaved deciduous forest (>5m)
3007 OPBD Open (15-40%) broadleaved deciduous forest (>5m)
3008 CLNE Closed (>40%) needleleaved evergreen forest (>5m)
3009 ONDE Open (15-40%) needleleaved deciduous or evergreen forest (>5m)
3010 COBN Closed to open (>15%) mixed broadleaved and needleleaved forest (>5m)
3011 MFSG Mosaic forest/shrubland (50-70%) / grassland (20-50%)
3012 MGFS Mosaic grassland (50-70%) / forest / shrubland (20-50%)
3013 COSH Closed to open (>15%) shrubland (<5m)
3014 COHV Closed to open (>15%) herbaceous vegetation
3015 SPVE Sparse (<15%) vegetation (woody vegetation, shrubs, grassland)
3016 COBFF Closed to open (>15%) broadleaved forest regularly flooded (semi-permanently or temporarily) - fresh or brackish water
3017 CLBFF Closed (>40%) broadleaved forest or shrubland permanently flooded - saline or brackish water
3018 COVEF Closed to open (>15%) vegetation (grassland, shrubland, woody vegetation) on regularly flooded or waterlogged soil - fresh, brackish or saline water
3019 ASAA Artificial surfaces and associated areas (urban areas >50%)
3020 BAAR Bare areas
3021 WABO Water bodies
3022 PESI Permanent snow and ice
3023-3500   Reserved (see Note XXX: Reserved for tile class entries for tile models using the ESA-GlobCover GCV2009 survey)
3501   Grouping using the dominant tiles approach (dominant tile varies per gridbox)
3502-4000   Reserved (see Note XXX: Reserved for tile grouping entries for tile models using the ESA-GlobCover GCV2009 survey)
4001 TBECO Tree cover, broadleaved evergreen, closed to open (>15%)
4002 TBDC Tree cover, broadleaved deciduous, closed (>40%)
4003 TBDO Tree cover, broadleaved deciduous, open (15-40%)
4004 TNECO Tree cover, needleleaved evergreen, closed to open (>15%)
4005 TNDCO Tree cover, needleleaved decidous, closed to open (>15%)
4006 TMLCO Tree cover, mixed leaftype, closed to open (>15%)
4007 TCOFF Tree cover, closed to open (>15%), regularly flooded, fresh or brackish water: swamp forests
4008 TCOFS Tree cover, closed to open (>15%), regularly flooded, saline water: mangrove forests
4009 MTVG Mosaic of tree cover and other natural vegetation (crop component possible)
4010 TBURN Tree Cover, burnt (mainly boreal forests)
4011 SCOE Shrubcover, closed to open (>15%) , evergreen (broadleaved or needleleaved)
4012 SCOD Shrubcover, closed to open (>15%), deciduous (broadleaved)
4013 HCCO Herbaceous cover, closed to open (>15%)
4014 SHSC Sparse herbaceous or sparse shrub cover
4015 FSHCO Regularly flooded (>2 month) shrub or herbaceous cover, closed to open
4016 CROP Cropland (upland crops or inundated/ flooded crops)
4017 MCTNV Mosaic of cropland / tree cover/ other natural vegetation
4018 MCSH Mosaic of cropland / shrub or herbaceous cover
4019 BAARE Bare areas
4020 WBNA Water bodies (natural or artificial)
4021 SINA Snow or ice (natural or artificial)
4022 URAR Urban areas
4023-4500   Reserved (see Note XXX: Reserved for tile class entries for tile models using the European Commission-Global Land Cover Project GLC2000 survey)
4501-5000   Reserved (see Note XXX: Reserved for tile grouping entries for tile models using the European Commission-Global Land Cover Project GLC2000 survey)
5001-32767   Reserved for additional land cover surveys
32768-65534   Reserved for local use
65535   Missing

Comments

No response

Requestor(s)

Matthew Griffith (ECMWF) Sebastien Villaume (ECMWF)

Stakeholder(s)

ECMWF, Meteo France, SMHI, DMI, FMI, Met Norway and DWD

Publication(s)

Manual on Codes (WMO-No. 306), Volume I.2, GRIB section 4, product definition template number 113 (new) Manual on Codes (WMO-No. 306), Volume I.2, GRIB section 4, product definition template number 114 (new) Manual on Codes (WMO-No. 306), Volume I.2, GRIB section 4, product definition template number 115 (new) Manual on Codes (WMO-No. 306), Volume I.2, GRIB section 4, product definition template number 116 (new) Manual on Codes (WMO-No. 306), Volume I.2, Code Table 4.251 (new) Manual on Codes (WMO-No. 306), Volume I.2, Code Table 4.0 (add entries) Manual on Codes (WMO-No. 306), Volume I.2, Code Table 4.241 (add entries) Manual on Codes (WMO-No. 306), Volume I.2, Code Table 4.242 (add entries)

Expected impact of change

MEDIUM

Collaborators

ECMWF, MeteoFrance, SMHI, DWD

References

No response

Validation

We can provide an ecCodes version which encode/decodes GRIB2 messages making use of the features described in this proposal

chenxiaoxia2019 commented 1 year ago

25-April meeting: Sebastian to provide ecCodes version which encode/decodes GRIB2 messages

sebvi commented 1 year ago

a version of eccodes for the tile template can be obtain here: eccodes

amilan17 commented 1 year ago

https://github.com/wmo-im/CCT/wiki/Teleconference.6.7.June.2023 notes:

samples are available; @sebvi update branch

sebvi commented 1 year ago

Branch is updated

amilan17 commented 1 year ago

https://github.com/wmo-im/CCT/wiki/Teleconference.13.July.2023 notes:

Sebastien is responding to Anna's review in PR; @sebvi will provide samples and @SibylleK will do technical validation within a week; the FT proposal can be circulated to stakeholders/contributors during the NFP review;

sebvi commented 1 year ago

an up-to-date eccodes is available here: eccodes

I have created some samples to download: WMO_tile.tar.zip

amilan17 commented 1 year ago

Branches look good with one question remaining in PR.

amilan17 commented 1 year ago

Branches look good with one question remaining in PR.

Can't find question. I assume I was mistaken! 

@SibylleK to validate?

SibylleK commented 1 year ago

I tried to decode the provided example using the csv files of the branch.

As in the templates the "attribute of tile" should rather be a list of NUTAFTAC attributes, I am not satisfied with the notation. My suggestion would be: Octet Description
12 Tile Classification (see code table 4.242)
13-14 Type of Tile (see code table 4.251)
15 Number of Used Spatial Tiles
16 Number of Used Tile Attribute Combinations for Type of Tile
17 Number of Used Tile Attributes for Tile Attribute Combination (NUTAFTAC)
. Repeat the following octet for each attribute of tile (n=1,NUTAFTAC)
18+1(n-1) List of attribute of tile (see code table 4.241)
.. ..

Regarding 4.116 - Individual ensemble forecast, control and perturbed on generalised tiles at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval the GRIB2 example and the proposal differ!

In the example the ensemble entries (i.e. Type of ensemble forecast, Perturbation number and Number of forecasts in ensemble) comes after the second fixed surface. In the proposal and the branch they are at the end of the template.

As in most (if not all) ensemble PDTs these entries come after the fixed surface types, I rather suppose changing the proposal.

With these changes I was able to read the entries in section 4 of the GRIB examples with a DWD GRIB reader software. The entries were the same as in an output of eccodes grib_dump. In that case the proposal has been validated.

@sebvi @amilan17 shall I update the branch?

sebvi commented 1 year ago

dear @SibylleK , thank you for validating the templates. I an on annual leave at the moment but I will have a look at your comments later this evening.

sebvi commented 1 year ago

Dear @SibylleK , I have now reviewed your comments and I fully agree with you.

sebvi commented 1 year ago

I have updated the proposal and will update the branch tomorrow morning

sebvi commented 1 year ago

I have updated the branch

amilan17 commented 1 year ago

@SibylleK -- Did you want to check this again or shall we consider it validated?

SibylleK commented 1 year ago

@amilan17, I double checked and the updated branch is OK. It can be considered validated.