WCRP-CORDEX / cordex-cmip6-cmor-tables

JSON Tables for CMOR3 to create CORDEX-CMIP6 datasets
https://wcrp-cordex.github.io/cordex-cmip6-cmor-tables
BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

attributes for height levels #31

Closed larsbuntemeyer closed 1 year ago

larsbuntemeyer commented 2 years ago

I'll collect some special table variable attributes that are unique to CORDEX here to document.

larsbuntemeyer commented 2 years ago

for height levels not request in CMIP6, we derive attributes from the 100m values in CMIP6, e.g., for ua100 (only found in CMIP6_6hrPlev.json), we would have from CMIP6:

"ua100m": {
            "frequency": "6hr", 
            "modeling_realm": "atmos", 
            "standard_name": "eastward_wind", 
            "units": "m s-1", 
            "cell_methods": "area: time: mean", 
            "cell_measures": "area: areacella", 
            "long_name": "Eastward Wind at 100m", 
            "comment": "Zonal wind at 100m height", 
            "dimensions": "longitude latitude time height100m", 
            "out_name": "ua100m", 
            "type": "real", 
            "positive": "", 
            "valid_min": "", 
            "valid_max": "", 
            "ok_min_mean_abs": "", 
            "ok_max_mean_abs": ""
        }, 

from which we would derive other height levels for CORDEX like this (e.g., ua200m):

"ua200m": {
            "frequency": "6hr", 
            "modeling_realm": "atmos", 
            "standard_name": "eastward_wind", 
            "units": "m s-1", 
            "cell_methods": "area: time: mean", 
            "cell_measures": "area: areacella", 
            "long_name": "Eastward Wind at 200m", 
            "comment": "Zonal wind at 200m height", 
            "dimensions": "longitude latitude time height200m", 
            "out_name": "ua200m", 
            "type": "real", 
            "positive": "", 
            "valid_min": "", 
            "valid_max": "", 
            "ok_min_mean_abs": "", 
            "ok_max_mean_abs": ""
        }, 

with the coordinate in CMIP6_coordinates.json:

"height100m": {
            "standard_name": "height", 
            "units": "m", 
            "axis": "Z", 
            "long_name": "height", 
            "climatology": "", 
            "formula": "", 
            "must_have_bounds": "no", 
            "out_name": "height", 
            "positive": "up", 
            "requested": "", 
            "requested_bounds": "", 
            "stored_direction": "increasing", 
            "tolerance": "", 
            "type": "double", 
            "valid_max": "120.0", 
            "valid_min": "80.0", 
            "value": "100.", 
            "z_bounds_factors": "", 
            "z_factors": "", 
            "bounds_values": "", 
            "generic_level_name": ""
        }, 
larsbuntemeyer commented 2 years ago

Note that height levels are mentioned in the comment attribute and in the long_name attribute.

wachsylon commented 2 years ago

I agree with that approach. Only

"dimensions": "longitude latitude time height100m",

must also be changed to 200m, of course.

larsbuntemeyer commented 2 years ago

I agree with that approach. Only

"dimensions": "longitude latitude time height100m",

must also be changed to 200m, of course.

true, i'll fix it!

larsbuntemeyer commented 2 years ago

is there some rule how to calculate valid_max and valid_min for height coordinates?

gnikulin commented 2 years ago

a bit late response :-), completely agree. No idea about valid_max and valid_min so we can simply use a similar approach 20m above and below a specific height ?

gnikulin commented 2 years ago

Do we really need valid_max and valid_min for height levels ? Both are not defined for pressure levels.