ESMValGroup / ESMValCore

ESMValCore: A community tool for pre-processing data from Earth system models in CMIP and running analysis scripts.
https://www.esmvaltool.org
Apache License 2.0
42 stars 38 forks source link

Dataset problem: FGOALS-g3 has atmosphere_sigma_coordinate which cannot be read by iris #564

Closed schlunma closed 3 weeks ago

schlunma commented 4 years ago

Describe the dataset issue Some FGOALS-g3 datasets have a atmosphere_sigma_coordinate (with formula p = ptop + sigma*(ps - ptop)) which cannot be read by iris by default. I don't know if this is an allowed coordinate. If yes, this should be added to the list of AuxFactories of iris.

ncdump (without global attributes):

netcdf cl_Amon_FGOALS-g3_historical_r1i1p1f1_gn_185001-185912 {                                                                                                                                                                                                        [60/605]
dimensions:
        time = UNLIMITED ; // (120 currently)
        lev = 26 ;
        lat = 80 ;
        lon = 180 ;
        bnds = 2 ;
variables:
        double time(time) ;
                time:bounds = "time_bnds" ;
                time:units = "days since 1850-01-01 00:00:00" ;
                time:calendar = "365_day" ;
                time:axis = "T" ;
                time:long_name = "time" ;
                time:standard_name = "time" ;
        double time_bnds(time, bnds) ;
        double lev(lev) ;
                lev:bounds = "lev_bnds" ;
                lev:axis = "Z" ;
                lev:positive = "down" ;
                lev:long_name = "sigma coordinate" ;
                lev:standard_name = "atmosphere_sigma_coordinate" ;
                lev:formula = "p = ptop + sigma*(ps - ptop)" ;
                lev:formula_terms = "ptop: ptop sigma: lev ps: ps" ;
        double lev_bnds(lev, bnds) ;
                lev_bnds:formula = "p = ptop + sigma*(ps - ptop)" ;
                lev_bnds:standard_name = "atmosphere_sigma_coordinate" ;
                lev_bnds:units = "" ;
                lev_bnds:formula_terms = "ptop: ptop sigma: lev_bnds ps: ps" ;
        double ptop ;
                ptop:long_name = "pressure at top of model" ;
                ptop:units = "Pa" ;
        float ps(time, lat, lon) ;
                ps:long_name = "Surface Air Pressure" ;
                ps:units = "Pa" ;
        double lat(lat) ;
                lat:bounds = "lat_bnds" ;
                lat:units = "degrees_north" ;
                lat:axis = "Y" ;
                lat:long_name = "Latitude" ;
                lat:standard_name = "latitude" ;
        double lat_bnds(lat, bnds) ;
        double lon(lon) ;
                lon:bounds = "lon_bnds" ;
                lon:units = "degrees_east" ;
                lon:axis = "X" ;
                lon:long_name = "Longitude" ;
                lon:standard_name = "longitude" ;
        double lon_bnds(lon, bnds) ;
        float cl(time, lev, lat, lon) ;
                cl:standard_name = "cloud_area_fraction_in_atmosphere_layer" ;
                cl:long_name = "Percentage Cloud Cover" ;
                cl:comment = "Percentage cloud cover, including both large-scale and convective cloud." ;
                cl:units = "%" ;
                cl:original_units = "1" ;
                cl:history = "2019-08-18T08:06:18Z altered by CMOR: Converted units from \'1\' to \'%\'. 2019-08-18T08:06:18Z altered by CMOR: Converted type from \'d\' to \'f\'. 2019-08-18T08:06:18Z altered by CMOR: Inverted axis: lev." ;
                cl:cell_methods = "area: time: mean (interval: 10 minutes)" ;
                cl:cell_measures = "area: areacella" ;
                cl:missing_value = 1.e+20f ;
                cl:_FillValue = 1.e+20f ;

Fix provided in #565.

valeriupredoi commented 4 years ago

So #565 has now been merged and normally we'd close this issue but the question is - do we want to tell the SciTools folk about this? I reckon it'd be useful :beer:

schlunma commented 4 years ago

As I already wrote, if atmosphere_sigma_coordinate is a legal coordinate according to CF, we should report this to iris :+1:

valeriupredoi commented 4 years ago

This here says it's legit http://cfconventions.org/Data/cf-standard-names/72/build/cf-standard-name-table.html

valeriupredoi commented 4 years ago

and the famous Appendix D -> @bjlittle you guys will have another gitHub issue from us :grin:

zklaus commented 3 years ago

The coordinate is described in http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/cf-conventions.html#_atmosphere_sigma_coordinate

schlunma commented 3 years ago

Corresponding PR in iris: SciTools/iris#4052

schlunma commented 3 weeks ago

This is now fully supported by iris.